[oe] [PATCH 4/4] gcc4.5: patch Makefile.in for cross compile badness
Frans Meulenbroeks
fransmeulenbroeks at gmail.com
Sun Jul 25 20:18:45 UTC 2010
When compiling gcc target code make passes -I(GMPINC)
but this one points to the host dir (it is set to HOST_GMPINC
which in oe points to tmp/sysroots/i686-linux/usr/include).
This patch breaks the env var $(INCLUDES) in two and
only uses the TARGET specific part for compiling libgcc
and the crt stuff.
The patch has been verified by baking the 4.5 recipe with
bitbake -c patch -b gcc_4.5.bb
Signed-off-by: Frans Meulenbroeks <fransmeulenbroeks at gmail.com>
---
recipes/gcc/gcc-4.5.inc | 3 ++-
recipes/gcc/gcc-4.5/Makefile.in.patch | 30 ++++++++++++++++++++++++++++++
2 files changed, 32 insertions(+), 1 deletions(-)
create mode 100644 recipes/gcc/gcc-4.5/Makefile.in.patch
diff --git a/recipes/gcc/gcc-4.5.inc b/recipes/gcc/gcc-4.5.inc
index c671cc8..df44a27 100644
--- a/recipes/gcc/gcc-4.5.inc
+++ b/recipes/gcc/gcc-4.5.inc
@@ -8,7 +8,7 @@ DEPENDS = "mpfr gmp libmpc libelf"
NATIVEDEPS = "mpfr-native gmp-native libmpc-native"
-INC_PR = "r6"
+INC_PR = "r7"
SRCREV = "162398"
PV = "4.5"
@@ -31,6 +31,7 @@ SRC_URI = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH} \
file://libstdc++-emit-__cxa_end_cleanup-in-text.patch \
file://arm-bswapsi2.patch \
file://gcc-pr43698-arm-rev-instr.patch \
+ file://Makefile.in.patch \
"
# Language Overrides
diff --git a/recipes/gcc/gcc-4.5/Makefile.in.patch b/recipes/gcc/gcc-4.5/Makefile.in.patch
new file mode 100644
index 0000000..45df47c
--- /dev/null
+++ b/recipes/gcc/gcc-4.5/Makefile.in.patch
@@ -0,0 +1,30 @@
+Index: gcc-4.5/gcc/Makefile.in
+===================================================================
+--- gcc-4.5.orig/gcc/Makefile.in
++++ gcc-4.5/gcc/Makefile.in
+@@ -656,7 +656,7 @@ LIBGCC2_INCLUDES =
+ TARGET_LIBGCC2_CFLAGS =
+
+ # Options to use when compiling crtbegin/end.
+-CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
++CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(TARGET_INCLUDES) $(MULTILIB_CFLAGS) -g0 \
+ -finhibit-size-directive -fno-inline -fno-exceptions \
+ -fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \
+ $(INHIBIT_LIBC_CFLAGS)
+@@ -1038,10 +1038,14 @@ BUILD_ERRORS = build/errors.o
+ # -I$(@D) and -I$(srcdir)/$(@D) cause the subdirectory of the file
+ # currently being compiled, in both source trees, to be examined as well.
+ # libintl.h will be found in ../intl if we are using the included libintl.
+-INCLUDES = -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \
++#
++# TARGET_INCLUDES is added to avoid that GMPINC (which points to the host
++# include dir) is used for compiling libgcc.a
++TARGET_INCLUDES = -I. -I$(@D) -I$(srcdir) -I$(srcdir)/$(@D) \
+ -I$(srcdir)/../include @INCINTL@ \
+- $(CPPINC) $(GMPINC) $(DECNUMINC) \
++ $(CPPINC) $(DECNUMINC) \
+ $(PPLINC) $(CLOOGINC) $(LIBELFINC)
++INCLUDES = $(TARGET_INCLUDES) $(GMPINC)
+
+ .c.o:
+ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION)
--
1.6.4.2
More information about the Openembedded-devel
mailing list