[oe] [PATCH] gcc 4.1.x: patch Makefile.in for cross compile badness

Frans Meulenbroeks fransmeulenbroeks at gmail.com
Wed Jul 14 20:56:04 UTC 2010


2010/7/12 Frans Meulenbroeks <fransmeulenbroeks at gmail.com>

> 2010/7/12 Khem Raj <raj.khem at gmail.com>:
> > On Sun, Jul 11, 2010 at 12:32 AM, Frans Meulenbroeks
> > <fransmeulenbroeks at gmail.com> 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 <fransmeulenbroeks at gmail.com>
> >>
> >
> > Acked-by: Khem Raj <raj.khem at gmail.com>
> >
> > Please bump PR too.
>
> Will do. Thanks for the Ack.
>

Applied after bumping PR and fixing the issue reported by woglinde

> >
> >> ---
> >>
> >> 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_file=@xmake_file@
> >> +-tmake_file=@tmake_file@
> >> ++tmake_file=@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_file=@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_file=@xmake_file@
> >> +-tmake_file=@tmake_file@
> >> ++tmake_file=@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_file=@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_file=@xmake_file@
> >> +-tmake_file=@tmake_file@
> >> ++tmake_file=@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_file=@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
> >> Openembedded-devel at lists.openembedded.org
> >> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
> >>
> >
> > _______________________________________________
> > Openembedded-devel mailing list
> > Openembedded-devel at lists.openembedded.org
> > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
> >
>



More information about the Openembedded-devel mailing list