1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-31 00:39:46 +00:00

ruby: Remove __has_include and __has_include_next from preprocessed header file

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

(From OE-Core rev: b4f0df9a0e998af746bcd84cb81ea4ba0107f989)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Khem Raj
2020-01-26 11:27:40 -08:00
committed by Richard Purdie
parent d52913fe19
commit 614f764707
2 changed files with 27 additions and 0 deletions
@@ -0,0 +1,26 @@
Filter out __has_include* compiler defines
They are internal to compiler and this header is later on includes in C
files, but newer gcc >= 10 complains about it.
error in initial header file:
| In file included from /tmp/20200124-86625-14hiju4.c:1:
| /tmp/20200124-86625-11y6l6i.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.
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- a/common.mk
+++ b/common.mk
@@ -221,6 +221,8 @@ $(TIMESTAMPDIR)/$(MJIT_HEADER:.h=)$(MJIT
$(TIMESTAMPDIR)/$(arch)/.time
$(ECHO) building $(@F:.time=.h)
$(Q) $(CPP) -DMJIT_HEADER $(MJIT_HEADER_FLAGS) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(srcdir)/vm.c $(CPPOUTFLAG)$(@F:.time=.h).new
+ $(Q)sed -i -e "/#define __has_include __has_include/d" $(@F:.time=.h).new
+ $(Q)sed -i -e "/#define __has_include_next __has_include_next/d" $(@F:.time=.h).new
$(Q) $(IFCHANGE) "--timestamp=$@" $(@F:.time=.h) $(@F:.time=.h).new
$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).h: $(TIMESTAMPDIR)/$(MJIT_HEADER:.h=)$(MJIT_HEADER_SUFFIX).time
+1
View File
@@ -2,6 +2,7 @@ require ruby.inc
SRC_URI += " \
file://0003-configure.ac-check-finite-isinf-isnan-as-macros-firs.patch \
file://remove_has_include_macros.patch \
file://run-ptest \
"