From c1eb425ccf05ad2f68753faccba6f5f76f5fa76e Mon Sep 17 00:00:00 2001 From: Frans Meulenbroeks Date: Sun, 25 Jul 2010 22:08:04 +0200 Subject: gcc4.4.x: patch Makefile.in for cross compile badness 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 all affected recipes with bitbake -c configure -b recipe Signed-off-by: Frans Meulenbroeks --- recipes/gcc/gcc-4.4.1.inc | 3 ++- recipes/gcc/gcc-4.4.1/Makefile.in.patch | 30 ++++++++++++++++++++++++++++++ recipes/gcc/gcc-4.4.2.inc | 3 ++- recipes/gcc/gcc-4.4.2/Makefile.in.patch | 30 ++++++++++++++++++++++++++++++ recipes/gcc/gcc-4.4.4.inc | 3 ++- recipes/gcc/gcc-4.4.4/Makefile.in.patch | 30 ++++++++++++++++++++++++++++++ 6 files changed, 96 insertions(+), 3 deletions(-) create mode 100644 recipes/gcc/gcc-4.4.1/Makefile.in.patch create mode 100644 recipes/gcc/gcc-4.4.2/Makefile.in.patch create mode 100644 recipes/gcc/gcc-4.4.4/Makefile.in.patch (limited to 'recipes/gcc') diff --git a/recipes/gcc/gcc-4.4.1.inc b/recipes/gcc/gcc-4.4.1.inc index 3b429afa42..a64b108b59 100644 --- a/recipes/gcc/gcc-4.4.1.inc +++ b/recipes/gcc/gcc-4.4.1.inc @@ -8,7 +8,7 @@ LICENSE = "GPLv3" DEPENDS = "mpfr gmp" NATIVEDEPS = "mpfr-native gmp-native" -INC_PR = "r9" +INC_PR = "r10" FILESPATHPKG .= ":gcc-$PV" @@ -26,6 +26,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2;name=archive \ file://gcc-pr41175.patch \ file://gcc-armv4-pass-fix-v4bx-to-ld.patch \ file://gcc-4.3.3-fix-EXTRA_BUILD.patch \ + file://Makefile.in.patch \ " # Language Overrides FORTRAN = "" diff --git a/recipes/gcc/gcc-4.4.1/Makefile.in.patch b/recipes/gcc/gcc-4.4.1/Makefile.in.patch new file mode 100644 index 0000000000..13ae6c5d33 --- /dev/null +++ b/recipes/gcc/gcc-4.4.1/Makefile.in.patch @@ -0,0 +1,30 @@ +Index: gcc-4.4.4/gcc/Makefile.in +=================================================================== +--- gcc-4.4.4.orig/gcc/Makefile.in ++++ gcc-4.4.4/gcc/Makefile.in +@@ -596,7 +596,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-functions -fno-exceptions \ + -fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \ + $(INHIBIT_LIBC_CFLAGS) +@@ -940,10 +940,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) ++INCLUDES = $(TARGET_INCLUDES) $(GMPINC) + + .c.o: + $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION) diff --git a/recipes/gcc/gcc-4.4.2.inc b/recipes/gcc/gcc-4.4.2.inc index 360ea0134c..5df40f0617 100644 --- a/recipes/gcc/gcc-4.4.2.inc +++ b/recipes/gcc/gcc-4.4.2.inc @@ -8,7 +8,7 @@ LICENSE = "GPLv3" DEPENDS = "mpfr gmp" NATIVEDEPS = "mpfr-native gmp-native" -INC_PR = "r3" +INC_PR = "r4" FILESPATHPKG .= ":gcc-$PV" @@ -26,6 +26,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2;name=archive \ file://gcc-pr41175.patch \ file://gcc-armv4-pass-fix-v4bx-to-ld.patch \ file://gcc-4.3.3-fix-EXTRA_BUILD.patch \ + file://Makefile.in.patch \ " # Language Overrides FORTRAN = "" diff --git a/recipes/gcc/gcc-4.4.2/Makefile.in.patch b/recipes/gcc/gcc-4.4.2/Makefile.in.patch new file mode 100644 index 0000000000..13ae6c5d33 --- /dev/null +++ b/recipes/gcc/gcc-4.4.2/Makefile.in.patch @@ -0,0 +1,30 @@ +Index: gcc-4.4.4/gcc/Makefile.in +=================================================================== +--- gcc-4.4.4.orig/gcc/Makefile.in ++++ gcc-4.4.4/gcc/Makefile.in +@@ -596,7 +596,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-functions -fno-exceptions \ + -fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \ + $(INHIBIT_LIBC_CFLAGS) +@@ -940,10 +940,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) ++INCLUDES = $(TARGET_INCLUDES) $(GMPINC) + + .c.o: + $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION) diff --git a/recipes/gcc/gcc-4.4.4.inc b/recipes/gcc/gcc-4.4.4.inc index fb4727795b..4c7ee4089c 100644 --- a/recipes/gcc/gcc-4.4.4.inc +++ b/recipes/gcc/gcc-4.4.4.inc @@ -8,7 +8,7 @@ LICENSE = "GPLv3" DEPENDS = "mpfr gmp" NATIVEDEPS = "mpfr-native gmp-native" -INC_PR = "r3" +INC_PR = "r4" FILESPATHPKG .= ":gcc-$PV" @@ -27,6 +27,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2;name=gcc444tarbz2 \ file://gcc-armv4-pass-fix-v4bx-to-ld.patch \ file://gcc-add-t-slibgcc-libgcc.patch \ file://gcc-4.3.3-fix-EXTRA_BUILD.patch \ + file://Makefile.in.patch \ " SRC_URI[gcc444tarbz2.md5sum] = "7ff5ce9e5f0b088ab48720bbd7203530" SRC_URI[gcc444tarbz2.sha256sum] = "e1c13696b45752ad3f652304fab5120a43a8a5c0f438d3bda78cf16b620c0c58" diff --git a/recipes/gcc/gcc-4.4.4/Makefile.in.patch b/recipes/gcc/gcc-4.4.4/Makefile.in.patch new file mode 100644 index 0000000000..13ae6c5d33 --- /dev/null +++ b/recipes/gcc/gcc-4.4.4/Makefile.in.patch @@ -0,0 +1,30 @@ +Index: gcc-4.4.4/gcc/Makefile.in +=================================================================== +--- gcc-4.4.4.orig/gcc/Makefile.in ++++ gcc-4.4.4/gcc/Makefile.in +@@ -596,7 +596,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-functions -fno-exceptions \ + -fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \ + $(INHIBIT_LIBC_CFLAGS) +@@ -940,10 +940,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) ++INCLUDES = $(TARGET_INCLUDES) $(GMPINC) + + .c.o: + $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION) -- cgit 1.2.3-korg