[oe-commits] Frans Meulenbroeks : gcc 4.1.x: patch Makefile.in for cross compile badness

git version control git at git.openembedded.org
Wed Jul 14 20:54:27 UTC 2010


Module: openembedded.git
Branch: org.openembedded.dev
Commit: 6bd90b5b7e01a877e464bd729d9baef2f4994187
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=6bd90b5b7e01a877e464bd729d9baef2f4994187

Author: Frans Meulenbroeks <fransmeulenbroeks at gmail.com>
Date:   Wed Jul 14 22:52:38 2010 +0200

gcc 4.1.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.

This has been fully tested with gcc 4.1.2. For 4.1.0 and 4.1.0 it is
verified that the patch applies properly

Signed-off-by: Frans Meulenbroeks <fransmeulenbroeks at gmail.com>
Acked-by: Khem Raj <raj.khem at gmail.com>

---

 recipes/gcc/gcc-4.1.0.inc               |    6 +++-
 recipes/gcc/gcc-4.1.0/Makefile.in.patch |   38 +++++++++++++++++++++++++++++++
 recipes/gcc/gcc-4.1.1.inc               |    3 +-
 recipes/gcc/gcc-4.1.1/Makefile.in.patch |   38 +++++++++++++++++++++++++++++++
 recipes/gcc/gcc-4.1.2.inc               |    3 +-
 recipes/gcc/gcc-4.1.2/Makefile.in.patch |   38 +++++++++++++++++++++++++++++++
 6 files changed, 122 insertions(+), 4 deletions(-)

diff --git a/recipes/gcc/gcc-4.1.0.inc b/recipes/gcc/gcc-4.1.0.inc
index bfaf699..ef62c8f 100644
--- a/recipes/gcc/gcc-4.1.0.inc
+++ b/recipes/gcc/gcc-4.1.0.inc
@@ -1,6 +1,6 @@
 require gcc-common.inc
 
-INC_PR = "r10"
+INC_PR = "r11"
 
 DEFAULT_PREFERENCE = "-1"
 
@@ -11,7 +11,9 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2;name=archive \
 	file://arm-nolibfloat.patch \
 	file://arm-softfloat.patch \
 	file://zecke-xgcc-cpp.patch \
-    file://pr34130.patch"
+	file://pr34130.patch \
+	file://Makefile.in.patch \
+    "
 
 SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch "
 
diff --git a/recipes/gcc/gcc-4.1.0/Makefile.in.patch b/recipes/gcc/gcc-4.1.0/Makefile.in.patch
new file mode 100644
index 0000000..f6c4bce
--- /dev/null
+++ b/recipes/gcc/gcc-4.1.0/Makefile.in.patch
@@ -0,0 +1,38 @@
+Index: gcc-4.1.2/gcc/Makefile.in
+===================================================================
+--- gcc-4.1.2.orig/gcc/Makefile.in
++++ gcc-4.1.2/gcc/Makefile.in
+@@ -548,7 +548,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-unit-at-a-time \
+   $(INHIBIT_LIBC_CFLAGS)
+@@ -845,9 +845,13 @@ BUILD_VARRAY = build/varray.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)
++	   $(CPPINC)
++INCLUDES = $(TARGET_INCLUDES) $(GMPINC)
+ 
+ .c.o:
+ 	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION)
+@@ -1379,7 +1383,7 @@ libgcc.a: $(LIBGCC_DEPS)
+ 	$(MAKE) \
+ 	  CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \
+ 	  CONFIG_H="$(TCONFIG_H)" TM_H="$(TM_H)" \
+-	  INCLUDES="$(INCLUDES)" \
++	  INCLUDES="$(TARGET_INCLUDES)" \
+ 	  MAKEOVERRIDES= \
+ 	  -f libgcc.mk all
+ 
diff --git a/recipes/gcc/gcc-4.1.1.inc b/recipes/gcc/gcc-4.1.1.inc
index 3b813b0..951dd91 100644
--- a/recipes/gcc/gcc-4.1.1.inc
+++ b/recipes/gcc/gcc-4.1.1.inc
@@ -3,7 +3,7 @@ require gcc-common.inc
 DEPENDS = "mpfr gmp"
 NATIVEDEPS = "mpfr-native gmp-native"
 
