aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/gcc
diff options
context:
space:
mode:
authorFrans Meulenbroeks <fransmeulenbroeks@gmail.com>2010-07-14 22:52:38 +0200
committerFrans Meulenbroeks <fransmeulenbroeks@gmail.com>2010-07-14 22:52:38 +0200
commit6bd90b5b7e01a877e464bd729d9baef2f4994187 (patch)
tree7804563e9bc1732672832ca345bba2a039c56ca3 /recipes/gcc
parent098bbaa7446076dd10b2d221719e75b0964e0ba7 (diff)
downloadopenembedded-6bd90b5b7e01a877e464bd729d9baef2f4994187.tar.gz
openembedded-6bd90b5b7e01a877e464bd729d9baef2f4994187.tar.bz2
openembedded-6bd90b5b7e01a877e464bd729d9baef2f4994187.zip
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@gmail.com> Acked-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'recipes/gcc')
-rw-r--r--recipes/gcc/gcc-4.1.0.inc6
-rw-r--r--recipes/gcc/gcc-4.1.0/Makefile.in.patch38
-rw-r--r--recipes/gcc/gcc-4.1.1.inc3
-rw-r--r--recipes/gcc/gcc-4.1.1/Makefile.in.patch38
-rw-r--r--recipes/gcc/gcc-4.1.2.inc3
-rw-r--r--recipes/gcc/gcc-4.1.2/Makefile.in.patch38
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 bfaf699963..ef62c8f45a 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 0000000000..f6c4bceeb5
--- /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 3b813b0626..951dd91247 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 0000000000..f6c4bceeb5
--- /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 3b6cf30913..2505b09448 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 0000000000..f6c4bceeb5
--- /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
+