diff options
Diffstat (limited to 'patches/gcc-4.9.2')
-rw-r--r-- | patches/gcc-4.9.2/0200-no-host-includes.patch | 55 | ||||
-rw-r--r-- | patches/gcc-4.9.2/0201-gcc-i386-use-pure64-CLFS-patch.patch | 45 | ||||
-rw-r--r-- | patches/gcc-4.9.2/0300-also-match-uclibc-when-checking-host-os.patch | 49 | ||||
-rw-r--r-- | patches/gcc-4.9.2/0301-missing-execinfo.h.patch | 24 | ||||
-rw-r--r-- | patches/gcc-4.9.2/0302-c99-snprintf.patch | 24 | ||||
-rw-r--r-- | patches/gcc-4.9.2/0400-libiberty-pic.patch | 24 | ||||
-rw-r--r-- | patches/gcc-4.9.2/0401-libstdc-pic.patch | 58 | ||||
-rw-r--r-- | patches/gcc-4.9.2/0500-Fix-Argument-list-too-long-error.patch | 37 | ||||
-rw-r--r-- | patches/gcc-4.9.2/series | 16 |
9 files changed, 332 insertions, 0 deletions
diff --git a/patches/gcc-4.9.2/0200-no-host-includes.patch b/patches/gcc-4.9.2/0200-no-host-includes.patch new file mode 100644 index 0000000..91006f5 --- /dev/null +++ b/patches/gcc-4.9.2/0200-no-host-includes.patch @@ -0,0 +1,55 @@ +From: Marc Kleine-Budde <m.kleine-budde@pengutronix.de> +Date: Tue, 1 Nov 2011 18:25:06 +0100 +Subject: [PATCH] no host includes + +With this patch gcc bails out if you include a host include path into +the searchlist (-I). This patch is not intended for upstream and was +inspired by + +http://www.openembedded.org/repo/org.openembedded.dev/packages/gcc/gcc-4.1.1/zecke-no-host-includes.patch + +Signed-off-by: Marc Kleine-Budde <m.kleine-budde@pengutronix.de> +Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> +--- + gcc/incpath.c | 28 ++++++++++++++++++++++++++++ + 1 file changed, 28 insertions(+) + +diff --git a/gcc/incpath.c b/gcc/incpath.c +index f495c0a7fc0c..d3fb24a525c8 100644 +--- a/gcc/incpath.c ++++ b/gcc/incpath.c +@@ -450,6 +450,34 @@ add_path (char *path, int chain, int cxx_aware, bool user_supplied_p) + p->construct = 0; + p->user_supplied_p = user_supplied_p; + ++#ifdef CROSS_COMPILE ++ /* A common error when cross compiling is including ++ host headers. This code below will try to fail fast ++ for cross compiling. Currently we consider /usr/include, ++ /opt/include and /sw/include as harmful. */ ++ { ++ unsigned int i; ++ const char *bad_path[] = { ++ "/usr/include", ++ "/usr/local/include", ++ "/sw/include", ++ "/opt/include", ++ }; ++ ++ for (i = 0; i < sizeof(bad_path)/sizeof(bad_path[0]); i++) { ++ if( strstr(p->name, bad_path[i]) == p->name ) { ++ fprintf(stderr,_("\n" ++ "CROSS COMPILE Badness: %s in INCLUDEPATH: %s\n" ++ "\n"), ++ ++ bad_path[i], p->name); ++ ++ exit (FATAL_EXIT_CODE); ++ } ++ } ++ } ++#endif ++ + add_cpp_dir_path (p, chain); + } + diff --git a/patches/gcc-4.9.2/0201-gcc-i386-use-pure64-CLFS-patch.patch b/patches/gcc-4.9.2/0201-gcc-i386-use-pure64-CLFS-patch.patch new file mode 100644 index 0000000..8699d7c --- /dev/null +++ b/patches/gcc-4.9.2/0201-gcc-i386-use-pure64-CLFS-patch.patch @@ -0,0 +1,45 @@ +From: =?UTF-8?q?Andreas=20Bie=C3=9Fmann?= <andreas@biessmann.de> +Date: Thu, 9 Feb 2012 13:59:12 +0100 +Subject: [PATCH] gcc/i386: use pure64 CLFS patch +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This is a modified version of +http://trac.cross-lfs.org/browser/patches/gcc-4.6.0-pure64-1.patch to use /lib +instead of /lib64 for x86_64. +This will only work as generic patch, if we do _not_ build multilib x86 +toolchains. + +Signed-off-by: Andreas Bießmann <andreas@biessmann.de> +--- + gcc/config/i386/linux64.h | 4 ++-- + gcc/config/i386/t-linux64 | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/gcc/config/i386/linux64.h b/gcc/config/i386/linux64.h +index a90171e8c540..24c7c9489421 100644 +--- a/gcc/config/i386/linux64.h ++++ b/gcc/config/i386/linux64.h +@@ -27,6 +27,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + #define GNU_USER_LINK_EMULATION64 "elf_x86_64" + #define GNU_USER_LINK_EMULATIONX32 "elf32_x86_64" + +-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2" +-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2" ++#define GLIBC_DYNAMIC_LINKER32 "/lib32/ld-linux.so.2" ++#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2" + #define GLIBC_DYNAMIC_LINKERX32 "/libx32/ld-linux-x32.so.2" +diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64 +index 5ec8907a9343..7b83beec7fd1 100644 +--- a/gcc/config/i386/t-linux64 ++++ b/gcc/config/i386/t-linux64 +@@ -33,6 +33,6 @@ + comma=, + MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG)) + MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS))) +-MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu) +-MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu) ++MULTILIB_OSDIRNAMES = m64=../lib$(call if_multiarch,:x86_64-linux-gnu) ++MULTILIB_OSDIRNAMES+= m32=../lib32$(call if_multiarch,:i386-linux-gnu) + MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32) diff --git a/patches/gcc-4.9.2/0300-also-match-uclibc-when-checking-host-os.patch b/patches/gcc-4.9.2/0300-also-match-uclibc-when-checking-host-os.patch new file mode 100644 index 0000000..c18364b --- /dev/null +++ b/patches/gcc-4.9.2/0300-also-match-uclibc-when-checking-host-os.patch @@ -0,0 +1,49 @@ +From: Robert Schwebel <r.schwebel@pengutronix.de> +Date: Tue, 1 Nov 2011 18:25:07 +0100 +Subject: [PATCH] also match uclibc when checking host os + +This patch was taken from uclibc. + +Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> +--- + contrib/regression/objs-gcc.sh | 4 ++++ + libjava/classpath/ltconfig | 4 ++-- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/contrib/regression/objs-gcc.sh b/contrib/regression/objs-gcc.sh +index 60b0497fea24..6dc7eadff360 100755 +--- a/contrib/regression/objs-gcc.sh ++++ b/contrib/regression/objs-gcc.sh +@@ -106,6 +106,10 @@ if [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-gnu ] + then + make all-gdb all-dejagnu all-ld || exit 1 + make install-gdb install-dejagnu install-ld || exit 1 ++elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ] ++ then ++ make all-gdb all-dejagnu all-ld || exit 1 ++ make install-gdb install-dejagnu install-ld || exit 1 + elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then + make bootstrap || exit 1 + make install || exit 1 +diff --git a/libjava/classpath/ltconfig b/libjava/classpath/ltconfig +index 743d95135fb8..ae4ea6095cdd 100755 +--- a/libjava/classpath/ltconfig ++++ b/libjava/classpath/ltconfig +@@ -603,7 +603,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + + # Transform linux* to *-*-linux-gnu*, to support old configure scripts. + case $host_os in +-linux-gnu*) ;; ++linux-gnu*|linux-uclibc*) ;; + linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` + esac + +@@ -1247,7 +1247,7 @@ linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) + ;; + + # This must be Linux ELF. +-linux-gnu*) ++linux*) + version_type=linux + need_lib_prefix=no + need_version=no diff --git a/patches/gcc-4.9.2/0301-missing-execinfo.h.patch b/patches/gcc-4.9.2/0301-missing-execinfo.h.patch new file mode 100644 index 0000000..0bafc7c --- /dev/null +++ b/patches/gcc-4.9.2/0301-missing-execinfo.h.patch @@ -0,0 +1,24 @@ +From: Robert Schwebel <r.schwebel@pengutronix.de> +Date: Tue, 1 Nov 2011 18:25:07 +0100 +Subject: [PATCH] missing execinfo.h + +This patch was taken from uclibc. + +Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> +--- + boehm-gc/include/gc.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/boehm-gc/include/gc.h b/boehm-gc/include/gc.h +index c51e017d6748..a7ba8dca1a62 100644 +--- a/boehm-gc/include/gc.h ++++ b/boehm-gc/include/gc.h +@@ -503,7 +503,7 @@ GC_API GC_PTR GC_malloc_atomic_ignore_off_page GC_PROTO((size_t lb)); + #if defined(__linux__) || defined(__GLIBC__) + # include <features.h> + # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \ +- && !defined(__ia64__) ++ && !defined(__ia64__) && !defined(__UCLIBC__) + # ifndef GC_HAVE_BUILTIN_BACKTRACE + # define GC_HAVE_BUILTIN_BACKTRACE + # endif diff --git a/patches/gcc-4.9.2/0302-c99-snprintf.patch b/patches/gcc-4.9.2/0302-c99-snprintf.patch new file mode 100644 index 0000000..0258f31 --- /dev/null +++ b/patches/gcc-4.9.2/0302-c99-snprintf.patch @@ -0,0 +1,24 @@ +From: Robert Schwebel <r.schwebel@pengutronix.de> +Date: Tue, 1 Nov 2011 18:25:07 +0100 +Subject: [PATCH] c99 snprintf + +This patch was taken from uclibc. + +Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> +--- + libstdc++-v3/include/c_global/cstdio | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libstdc++-v3/include/c_global/cstdio b/libstdc++-v3/include/c_global/cstdio +index 6043b3de2bf3..54772bccc0c9 100644 +--- a/libstdc++-v3/include/c_global/cstdio ++++ b/libstdc++-v3/include/c_global/cstdio +@@ -146,7 +146,7 @@ namespace std + using ::vsprintf; + } // namespace + +-#if _GLIBCXX_USE_C99 ++#if _GLIBCXX_USE_C99 || defined __UCLIBC__ + + #undef snprintf + #undef vfscanf diff --git a/patches/gcc-4.9.2/0400-libiberty-pic.patch b/patches/gcc-4.9.2/0400-libiberty-pic.patch new file mode 100644 index 0000000..872295e --- /dev/null +++ b/patches/gcc-4.9.2/0400-libiberty-pic.patch @@ -0,0 +1,24 @@ +From: Marc Kleine-Budde <m.kleine-budde@pengutronix.de> +Date: Tue, 1 Nov 2011 18:25:08 +0100 +Subject: [PATCH] libiberty pic + +Taken from gentoo. + +Signed-off-by: Marc Kleine-Budde <m.kleine-budde@pengutronix.de> +Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> +--- + libiberty/Makefile.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in +index 75ff82d984a9..a55137e5f1de 100644 +--- a/libiberty/Makefile.in ++++ b/libiberty/Makefile.in +@@ -250,6 +250,7 @@ $(TARGETLIB): $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS) + $(AR) $(AR_FLAGS) $(TARGETLIB) \ + $(REQUIRED_OFILES) $(EXTRA_OFILES) $(LIBOBJS); \ + $(RANLIB) $(TARGETLIB); \ ++ cp $(TARGETLIB) ../ ; \ + cd ..; \ + else true; fi + diff --git a/patches/gcc-4.9.2/0401-libstdc-pic.patch b/patches/gcc-4.9.2/0401-libstdc-pic.patch new file mode 100644 index 0000000..aa90fa9 --- /dev/null +++ b/patches/gcc-4.9.2/0401-libstdc-pic.patch @@ -0,0 +1,58 @@ +From: Marc Kleine-Budde <m.kleine-budde@pengutronix.de> +Date: Tue, 1 Nov 2011 18:25:08 +0100 +Subject: [PATCH] libstdc++ pic + +Install libstdc++_pic.a if we have pic objs. Taken from gentoo. + +Signed-off-by: Marc Kleine-Budde <m.kleine-budde@pengutronix.de> +Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de> +--- + libstdc++-v3/src/Makefile.am | 7 +++++++ + libstdc++-v3/src/Makefile.in | 9 ++++++++- + 2 files changed, 15 insertions(+), 1 deletion(-) + +diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am +index 6c2d228f844d..a77072802d4f 100644 +--- a/libstdc++-v3/src/Makefile.am ++++ b/libstdc++-v3/src/Makefile.am +@@ -187,6 +187,13 @@ CXXLINK = \ + $(VTV_CXXLINKFLAGS) \ + $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ + ++install-exec-local: ++ pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \ ++ if [ x"$$pic_objs" != x ]; then \ ++ $(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \ ++ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \ ++ fi ++ + # Symbol versioning for shared libraries. + if ENABLE_SYMVERS + libstdc++-symbols.ver: ${glibcxx_srcdir}/$(SYMVER_FILE) \ +diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in +index cd3943b1afc8..b49f2aedb1b9 100644 +--- a/libstdc++-v3/src/Makefile.in ++++ b/libstdc++-v3/src/Makefile.in +@@ -769,7 +769,7 @@ install-dvi: install-dvi-recursive + + install-dvi-am: + +-install-exec-am: install-toolexeclibLTLIBRARIES ++install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local + + install-html: install-html-recursive + +@@ -963,6 +963,13 @@ install-debug: build-debug + (cd ${debugdir} && $(MAKE) CXXFLAGS='$(DEBUG_FLAGS)' \ + toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install) ; + ++install-exec-local: ++ pic_objs=`sed -n "s:'::g;s:^pic_object=::p" *.lo | grep -v '^none$$'`; \ ++ if [ x"$$pic_objs" != x ]; then \ ++ $(AR) cru libstdc++_pic.a $$pic_objs $(top_builddir)/libsupc++/*.o || exit 1; \ ++ $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir) || exit 1; \ ++ fi ++ + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded. + .NOEXPORT: diff --git a/patches/gcc-4.9.2/0500-Fix-Argument-list-too-long-error.patch b/patches/gcc-4.9.2/0500-Fix-Argument-list-too-long-error.patch new file mode 100644 index 0000000..e434b45 --- /dev/null +++ b/patches/gcc-4.9.2/0500-Fix-Argument-list-too-long-error.patch @@ -0,0 +1,37 @@ +From: Robert Yang <liezhi.yang@windriver.com> +Date: Wed, 5 Dec 2012 17:20:37 +0100 +Subject: [PATCH] Fix "Argument list too long" error + +There would be an "Argument list too long" error when the +build directory is longer than 200, this is caused by: + +headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u` + +The PLUGIN_HEADERS is too long before sort, so the "echo" can't handle +it, use the $(sort list) of GNU make which can handle the too long list +would fix the problem, the header would be short enough after sorted. +The "tr ' ' '\012'" was used for translating the space to "\n", the +$(sort list) doesn't need this. + +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> + +This was taken from OE. + +Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> +--- + gcc/Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gcc/Makefile.in b/gcc/Makefile.in +index b47733cef501..13cd6944b67c 100644 +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -3160,7 +3160,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype + # We keep the directory structure for files in config or c-family and .def + # files. All other files are flattened to a single directory. + $(mkinstalldirs) $(DESTDIR)$(plugin_includedir) +- headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u`; \ ++ headers="$(sort $(PLUGIN_HEADERS))"; \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \ + for file in $$headers; do \ + if [ -f $$file ] ; then \ diff --git a/patches/gcc-4.9.2/series b/patches/gcc-4.9.2/series new file mode 100644 index 0000000..5278778 --- /dev/null +++ b/patches/gcc-4.9.2/series @@ -0,0 +1,16 @@ +# generated by git-ptx-patches +#tag:base +#tag:Upstream --start-number 100 +#tag:OSELAS.toolchain --start-number 200 +0200-no-host-includes.patch +0201-gcc-i386-use-pure64-CLFS-patch.patch +#tag:uclibc --start-number 300 +0300-also-match-uclibc-when-checking-host-os.patch +0301-missing-execinfo.h.patch +0302-c99-snprintf.patch +#tag:gentoo --start-number 400 +0400-libiberty-pic.patch +0401-libstdc-pic.patch +#tag:OpenEmbedded --start-number 500 +0500-Fix-Argument-list-too-long-error.patch +# c671ca1334def5681f59a78c91610f8c - git-ptx-patches magic |