On Sun, Jul 11, 2010 at 12:32 AM, Frans Meulenbroeks <[email protected]> wrote: > 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 <[email protected]> >
Acked-by: Khem Raj <[email protected]> Please bump PR too. > --- > > see also the thread > [RFC] gcc patch to avoid host include when compiling gcc-cross > on the oe ML > > I'll apply if I get two acks. After that I'll try to find time to > port it to newer versions too (but if someone else would like to > give that a stab, be my guest). > --- > recipes/gcc/gcc-4.1.0.inc | 4 ++- > recipes/gcc/gcc-4.1.0/Makefile.in.patch | 47 > +++++++++++++++++++++++++++++++ > recipes/gcc/gcc-4.1.1.inc | 1 + > recipes/gcc/gcc-4.1.1/Makefile.in.patch | 47 > +++++++++++++++++++++++++++++++ > recipes/gcc/gcc-4.1.2.inc | 1 + > recipes/gcc/gcc-4.1.2/Makefile.in.patch | 47 > +++++++++++++++++++++++++++++++ > 6 files changed, 146 insertions(+), 1 deletions(-) > create mode 100644 recipes/gcc/gcc-4.1.0/Makefile.in.patch > create mode 100644 recipes/gcc/gcc-4.1.1/Makefile.in.patch > create mode 100644 recipes/gcc/gcc-4.1.2/Makefile.in.patch > > diff --git a/recipes/gcc/gcc-4.1.0.inc b/recipes/gcc/gcc-4.1.0.inc > index bfaf699..34d3502 100644 > --- a/recipes/gcc/gcc-4.1.0.inc > +++ b/recipes/gcc/gcc-4.1.0.inc > @@ -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..140116a > --- /dev/null > +++ b/recipes/gcc/gcc-4.1.0/Makefile.in.patch > @@ -0,0 +1,47 @@ > +Index: gcc-4.1.2/gcc/Makefile.in > +=================================================================== > +--- gcc-4.1.2.orig/gcc/Makefile.in > ++++ gcc-4.1.2/gcc/Makefile.in > +@@ -405,7 +405,7 @@ LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR > + TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@ > + > + xmake_fi...@xmake_file@ > +-tmake_fi...@tmake_file@ > ++tmake_fi...@tmake_file@ > /home/frans/oe/tmp_angstrom/work/nios2-linux/gcc-cross-4.1.2-r22.1/temp/t-oe > + out_file=$(srcdir)/config/@out_file@ > + out_object_fi...@out_object_file@ > + md_file=$(srcdir)/config/@md_file@ > +@@ -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..19f2423 100644 > --- a/recipes/gcc/gcc-4.1.1.inc > +++ b/recipes/gcc/gcc-4.1.1.inc > @@ -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..140116a > --- /dev/null > +++ b/recipes/gcc/gcc-4.1.1/Makefile.in.patch > @@ -0,0 +1,47 @@ > +Index: gcc-4.1.2/gcc/Makefile.in > +=================================================================== > +--- gcc-4.1.2.orig/gcc/Makefile.in > ++++ gcc-4.1.2/gcc/Makefile.in > +@@ -405,7 +405,7 @@ LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR > + TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@ > + > + xmake_fi...@xmake_file@ > +-tmake_fi...@tmake_file@ > ++tmake_fi...@tmake_file@ > /home/frans/oe/tmp_angstrom/work/nios2-linux/gcc-cross-4.1.2-r22.1/temp/t-oe > + out_file=$(srcdir)/config/@out_file@ > + out_object_fi...@out_object_file@ > + md_file=$(srcdir)/config/@md_file@ > +@@ -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..8771e18 100644 > --- a/recipes/gcc/gcc-4.1.2.inc > +++ b/recipes/gcc/gcc-4.1.2.inc > @@ -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..140116a > --- /dev/null > +++ b/recipes/gcc/gcc-4.1.2/Makefile.in.patch > @@ -0,0 +1,47 @@ > +Index: gcc-4.1.2/gcc/Makefile.in > +=================================================================== > +--- gcc-4.1.2.orig/gcc/Makefile.in > ++++ gcc-4.1.2/gcc/Makefile.in > +@@ -405,7 +405,7 @@ LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR > + TARGET_SYSTEM_ROOT = @TARGET_SYSTEM_ROOT@ > + > + xmake_fi...@xmake_file@ > +-tmake_fi...@tmake_file@ > ++tmake_fi...@tmake_file@ > /home/frans/oe/tmp_angstrom/work/nios2-linux/gcc-cross-4.1.2-r22.1/temp/t-oe > + out_file=$(srcdir)/config/@out_file@ > + out_object_fi...@out_object_file@ > + md_file=$(srcdir)/config/@md_file@ > +@@ -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 > + > -- > 1.6.4.2 > > > _______________________________________________ > Openembedded-devel mailing list > [email protected] > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel > _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
