summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Olbrich <m.olbrich@pengutronix.de>2015-11-16 19:22:42 +0100
committerMichael Olbrich <m.olbrich@pengutronix.de>2016-06-22 07:53:22 +0200
commit65c27afba3d7287d85818d6a08b6169ebbbdd37b (patch)
treee22e8f8f5c6975609df6d47a911266887fb9ec19
parent08b2c355cfd49ca3037619dece7119c80b47863d (diff)
downloadOSELAS.Toolchain-65c27afba3d7287d85818d6a08b6169ebbbdd37b.tar.gz
gcc-5.4.0 patches
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r--patches/gcc-5.4.0/0200-no-host-includes.patch55
-rw-r--r--patches/gcc-5.4.0/0201-gcc-i386-use-pure64-CLFS-patch.patch45
-rw-r--r--patches/gcc-5.4.0/0202-aarch64-change-paths-for-pure64.patch22
-rw-r--r--patches/gcc-5.4.0/0300-also-match-uclibc-when-checking-host-os.patch49
-rw-r--r--patches/gcc-5.4.0/0301-missing-execinfo.h.patch24
-rw-r--r--patches/gcc-5.4.0/0302-c99-snprintf.patch24
-rw-r--r--patches/gcc-5.4.0/0400-libiberty-pic.patch24
-rw-r--r--patches/gcc-5.4.0/0401-libstdc-pic.patch58
-rw-r--r--patches/gcc-5.4.0/series15
9 files changed, 316 insertions, 0 deletions
diff --git a/patches/gcc-5.4.0/0200-no-host-includes.patch b/patches/gcc-5.4.0/0200-no-host-includes.patch
new file mode 100644
index 0000000..6bc70de
--- /dev/null
+++ b/patches/gcc-5.4.0/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 6c54ca6c1434..3a71eda7a1ff 100644
+--- a/gcc/incpath.c
++++ b/gcc/incpath.c
+@@ -451,6 +451,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-5.4.0/0201-gcc-i386-use-pure64-CLFS-patch.patch b/patches/gcc-5.4.0/0201-gcc-i386-use-pure64-CLFS-patch.patch
new file mode 100644
index 0000000..25a57f4
--- /dev/null
+++ b/patches/gcc-5.4.0/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 a27d3bee2160..b8f719779904 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 f6dbb78ffcf4..61310c56a56e 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-5.4.0/0202-aarch64-change-paths-for-pure64.patch b/patches/gcc-5.4.0/0202-aarch64-change-paths-for-pure64.patch
new file mode 100644
index 0000000..d201f71
--- /dev/null
+++ b/patches/gcc-5.4.0/0202-aarch64-change-paths-for-pure64.patch
@@ -0,0 +1,22 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Sun, 7 Dec 2014 21:07:28 +0100
+Subject: [PATCH] aarch64: change paths for pure64
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ gcc/config/aarch64/t-aarch64-linux | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux
+index c296376355a0..88780c43b1e0 100644
+--- a/gcc/config/aarch64/t-aarch64-linux
++++ b/gcc/config/aarch64/t-aarch64-linux
+@@ -22,7 +22,7 @@ LIB1ASMSRC = aarch64/lib1funcs.asm
+ LIB1ASMFUNCS = _aarch64_sync_cache_range
+
+ AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be)
+-MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu)
++MULTILIB_OSDIRNAMES = mabi.lp64=../lib$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu)
+ MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu)
+
+ MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32
diff --git a/patches/gcc-5.4.0/0300-also-match-uclibc-when-checking-host-os.patch b/patches/gcc-5.4.0/0300-also-match-uclibc-when-checking-host-os.patch
new file mode 100644
index 0000000..c18364b
--- /dev/null
+++ b/patches/gcc-5.4.0/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-5.4.0/0301-missing-execinfo.h.patch b/patches/gcc-5.4.0/0301-missing-execinfo.h.patch
new file mode 100644
index 0000000..42f02e9
--- /dev/null
+++ b/patches/gcc-5.4.0/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 6b38f2d0e6ca..fca98ffb61d5 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-5.4.0/0302-c99-snprintf.patch b/patches/gcc-5.4.0/0302-c99-snprintf.patch
new file mode 100644
index 0000000..7ea8a91
--- /dev/null
+++ b/patches/gcc-5.4.0/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 d1c958b63834..01d9b80fd07f 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-5.4.0/0400-libiberty-pic.patch b/patches/gcc-5.4.0/0400-libiberty-pic.patch
new file mode 100644
index 0000000..f76669a
--- /dev/null
+++ b/patches/gcc-5.4.0/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 f06cc69a973b..246ab02c9ce9 100644
+--- a/libiberty/Makefile.in
++++ b/libiberty/Makefile.in
+@@ -260,6 +260,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-5.4.0/0401-libstdc-pic.patch b/patches/gcc-5.4.0/0401-libstdc-pic.patch
new file mode 100644
index 0000000..a2be167
--- /dev/null
+++ b/patches/gcc-5.4.0/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 fb0ec9a23c60..a37b925bc6c4 100644
+--- a/libstdc++-v3/src/Makefile.am
++++ b/libstdc++-v3/src/Makefile.am
+@@ -219,6 +219,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 5221a5d5c298..6a8ff2945105 100644
+--- a/libstdc++-v3/src/Makefile.in
++++ b/libstdc++-v3/src/Makefile.in
+@@ -828,7 +828,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
+
+@@ -1027,6 +1027,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-5.4.0/series b/patches/gcc-5.4.0/series
new file mode 100644
index 0000000..f7ac9c4
--- /dev/null
+++ b/patches/gcc-5.4.0/series
@@ -0,0 +1,15 @@
+# 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
+0202-aarch64-change-paths-for-pure64.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
+# 3fb980ba96ed5ddac453ba2c7279c7ee - git-ptx-patches magic