[oe] [PATCH] ruby: Remove __has_include and __has_include_next from preprocessed header file

Khem Raj raj.khem at gmail.com
Thu Jan 23 18:56:19 UTC 2020


ignore it

On Thu, Jan 23, 2020 at 10:35 AM Khem Raj <raj.khem at gmail.com> wrote:
>
> one of the build steps ruby has is that it generated rb_mjit_header.h
> during configure using gcc preprocessor using -dD which emits built-in
> defines as well, problem happens when this header is later included in
> subsequent compiles, where compiler errors out stating that an existing
> internal define is redefined
>
> | /tmp/20200123-2021083-2c601q.h:13849:9: error: "__has_include" cannot be used as a macro name
> | 13849 | #define __has_include __has_include
> |       |         ^~~~~~~~~~~~~
> | compilation terminated due to -Wfatal-errors.
>
> Since compiler already will take care of it internally we can edit it
> out from this header file
>
> Signed-off-by: Khem Raj <raj.khem at gmail.com>
> ---
>  meta/recipes-devtools/ruby/ruby.inc | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/meta/recipes-devtools/ruby/ruby.inc b/meta/recipes-devtools/ruby/ruby.inc
> index ce1b02f012..d5cd329e65 100644
> --- a/meta/recipes-devtools/ruby/ruby.inc
> +++ b/meta/recipes-devtools/ruby/ruby.inc
> @@ -38,3 +38,10 @@ do_configure_prepend() {
>      sed -i "s#%%TARGET_CFLAGS%%#$CFLAGS#; s#%%TARGET_LDFLAGS%%#$LDFLAGS#" ${S}/common.mk
>      rm -rf ${S}/ruby/
>  }
> +
> +do_compile_prepend() {
> +    if [ -e ${B}/rb_mjit_header.h ]; then
> +        sed -i -e "/#define __has_include __has_include/d" ${B}/rb_mjit_header.h
> +        sed -i -e "/#define __has_include_next __has_include_next/d" ${B}/rb_mjit_header.h
> +    fi
> +}
> --
> 2.25.0
>


More information about the Openembedded-devel mailing list