-INC_PR = "r1"
+INC_PR = "r2"
 
 SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2;name=archive \
 	file://100-uclibc-conf.patch \
@@ -32,6 +32,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2;name=archive \
         file://gcc-4.1.1-e300cx.patch \
         file://pr34130.patch \
 	file://sed-fixinc-backslash.patch \
+	file://Makefile.in.patch \
 	"
 
 SRC_URI_append_sh3  = " file://sh3-installfix-fixheaders.patch "
diff --git a/recipes/gcc/gcc-4.1.1/Makefile.in.patch b/recipes/gcc/gcc-4.1.1/Makefile.in.patch
new file mode 100644
index 0000000..f6c4bce
--- /dev/null
+++ b/recipes/gcc/gcc-4.1.1/Makefile.in.patch
@@ -0,0 +1,38 @@
+Index: gcc-4.1.2/gcc/Makefile.in
+===================================================================
+--- gcc-4.1.2.orig/gcc/Makefile.in
++++ gcc-4.1.2/gcc/Makefile.in
+@@ -548,7 +548,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-unit-at-a-time \
+   $(INHIBIT_LIBC_CFLAGS)
+@@ -845,9 +845,13 @@ BUILD_VARRAY = build/varray.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)
++	   $(CPPINC)
++INCLUDES = $(TARGET_INCLUDES) $(GMPINC)
+ 
+ .c.o:
+ 	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION)
+@@ -1379,7 +1383,7 @@ libgcc.a: $(LIBGCC_DEPS)
+ 	$(MAKE) \
+ 	  CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \
+ 	  CONFIG_H="$(TCONFIG_H)" TM_H="$(TM_H)" \
+-	  INCLUDES="$(INCLUDES)" \
++	  INCLUDES="$(TARGET_INCLUDES)" \
+ 	  MAKEOVERRIDES= \
+ 	  -f libgcc.mk all
+ 
diff --git a/recipes/gcc/gcc-4.1.2.inc b/recipes/gcc/gcc-4.1.2.inc
index 3b6cf30..2505b09 100644
--- a/recipes/gcc/gcc-4.1.2.inc
+++ b/recipes/gcc/gcc-4.1.2.inc
@@ -3,7 +3,7 @@ require gcc-common.inc
 DEPENDS = "mpfr gmp"
 NATIVEDEPS = "mpfr-native gmp-native"
 
-INC_PR = "r22"
+INC_PR = "r23"
 
 SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2;name=archive \
 	file://100-uclibc-conf.patch \
@@ -29,6 +29,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2;name=archive \
 	file://gfortran.patch \
         file://gcc-4.0.2-e300c2c3.patch \
         file://pr34130.patch \
+	file://Makefile.in.patch \
        "
 
 SRC_URI_append_sh3  = " file://sh3-installfix-fixheaders.patch "
diff --git a/recipes/gcc/gcc-4.1.2/Makefile.in.patch b/recipes/gcc/gcc-4.1.2/Makefile.in.patch
new file mode 100644
index 0000000..f6c4bce
--- /dev/null
+++ b/recipes/gcc/gcc-4.1.2/Makefile.in.patch
@@ -0,0 +1,38 @@
+Index: gcc-4.1.2/gcc/Makefile.in
+===================================================================
+--- gcc-4.1.2.orig/gcc/Makefile.in
++++ gcc-4.1.2/gcc/Makefile.in
+@@ -548,7 +548,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-unit-at-a-time \
+   $(INHIBIT_LIBC_CFLAGS)
+@@ -845,9 +845,13 @@ BUILD_VARRAY = build/varray.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)
++	   $(CPPINC)
++INCLUDES = $(TARGET_INCLUDES) $(GMPINC)
+ 
+ .c.o:
+ 	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION)
+@@ -1379,7 +1383,7 @@ libgcc.a: $(LIBGCC_DEPS)
+ 	$(MAKE) \
+ 	  CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \
+ 	  CONFIG_H="$(TCONFIG_H)" TM_H="$(TM_H)" \
+-	  INCLUDES="$(INCLUDES)" \
++	  INCLUDES="$(TARGET_INCLUDES)" \
+ 	  MAKEOVERRIDES= \
+ 	  -f libgcc.mk all
+ 





More information about the Openembedded-commits mailing list