diff --git a/repo/gcc/build b/repo/gcc/build index 84ba0f0c..7c7b7f3e 100755 --- a/repo/gcc/build +++ b/repo/gcc/build @@ -1,25 +1,8 @@ #!/bin/sh -e -cd gcc - -patch -p1 < 0002-posix_memalign.patch -patch -p1 < 0003-gcc-poison-system-directories.patch -patch -p1 < 0008-s390x-muslldso.patch -patch -p1 < 0010-ldbl128-config.patch -patch -p1 < 0012-static-pie.patch -patch -p1 < 0016-invalid_tls_model.patch -patch -p1 < 005_all_default-as-needed.patch -patch -p1 < 020_all_msgfmt-libstdc++-link.patch -patch -p1 < 050_all_libiberty-asprintf.patch -patch -p1 < 051_all_libiberty-pic.patch -patch -p1 < 203-libgcc_s.patch -patch -p1 < 320-libffi-gnulinux.patch -patch -p1 < libgcc-always-build-gcceh.a.patch -patch -p1 < libgnarl-musl.patch - # Build must happen outside of gcc source. -mkdir -p ../gcc-build -cd ../gcc-build || return 1 +mkdir -p gcc-build +cd gcc-build || return 1 export libat_cv_have_ifunc=no diff --git a/repo/gcc/checksums b/repo/gcc/checksums index 00f61026..9485200c 100644 --- a/repo/gcc/checksums +++ b/repo/gcc/checksums @@ -1,15 +1 @@ 64baadfe6cc0f4947a84cb12d7f0dfaf45bb58b7e92461639596c21e02d97d2c gcc-8.3.0.tar.xz -1e3e5114a2b9aba839d627fde4675e23980ce111215af44f8f9c8bce6d5bb48b 0002-posix_memalign.patch -1d8661bdc82a29753ceac23d75bbbca50818ac40ca89a6e2c4f37d62d827eb93 0003-gcc-poison-system-directories.patch -4783ce2e39bbcfcc4225e28cfd69a2f47febba57c4d20f84a5dea61e72ed7079 0008-s390x-muslldso.patch -c466bde0f9c1275b2b64304736bf77f1c0f840fb6592a8be9055177356985003 0010-ldbl128-config.patch -35b678ba9faeaf79a4008040749a6c4245307ab5c2804180e18a1d794442560d 0012-static-pie.patch -b518bb20336e5dda313b8e928e513216273bf6791da9f1ac4ab8f75b0811b4ce 0016-invalid_tls_model.patch -53c78ebbbad5b361a45871c4fdc3e4054edf59df739e698688b4e3749cf6a3b2 005_all_default-as-needed.patch -c080f458c95dd0cbcc1322edc35890da892c3aaa7944c4eceb6319ca412cff02 020_all_msgfmt-libstdc++-link.patch -7e19261e2b5a5b9e518f6fd6844c1f0f5d0306de8bc1537c7c5cc4992a391049 050_all_libiberty-asprintf.patch -da6bbb5dc654d5e1df8ecae5c9ebb56265426c405931f14f5878248b8c79f78d 051_all_libiberty-pic.patch -99cb5e251fe194f9917d41072356416b9389794be8f7d717e29af615b58966ad 203-libgcc_s.patch -d3eea4d18184d4b37d07b5d2f9e3b0532112da33082d6a9a4845c289da74cd06 320-libffi-gnulinux.patch -1975189156d70f5428cb7f1516533965d1c8734f3009fc89a9b8e289b72326f1 libgcc-always-build-gcceh.a.patch -8d0c86cc76063632ad8e1247175b069ab2d197135764e110c43bd9e41e0f595a libgnarl-musl.patch diff --git a/repo/gcc/patches/0002-posix_memalign.patch b/repo/gcc/patches/0002-posix_memalign.patch deleted file mode 100755 index 874f49b9..00000000 --- a/repo/gcc/patches/0002-posix_memalign.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 65eb86f3e110998d30489df009d44b4bc1043adc Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy -Date: Fri, 26 Jan 2018 20:32:50 +0000 -Subject: [PATCH 02/12] posix_memalign - ---- - gcc/config/i386/pmm_malloc.h | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) - -diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h -index ffbb7f82cf5..b0b890d2403 100644 ---- a/gcc/config/i386/pmm_malloc.h -+++ b/gcc/config/i386/pmm_malloc.h -@@ -27,12 +27,13 @@ - #include - - /* We can't depend on since the prototype of posix_memalign -- may not be visible. */ -+ may not be visible and we can't pollute the namespace either. */ - #ifndef __cplusplus --extern int posix_memalign (void **, size_t, size_t); -+extern int _mm_posix_memalign (void **, size_t, size_t) - #else --extern "C" int posix_memalign (void **, size_t, size_t) throw (); -+extern "C" int _mm_posix_memalign (void **, size_t, size_t) throw () - #endif -+__asm__("posix_memalign"); - - static __inline void * - _mm_malloc (size_t __size, size_t __alignment) -@@ -42,7 +43,7 @@ _mm_malloc (size_t __size, size_t __alignment) - return malloc (__size); - if (__alignment == 2 || (sizeof (void *) == 8 && __alignment == 4)) - __alignment = sizeof (void *); -- if (posix_memalign (&__ptr, __alignment, __size) == 0) -+ if (_mm_posix_memalign (&__ptr, __alignment, __size) == 0) - return __ptr; - else - return NULL; --- -2.17.1 - diff --git a/repo/gcc/patches/0003-gcc-poison-system-directories.patch b/repo/gcc/patches/0003-gcc-poison-system-directories.patch deleted file mode 100755 index 05138976..00000000 --- a/repo/gcc/patches/0003-gcc-poison-system-directories.patch +++ /dev/null @@ -1,194 +0,0 @@ -From 48c670d2678e0323d88eb72205e039f393cabe05 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 29 Mar 2013 08:59:00 +0400 -Subject: [PATCH 03/39] gcc: poison-system-directories - -Signed-off-by: Khem Raj - -Upstream-Status: Inappropriate [distribution: codesourcery] ---- - gcc/common.opt | 4 ++++ - gcc/config.in | 6 ++++++ - gcc/configure | 16 ++++++++++++++++ - gcc/configure.ac | 10 ++++++++++ - gcc/doc/invoke.texi | 9 +++++++++ - gcc/gcc.c | 2 ++ - gcc/incpath.c | 19 +++++++++++++++++++ - 7 files changed, 66 insertions(+) - -diff --git a/gcc/common.opt b/gcc/common.opt -index d6ef85928f3..7b29efe3882 100644 ---- a/gcc/common.opt -+++ b/gcc/common.opt -@@ -679,6 +679,10 @@ Wreturn-local-addr - Common Var(warn_return_local_addr) Init(1) Warning - Warn about returning a pointer/reference to a local or temporary variable. - -+Wpoison-system-directories -+Common Var(flag_poison_system_directories) Init(1) Warning -+Warn for -I and -L options using system directories if cross compiling -+ - Wshadow - Common Var(warn_shadow) Warning - Warn when one variable shadows another. Same as -Wshadow=global. -diff --git a/gcc/config.in b/gcc/config.in -index 5bccb408016..1c784a8276b 100644 ---- a/gcc/config.in -+++ b/gcc/config.in -@@ -194,6 +194,12 @@ - #endif - - -+/* Define to warn for use of native system header directories */ -+#ifndef USED_FOR_TARGET -+#undef ENABLE_POISON_SYSTEM_DIRECTORIES -+#endif -+ -+ - /* Define if you want all operations on RTL (the basic data structure of the - optimizer and back end) to be checked for dynamic type safety at runtime. - This is quite expensive. */ -diff --git a/gcc/configure b/gcc/configure -index 5c345ce0fd7..cafd05fd150 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -953,6 +953,7 @@ with_system_zlib - enable_maintainer_mode - enable_link_mutex - enable_version_specific_runtime_libs -+enable_poison_system_directories - enable_plugin - enable_host_shared - enable_libquadmath_support -@@ -1696,6 +1697,8 @@ Optional Features: - --enable-version-specific-runtime-libs - specify that runtime libraries should be installed - in a compiler-specific directory -+ --enable-poison-system-directories -+ warn for use of native system header directories - --enable-plugin enable plugin support - --enable-host-shared build host code as shared libraries - --disable-libquadmath-support -@@ -29715,6 +29718,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then : - fi - - -+# Check whether --enable-poison-system-directories was given. -+if test "${enable_poison_system_directories+set}" = set; then : -+ enableval=$enable_poison_system_directories; -+else -+ enable_poison_system_directories=no -+fi -+ -+if test "x${enable_poison_system_directories}" = "xyes"; then -+ -+$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h -+ -+fi -+ - # Substitute configuration variables - - -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 65dbf1f2f80..dd5b38195ce 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -6341,6 +6341,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs, - [specify that runtime libraries should be - installed in a compiler-specific directory])]) - -+AC_ARG_ENABLE([poison-system-directories], -+ AS_HELP_STRING([--enable-poison-system-directories], -+ [warn for use of native system header directories]),, -+ [enable_poison_system_directories=no]) -+if test "x${enable_poison_system_directories}" = "xyes"; then -+ AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES], -+ [1], -+ [Define to warn for use of native system header directories]) -+fi -+ - # Substitute configuration variables - AC_SUBST(subdirs) - AC_SUBST(srcdir) -diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi -index 255149fcfb8..cb71b60fe3c 100644 ---- a/gcc/doc/invoke.texi -+++ b/gcc/doc/invoke.texi -@@ -303,6 +303,7 @@ Objective-C and Objective-C++ Dialects}. - -Wpacked -Wpacked-bitfield-compat -Wpacked-not-aligned -Wpadded @gol - -Wparentheses -Wno-pedantic-ms-format @gol - -Wplacement-new -Wplacement-new=@var{n} @gol -+-Wno-poison-system-directories @gol - -Wpointer-arith -Wpointer-compare -Wno-pointer-to-int-cast @gol - -Wno-pragmas -Wredundant-decls -Wrestrict -Wno-return-local-addr @gol - -Wreturn-type -Wsequence-point -Wshadow -Wno-shadow-ivar @gol -@@ -5712,6 +5713,14 @@ made up of data only and thus requires no special treatment. But, for - most targets, it is made up of code and thus requires the stack to be - made executable in order for the program to work properly. - -+@item -Wno-poison-system-directories -+@opindex Wno-poison-system-directories -+Do not warn for @option{-I} or @option{-L} options using system -+directories such as @file{/usr/include} when cross compiling. This -+option is intended for use in chroot environments when such -+directories contain the correct headers and libraries for the target -+system rather than the host. -+ - @item -Wfloat-equal - @opindex Wfloat-equal - @opindex Wno-float-equal -diff --git a/gcc/gcc.c b/gcc/gcc.c -index a716f708259..02b3cd39fc2 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -1037,6 +1037,8 @@ proper position among the other output files. */ - "%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \ - "%X %{o*} %{e*} %{N} %{n} %{r}\ - %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}} \ -+ %{Wno-poison-system-directories:--no-poison-system-directories} \ -+ %{Werror=poison-system-directories:--error-poison-system-directories} \ - %{static|no-pie|static-pie:} %{L*} %(mfwrap) %(link_libgcc) " \ - VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o " CHKP_SPEC " \ - %{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\ -diff --git a/gcc/incpath.c b/gcc/incpath.c -index b11c6a57939..e3b7a21966f 100644 ---- a/gcc/incpath.c -+++ b/gcc/incpath.c -@@ -26,6 +26,7 @@ - #include "intl.h" - #include "incpath.h" - #include "cppdefault.h" -+#include "diagnostic-core.h" - - /* Microsoft Windows does not natively support inodes. - VMS has non-numeric inodes. */ -@@ -393,6 +394,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose) - } - fprintf (stderr, _("End of search list.\n")); - } -+ -+#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES -+ if (flag_poison_system_directories) -+ { -+ struct cpp_dir *p; -+ -+ for (p = heads[INC_QUOTE]; p; p = p->next) -+ { -+ if ((!strncmp (p->name, "/usr/include", 12)) -+ || (!strncmp (p->name, "/usr/local/include", 18)) -+ || (!strncmp (p->name, "/usr/X11R6/include", 18)) -+ || (!strncmp (p->name, "/sw/include", 11)) -+ || (!strncmp (p->name, "/opt/include", 12))) -+ warning (OPT_Wpoison_system_directories, -+ "include location \"%s\" is unsafe for " -+ "cross-compilation", -+ p->name); -+ } -+ } -+#endif - } - - /* Use given -I paths for #include "..." but not #include <...>, and --- -2.17.0 - diff --git a/repo/gcc/patches/0008-s390x-muslldso.patch b/repo/gcc/patches/0008-s390x-muslldso.patch deleted file mode 100755 index 64833f30..00000000 --- a/repo/gcc/patches/0008-s390x-muslldso.patch +++ /dev/null @@ -1,26 +0,0 @@ -From b693804c8dba92fea7beee98f0aa520853a0532b Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy -Date: Thu, 22 Dec 2016 11:22:28 +0000 -Subject: [PATCH 08/12] s390x muslldso - ---- - gcc/config/s390/linux.h | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h -index 525c17c2c9f..2d4f4a0654e 100644 ---- a/gcc/config/s390/linux.h -+++ b/gcc/config/s390/linux.h -@@ -76,6 +76,9 @@ along with GCC; see the file COPYING3. If not see - #define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1" - #define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1" - -+#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-s390.so.1" -+#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-s390x.so.1" -+ - #undef LINK_SPEC - #define LINK_SPEC \ - "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ --- -2.17.1 - diff --git a/repo/gcc/patches/0010-ldbl128-config.patch b/repo/gcc/patches/0010-ldbl128-config.patch deleted file mode 100755 index b5a10105..00000000 --- a/repo/gcc/patches/0010-ldbl128-config.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 47467f3ab0fb2f2fcede81060fe8bb339d0909eb Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy -Date: Wed, 28 Feb 2018 00:54:05 +0000 -Subject: [PATCH 10/12] ldbl128 config - ---- - gcc/configure | 13 +++++++++++++ - gcc/configure.ac | 16 ++++++++++++++-- - 2 files changed, 27 insertions(+), 2 deletions(-) - -diff --git a/gcc/configure b/gcc/configure -index 6121e163259..07ff8597d48 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -29309,6 +29309,15 @@ if test "${with_long_double_128+set}" = set; then : - withval=$with_long_double_128; gcc_cv_target_ldbl128="$with_long_double_128" - else - -+ case "$target" in -+ s390*-*-linux-musl*) -+ gcc_cv_target_ldbl128=yes -+ ;; -+ powerpc*-*-linux-musl*) -+ gcc_cv_target_ldbl128=no -+ ;; -+ *) -+ - if test $glibc_version_major -gt 2 \ - || ( test $glibc_version_major -eq 2 && test $glibc_version_minor -ge 4 ); then : - gcc_cv_target_ldbl128=yes -@@ -29320,6 +29329,10 @@ else - && gcc_cv_target_ldbl128=yes - - fi -+ -+ ;; -+ esac -+ - fi - - ;; -diff --git a/gcc/configure.ac b/gcc/configure.ac -index b066cc609e1..6c15ed898c0 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -5971,13 +5971,25 @@ case "$target" in - AC_ARG_WITH(long-double-128, - [AS_HELP_STRING([--with-long-double-128], - [use 128-bit long double by default])], -- gcc_cv_target_ldbl128="$with_long_double_128", -+ gcc_cv_target_ldbl128="$with_long_double_128", [ -+ case "$target" in -+ s390*-*-linux-musl*) -+ gcc_cv_target_ldbl128=yes -+ ;; -+ powerpc*-*-linux-musl*) -+ gcc_cv_target_ldbl128=no -+ ;; -+ *)] - [GCC_GLIBC_VERSION_GTE_IFELSE([2], [4], [gcc_cv_target_ldbl128=yes], [ - [gcc_cv_target_ldbl128=no - grep '^[ ]*#[ ]*define[ ][ ]*__LONG_DOUBLE_MATH_OPTIONAL' \ - $target_header_dir/bits/wordsize.h > /dev/null 2>&1 \ - && gcc_cv_target_ldbl128=yes -- ]])]) -+ ]])] -+ [ -+ ;; -+ esac -+ ]) - ;; - esac - if test x$gcc_cv_target_ldbl128 = xyes; then --- -2.17.1 - diff --git a/repo/gcc/patches/0012-static-pie.patch b/repo/gcc/patches/0012-static-pie.patch deleted file mode 100755 index 03a4f68f..00000000 --- a/repo/gcc/patches/0012-static-pie.patch +++ /dev/null @@ -1,138 +0,0 @@ -From a4aa319f7c19e564dced3daeb7222c9315af936c Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy -Date: Sat, 18 Aug 2018 23:58:45 +0000 -Subject: [PATCH 12/12] static-pie - -in gcc-8 -static means static non-pie, even if -pie or -static-pie -are specified, -static-pie can be used to build static pie. - -in musl toolchains -static -pie always meant static pie, so this -patch fixes the link specs accordingly, the new -static-pie is just -an alias to -static -pie. ---- - gcc/common.opt | 4 ++-- - gcc/config/gnu-user.h | 12 +++++------- - gcc/config/rs6000/sysv4.h | 11 +++++------ - gcc/gcc.c | 6 +++--- - 4 files changed, 15 insertions(+), 18 deletions(-) - -diff --git a/gcc/common.opt b/gcc/common.opt -index b52ef0b38c8..0ce5857e01d 100644 ---- a/gcc/common.opt -+++ b/gcc/common.opt -@@ -3197,11 +3197,11 @@ Driver - - no-pie - Driver RejectNegative Negative(shared) --Don't create a dynamically linked position independent executable. -+Don't create a position independent executable. - - pie - Driver RejectNegative Negative(no-pie) --Create a dynamically linked position independent executable. -+Create a position independent executable. - - static-pie - Driver RejectNegative Negative(pie) -diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h -index 8620de3e42d..235328a2642 100644 ---- a/gcc/config/gnu-user.h -+++ b/gcc/config/gnu-user.h -@@ -52,13 +52,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - #define GNU_USER_TARGET_STARTFILE_SPEC \ - "%{shared:; \ - pg|p|profile:%{static-pie:grcrt1.o%s;:gcrt1.o%s}; \ -- static:crt1.o%s; \ -- static-pie:rcrt1.o%s; \ -+ static|static-pie:%{" PIE_SPEC ":rcrt1.o%s;:crt1.o%s}; \ - " PIE_SPEC ":Scrt1.o%s; \ - :crt1.o%s} \ - crti.o%s \ -- %{static:crtbeginT.o%s; \ -- shared|static-pie|" PIE_SPEC ":crtbeginS.o%s; \ -+ %{shared|" PIE_SPEC ":crtbeginS.o%s; \ -+ static:crtbeginT.o%s; \ - :crtbegin.o%s} \ - %{fvtable-verify=none:%s; \ - fvtable-verify=preinit:vtv_start_preinit.o%s; \ -@@ -92,8 +91,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - "%{fvtable-verify=none:%s; \ - fvtable-verify=preinit:vtv_end_preinit.o%s; \ - fvtable-verify=std:vtv_end.o%s} \ -- %{static:crtend.o%s; \ -- shared|static-pie|" PIE_SPEC ":crtendS.o%s; \ -+ %{shared|" PIE_SPEC ":crtendS.o%s; \ - :crtend.o%s} \ - crtn.o%s \ - " CRTOFFLOADEND -@@ -133,7 +131,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - #define LIB_SPEC GNU_USER_TARGET_LIB_SPEC - - #if defined(HAVE_LD_EH_FRAME_HDR) --#define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} " -+#define LINK_EH_SPEC "%{!static|" PIE_SPEC ":--eh-frame-hdr} " - #endif - - #undef LINK_GCC_C_SEQUENCE_SPEC -diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h -index bb19d0dcd41..bb2a2324eb0 100644 ---- a/gcc/config/rs6000/sysv4.h -+++ b/gcc/config/rs6000/sysv4.h -@@ -763,12 +763,12 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN) - #define STARTFILE_LINUX_SPEC \ - "%{shared:; \ - pg|p|profile:gcrt1.o%s; \ -- static:crt1.o%s; \ -- static-pie|" PIE_SPEC ":Scrt1.o%s; \ -+ static|static-pie:%{" PIE_SPEC ":rcrt1.o%s;:crt1.o%s}; \ -+ " PIE_SPEC ":Scrt1.o%s; \ - :crt1.o%s} \ - %{mnewlib:ecrti.o%s;:crti.o%s} \ -- %{static:crtbeginT.o%s; \ -- shared|static-pie|" PIE_SPEC ":crtbeginS.o%s; \ -+ %{shared|" PIE_SPEC ":crtbeginS.o%s; \ -+ static:crtbeginT.o%s; \ - :crtbegin.o%s} \ - %{fvtable-verify=none:%s; \ - fvtable-verify=preinit:vtv_start_preinit.o%s; \ -@@ -781,8 +781,7 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN) - "%{fvtable-verify=none:%s; \ - fvtable-verify=preinit:vtv_end_preinit.o%s; \ - fvtable-verify=std:vtv_end.o%s} \ -- %{static:crtend.o%s; \ -- shared|static-pie|" PIE_SPEC ":crtendS.o%s; \ -+ %{shared|" PIE_SPEC ":crtendS.o%s; \ - :crtend.o%s} \ - %{mnewlib:ecrtn.o%s;:crtn.o%s} \ - " CRTOFFLOADEND -diff --git a/gcc/gcc.c b/gcc/gcc.c -index eb1610ba8b0..87560afb03c 100644 ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -900,7 +900,7 @@ proper position among the other output files. */ - #define NO_FPIE_AND_FPIC_SPEC NO_FPIE_SPEC "|" NO_FPIC_SPEC - #define FPIE_OR_FPIC_SPEC NO_FPIE_AND_FPIC_SPEC ":;" - #else --#define PIE_SPEC "pie" -+#define PIE_SPEC "pie|static-pie" - #define FPIE1_SPEC "fpie" - #define NO_FPIE1_SPEC FPIE1_SPEC ":;" - #define FPIE2_SPEC "fPIE" -@@ -924,12 +924,12 @@ proper position among the other output files. */ - #ifndef LINK_PIE_SPEC - #ifdef HAVE_LD_PIE - #ifndef LD_PIE_SPEC --#define LD_PIE_SPEC "-pie" -+#define LD_PIE_SPEC "-pie %{static|static-pie:--no-dynamic-linker -z text -Bsymbolic}" - #endif - #else - #define LD_PIE_SPEC "" - #endif --#define LINK_PIE_SPEC "%{static|shared|r:;" PIE_SPEC ":" LD_PIE_SPEC "} " -+#define LINK_PIE_SPEC "%{shared|r:;" PIE_SPEC ":" LD_PIE_SPEC "} " - #endif - - #ifndef LINK_BUILDID_SPEC --- -2.17.1 - diff --git a/repo/gcc/patches/0016-invalid_tls_model.patch b/repo/gcc/patches/0016-invalid_tls_model.patch deleted file mode 100755 index 93dd7ddc..00000000 --- a/repo/gcc/patches/0016-invalid_tls_model.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- ./libgomp/configure.tgt.orig 2018-09-25 13:44:16.654561098 -0400 -+++ ./libgomp/configure.tgt 2018-09-25 13:44:50.452688100 -0400 -@@ -10,23 +10,6 @@ - # XCFLAGS Add extra compile flags to use. - # XLDFLAGS Add extra link flags to use. - --# Optimize TLS usage by avoiding the overhead of dynamic allocation. --if test $gcc_cv_have_tls = yes ; then -- case "${target}" in -- -- *-*-k*bsd*-gnu*) -- ;; -- -- *-*-linux* | *-*-gnu*) -- XCFLAGS="${XCFLAGS} -ftls-model=initial-exec" -- ;; -- -- *-*-rtems*) -- XCFLAGS="${XCFLAGS} -ftls-model=local-exec" -- ;; -- esac --fi -- - # Since we require POSIX threads, assume a POSIX system by default. - config_path="posix" diff --git a/repo/gcc/patches/005_all_default-as-needed.patch b/repo/gcc/patches/005_all_default-as-needed.patch deleted file mode 100755 index 00852197..00000000 --- a/repo/gcc/patches/005_all_default-as-needed.patch +++ /dev/null @@ -1,244 +0,0 @@ -# DP: On linux targets pass --as-needed by default to the linker, but always -# DP: link the sanitizer libraries with --no-as-needed. - -Index: b/gcc/gcc.c -=================================================================== ---- a/gcc/gcc.c -+++ b/gcc/gcc.c -@@ -692,8 +692,11 @@ proper position among the other output f - #ifdef LIBASAN_EARLY_SPEC - #define LIBASAN_SPEC STATIC_LIBASAN_LIBS - #elif defined(HAVE_LD_STATIC_DYNAMIC) --#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION \ -- "} -lasan %{static-libasan:" LD_DYNAMIC_OPTION "}" \ -+#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION "}" \ -+ " %{!static-libasan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ -+ " -lasan " \ -+ " %{static-libasan:" LD_DYNAMIC_OPTION "}" \ -+ " %{!static-libasan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ - STATIC_LIBASAN_LIBS - #else - #define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS -@@ -710,8 +713,11 @@ proper position among the other output f - #ifdef LIBTSAN_EARLY_SPEC - #define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS - #elif defined(HAVE_LD_STATIC_DYNAMIC) --#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION \ -- "} -ltsan %{static-libtsan:" LD_DYNAMIC_OPTION "}" \ -+#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION "}" \ -+ " %{!static-libtsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ -+ " -ltsan " \ -+ " %{static-libtsan:" LD_DYNAMIC_OPTION "}" \ -+ " %{!static-libtsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ - STATIC_LIBTSAN_LIBS - #else - #define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS -@@ -728,8 +734,11 @@ proper position among the other output f - #ifdef LIBLSAN_EARLY_SPEC - #define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS - #elif defined(HAVE_LD_STATIC_DYNAMIC) --#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION \ -- "} -llsan %{static-liblsan:" LD_DYNAMIC_OPTION "}" \ -+#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION "}" \ -+ " %{!static-liblsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ -+ " -llsan " \ -+ " %{static-liblsan:" LD_DYNAMIC_OPTION "}" \ -+ " %{!static-liblsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ - STATIC_LIBLSAN_LIBS - #else - #define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS -@@ -744,8 +753,11 @@ proper position among the other output f - #define STATIC_LIBUBSAN_LIBS \ - " %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}" - #ifdef HAVE_LD_STATIC_DYNAMIC --#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION \ -- "} -lubsan %{static-libubsan:" LD_DYNAMIC_OPTION "}" \ -+#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION "}" \ -+ " %{!static-libubsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ -+ " -lubsan " \ -+ " %{static-libubsan:" LD_DYNAMIC_OPTION "}" \ -+ " %{!static-libubsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ - STATIC_LIBUBSAN_LIBS - #else - #define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS -Index: b/gcc/config/gnu-user.h -=================================================================== ---- a/gcc/config/gnu-user.h -+++ b/gcc/config/gnu-user.h -@@ -161,15 +161,15 @@ see the files COPYING3 and COPYING.RUNTI - #define LIBASAN_EARLY_SPEC "%{!shared:libasan_preinit%O%s} " \ - "%{static-libasan:%{!shared:" \ - LD_STATIC_OPTION " --whole-archive -lasan --no-whole-archive " \ -- LD_DYNAMIC_OPTION "}}%{!static-libasan:-lasan}" -+ LD_DYNAMIC_OPTION "}}%{!static-libasan:%{!fuse-ld=gold:--push-state} --no-as-needed -lasan %{fuse-ld=gold:--as-needed;:--pop-state}}" - #undef LIBTSAN_EARLY_SPEC - #define LIBTSAN_EARLY_SPEC "%{!shared:libtsan_preinit%O%s} " \ - "%{static-libtsan:%{!shared:" \ - LD_STATIC_OPTION " --whole-archive -ltsan --no-whole-archive " \ -- LD_DYNAMIC_OPTION "}}%{!static-libtsan:-ltsan}" -+ LD_DYNAMIC_OPTION "}}%{!static-libtsan:%{!fuse-ld=gold:--push-state} --no-as-needed -ltsan %{fuse-ld=gold:--as-needed;:--pop-state}}" - #undef LIBLSAN_EARLY_SPEC - #define LIBLSAN_EARLY_SPEC "%{!shared:liblsan_preinit%O%s} " \ - "%{static-liblsan:%{!shared:" \ - LD_STATIC_OPTION " --whole-archive -llsan --no-whole-archive " \ -- LD_DYNAMIC_OPTION "}}%{!static-liblsan:-llsan}" -+ LD_DYNAMIC_OPTION "}}%{!static-liblsan:%{!fuse-ld=gold:--push-state} --no-as-needed -llsan %{fuse-ld=gold:--as-needed;:--pop-state}}" - #endif -Index: b/gcc/config/aarch64/aarch64-linux.h -=================================================================== ---- a/gcc/config/aarch64/aarch64-linux.h -+++ b/gcc/config/aarch64/aarch64-linux.h -@@ -35,6 +35,7 @@ - #define CPP_SPEC "%{pthread:-D_REENTRANT}" - - #define LINUX_TARGET_LINK_SPEC "%{h*} \ -+ --as-needed \ - %{static:-Bstatic} \ - %{shared:-shared} \ - %{symbolic:-Bsymbolic} \ -Index: b/gcc/config/ia64/linux.h -=================================================================== ---- a/gcc/config/ia64/linux.h -+++ b/gcc/config/ia64/linux.h -@@ -58,7 +58,7 @@ do { \ - #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2" - - #undef LINK_SPEC --#define LINK_SPEC "\ -+#define LINK_SPEC " --as-needed \ - %{shared:-shared} \ - %{!shared: \ - %{!static: \ -Index: b/gcc/config/sparc/linux.h -=================================================================== ---- a/gcc/config/sparc/linux.h -+++ b/gcc/config/sparc/linux.h -@@ -86,7 +86,7 @@ extern const char *host_detect_local_cpu - #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" - - #undef LINK_SPEC --#define LINK_SPEC "-m elf32_sparc %{shared:-shared} \ -+#define LINK_SPEC "-m elf32_sparc --as-needed %{shared:-shared} \ - %{!mno-relax:%{!r:-relax}} \ - %{!shared: \ - %{!static: \ -Index: b/gcc/config/s390/linux.h -=================================================================== ---- a/gcc/config/s390/linux.h -+++ b/gcc/config/s390/linux.h -@@ -78,7 +78,7 @@ along with GCC; see the file COPYING3. - - #undef LINK_SPEC - #define LINK_SPEC \ -- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ -+ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --as-needed \ - %{shared:-shared} \ - %{!shared: \ - %{static:-static} \ -Index: b/gcc/config/rs6000/linux64.h -=================================================================== ---- a/gcc/config/rs6000/linux64.h -+++ b/gcc/config/rs6000/linux64.h -@@ -490,13 +490,13 @@ extern int dot_symbols; - " -m elf64ppc") - #endif - --#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \ -+#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " --as-needed %{!shared: %{!static: \ - %{!static-pie: \ - %{rdynamic:-export-dynamic} \ - -dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}}} \ - %(link_os_extra_spec32)" - --#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " %{!shared: %{!static: \ -+#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " --as-needed %{!shared: %{!static: \ - %{!static-pie: \ - %{rdynamic:-export-dynamic} \ - -dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}}} \ -Index: b/gcc/config/rs6000/sysv4.h -=================================================================== ---- a/gcc/config/rs6000/sysv4.h -+++ b/gcc/config/rs6000/sysv4.h -@@ -811,7 +811,7 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEF - CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \ - MUSL_DYNAMIC_LINKER) - --#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \ -+#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --as-needed %{!shared: %{!static: \ - %{rdynamic:-export-dynamic} \ - -dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}" - -Index: b/gcc/config/i386/gnu-user64.h -=================================================================== ---- a/gcc/config/i386/gnu-user64.h -+++ b/gcc/config/i386/gnu-user64.h -@@ -56,6 +56,7 @@ - "%{" SPEC_64 ":-m " GNU_USER_LINK_EMULATION64 "} \ - %{" SPEC_32 ":-m " GNU_USER_LINK_EMULATION32 "} \ - %{" SPEC_X32 ":-m " GNU_USER_LINK_EMULATIONX32 "} \ -+ --as-needed \ - %{shared:-shared} \ - %{!shared: \ - %{!static: \ -Index: b/gcc/config/i386/gnu-user.h -=================================================================== ---- a/gcc/config/i386/gnu-user.h -+++ b/gcc/config/i386/gnu-user.h -@@ -74,7 +74,7 @@ along with GCC; see the file COPYING3. - { "link_emulation", GNU_USER_LINK_EMULATION },\ - { "dynamic_linker", GNU_USER_DYNAMIC_LINKER } - --#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) %{shared:-shared} \ -+#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) --as-needed %{shared:-shared} \ - %{!shared: \ - %{!static: \ - %{!static-pie: \ -Index: b/gcc/config/alpha/linux-elf.h -=================================================================== ---- a/gcc/config/alpha/linux-elf.h -+++ b/gcc/config/alpha/linux-elf.h -@@ -37,7 +37,7 @@ along with GCC; see the file COPYING3. - - #define ELF_DYNAMIC_LINKER GNU_USER_DYNAMIC_LINKER - --#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ -+#define LINK_SPEC "-m elf64alpha --as-needed %{G*} %{relax:-relax} \ - %{O*:-O3} %{!O*:-O1} \ - %{shared:-shared} \ - %{!shared: \ -Index: b/gcc/config/arm/linux-elf.h -=================================================================== ---- a/gcc/config/arm/linux-elf.h -+++ b/gcc/config/arm/linux-elf.h -@@ -70,6 +70,7 @@ - %{rdynamic:-export-dynamic} \ - %{!shared:-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} \ - -X \ -+ --as-needed \ - %{mbig-endian:-EB} %{mlittle-endian:-EL}" \ - SUBTARGET_EXTRA_LINK_SPEC - -Index: b/gcc/config/mips/gnu-user.h -=================================================================== ---- a/gcc/config/mips/gnu-user.h -+++ b/gcc/config/mips/gnu-user.h -@@ -55,6 +55,7 @@ along with GCC; see the file COPYING3. - #undef GNU_USER_TARGET_LINK_SPEC - #define GNU_USER_TARGET_LINK_SPEC "\ - %{G*} %{EB} %{EL} %{mips*} %{shared} \ -+ -as-needed \ - %{!shared: \ - %{!static: \ - %{rdynamic:-export-dynamic} \ -Index: b/gcc/config/riscv/linux.h -=================================================================== ---- a/gcc/config/riscv/linux.h -+++ b/gcc/config/riscv/linux.h -@@ -50,6 +50,7 @@ - #define CPP_SPEC "%{pthread:-D_REENTRANT}" - - #define LINK_SPEC "\ -+-as-needed \ - -melf" XLEN_SPEC "lriscv \ - %{mno-relax:--no-relax} \ - %{shared} \ diff --git a/repo/gcc/patches/020_all_msgfmt-libstdc++-link.patch b/repo/gcc/patches/020_all_msgfmt-libstdc++-link.patch deleted file mode 100755 index a70ea50a..00000000 --- a/repo/gcc/patches/020_all_msgfmt-libstdc++-link.patch +++ /dev/null @@ -1,39 +0,0 @@ -Ensure that msgfmt doesn't encounter problems during gcc bootstrapping. - -Solves error messages like the following: - -msgfmt: /var/tmp/portage/sys-devel/gcc-4.1.2/work/build/./gcc/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/libstdc++.so.6) - -The libgcc_s.so used during build doesn't satisfy the needs of the -libstdc++.so that msgfmt is linked against. On the other hand, msgfmt -is used as a stand-alone application here, and what library it uses -behind the scenes is of no concern to the gcc build process. -Therefore, simply invoking it "as usual", i.e. without any special -library path, will make it work as expected here. - -2011-09-19 Martin von Gagern - -References: -https://bugs.gentoo.org/372377 -https://bugs.gentoo.org/295480 - ---- gcc-4.1.2.orig/libstdc++-v3/po/Makefile.am -+++ gcc-4.1.2/libstdc++-v3/po/Makefile.am -@@ -39,6 +39,7 @@ MSGFMT = msgfmt - EXTRA_DIST = string_literals.cc POTFILES.in $(PACKAGE).pot $(LOCALE_IN) - - .po.mo: -+ env --unset=LD_LIBRARY_PATH \ - $(MSGFMT) -o $@ $< - - all-local: all-local-$(USE_NLS) ---- gcc-4.1.2.orig/libstdc++-v3/po/Makefile.in -+++ gcc-4.1.2/libstdc++-v3/po/Makefile.in -@@ -419,6 +419,7 @@ uninstall-am: uninstall-info-am - - - .po.mo: -+ env --unset=LD_LIBRARY_PATH \ - $(MSGFMT) -o $@ $< - - all-local: all-local-$(USE_NLS) diff --git a/repo/gcc/patches/050_all_libiberty-asprintf.patch b/repo/gcc/patches/050_all_libiberty-asprintf.patch deleted file mode 100755 index bee0c4c2..00000000 --- a/repo/gcc/patches/050_all_libiberty-asprintf.patch +++ /dev/null @@ -1,18 +0,0 @@ -2008-07-25 Magnus Granberg - - * include/libiberty.h (asprintf): Don't declare if defined as a macro - ---- a/include/libiberty.h -+++ b/include/libiberty.h -@@ -609,8 +609,11 @@ extern int pwait (int, int *, int); - /* Like sprintf but provides a pointer to malloc'd storage, which must - be freed by the caller. */ - -+/* asprintf may be declared as a macro by glibc with __USE_FORTIFY_LEVEL. */ -+#ifndef asprintf - extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2; - #endif -+#endif - - #if !HAVE_DECL_VASPRINTF - /* Like vsprintf but provides a pointer to malloc'd storage, which diff --git a/repo/gcc/patches/051_all_libiberty-pic.patch b/repo/gcc/patches/051_all_libiberty-pic.patch deleted file mode 100755 index b6160a73..00000000 --- a/repo/gcc/patches/051_all_libiberty-pic.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/libiberty/Makefile.in -+++ b/libiberty/Makefile.in -@@ -246,6 +246,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/repo/gcc/patches/203-libgcc_s.patch b/repo/gcc/patches/203-libgcc_s.patch deleted file mode 100755 index f8cab7d1..00000000 --- a/repo/gcc/patches/203-libgcc_s.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 9e3eab51e518018d9d99b3123598b1e2322a6af3 Mon Sep 17 00:00:00 2001 -From: Szabolcs Nagy -Date: Sat, 24 Oct 2015 20:09:53 +0000 -Subject: [PATCH 3/6] libgcc_s - ---- - gcc/config/i386/i386.c | 4 ++-- - libgcc/config/i386/cpuinfo.c | 6 +++--- - libgcc/config/i386/t-linux | 2 +- - 3 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c -index 3d044e8..82523e1 100644 ---- a/gcc/config/i386/i386.c -+++ b/gcc/config/i386/i386.c -@@ -40269,10 +40269,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget, - { - case IX86_BUILTIN_CPU_INIT: - { -- /* Make it call __cpu_indicator_init in libgcc. */ -+ /* Make it call __cpu_indicator_init_local in libgcc.a. */ - tree call_expr, fndecl, type; - type = build_function_type_list (integer_type_node, NULL_TREE); -- fndecl = build_fn_decl ("__cpu_indicator_init", type); -+ fndecl = build_fn_decl ("__cpu_indicator_init_local", type); - call_expr = build_call_expr (fndecl, 0); - return expand_expr (call_expr, target, mode, EXPAND_NORMAL); - } -diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c -index 8c2248d..6c82f15 100644 ---- a/libgcc/config/i386/cpuinfo.c -+++ b/libgcc/config/i386/cpuinfo.c -@@ -485,7 +485,7 @@ __cpu_indicator_init (void) - return 0; - } - --#if defined SHARED && defined USE_ELF_SYMVER --__asm__ (".symver __cpu_indicator_init, __cpu_indicator_init@GCC_4.8.0"); --__asm__ (".symver __cpu_model, __cpu_model@GCC_4.8.0"); -+#ifndef SHARED -+int __cpu_indicator_init_local (void) -+ __attribute__ ((weak, alias ("__cpu_indicator_init"))); - #endif -diff --git a/libgcc/config/i386/t-linux b/libgcc/config/i386/t-linux -index 11bb46e..4f47f7b 100644 ---- a/libgcc/config/i386/t-linux -+++ b/libgcc/config/i386/t-linux -@@ -3,5 +3,5 @@ - # t-slibgcc-elf-ver and t-linux - SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/i386/libgcc-glibc.ver - --HOST_LIBGCC2_CFLAGS += -mlong-double-80 -DUSE_ELF_SYMVER $(CET_FLAGS) -+HOST_LIBGCC2_CFLAGS += -mlong-double-80 $(CET_FLAGS) - CRTSTUFF_T_CFLAGS += $(CET_FLAGS) --- -2.8.1 - diff --git a/repo/gcc/patches/320-libffi-gnulinux.patch b/repo/gcc/patches/320-libffi-gnulinux.patch deleted file mode 100755 index b3b4fc93..00000000 --- a/repo/gcc/patches/320-libffi-gnulinux.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/libffi/closures.c.orig b/libffi/closures.c -index 721ff00..22a699c 100644 ---- a/libffi/src/closures.c.orig -+++ b/libffi/src/closures.c -@@ -34,7 +34,7 @@ - #include - - #if !FFI_MMAP_EXEC_WRIT && !FFI_EXEC_TRAMPOLINE_TABLE --# if __gnu_linux__ && !defined(__ANDROID__) -+# if __linux__ && !defined(__ANDROID__) - /* This macro indicates it may be forbidden to map anonymous memory - with both write and execute permission. Code compiled when this - option is defined will attempt to map such pages once, but if it diff --git a/repo/gcc/patches/libgcc-always-build-gcceh.a.patch b/repo/gcc/patches/libgcc-always-build-gcceh.a.patch deleted file mode 100755 index 74ae8973..00000000 --- a/repo/gcc/patches/libgcc-always-build-gcceh.a.patch +++ /dev/null @@ -1,39 +0,0 @@ -Highly inspired by: - http://landley.net/hg/aboriginal/file/7e0747a665ab/sources/patches/gcc-core-libgcceh.patch - -diff -durN gcc-4.6.0.orig/libgcc/Makefile.in gcc-4.6.0/libgcc/Makefile.in ---- gcc-4.6.0.orig/libgcc/Makefile.in 2011-01-26 05:19:58.000000000 +0100 -+++ gcc-4.6.0/libgcc/Makefile.in 2011-09-12 18:17:12.743718974 +0200 -@@ -772,8 +772,9 @@ - libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT) - endif - -+all: libgcc_eh.a - ifeq ($(enable_shared),yes) --all: libgcc_eh.a libgcc_s$(SHLIB_EXT) -+all: libgcc_s$(SHLIB_EXT) - ifneq ($(LIBUNWIND),) - all: libunwind$(SHLIB_EXT) - endif -@@ -950,10 +951,6 @@ - install-shared: - $(mkinstalldirs) $(DESTDIR)$(inst_libdir) - -- $(INSTALL_DATA) libgcc_eh.a $(DESTDIR)$(inst_libdir)/ -- chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a -- $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a -- - $(subst @multilib_dir@,$(MULTIDIR),$(subst \ - @shlib_base_name@,libgcc_s,$(subst \ - @shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL)))) -@@ -968,6 +965,10 @@ - chmod 644 $(DESTDIR)$(inst_libdir)/libgcov.a - $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcov.a - -+ $(INSTALL_DATA) libgcc_eh.a $(DESTDIR)$(inst_libdir)/ -+ chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a -+ $(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a -+ - parts="$(INSTALL_PARTS)"; \ - for file in $$parts; do \ - rm -f $(DESTDIR)$(inst_libdir)/$$file; \ diff --git a/repo/gcc/patches/libgnarl-musl.patch b/repo/gcc/patches/libgnarl-musl.patch deleted file mode 100755 index 7e35cda6..00000000 --- a/repo/gcc/patches/libgnarl-musl.patch +++ /dev/null @@ -1,120 +0,0 @@ -diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads ---- gcc-8.2.0/gcc/ada/libgnarl/s-osinte__linux.ads 2018-01-11 00:55:25.000000000 -0800 -+++ gcc-8.2.0-new/gcc/ada/libgnarl/s-osinte__linux.ads 2018-11-01 16:16:23.372452951 -0700 -@@ -394,12 +394,6 @@ package System.OS_Interface is - PTHREAD_RWLOCK_PREFER_WRITER_NP : constant := 1; - PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP : constant := 2; - -- function pthread_rwlockattr_setkind_np -- (attr : access pthread_rwlockattr_t; -- pref : int) return int; -- pragma Import -- (C, pthread_rwlockattr_setkind_np, "pthread_rwlockattr_setkind_np"); -- - function pthread_rwlock_init - (mutex : access pthread_rwlock_t; - attr : access pthread_rwlockattr_t) return int; -@@ -464,11 +458,6 @@ package System.OS_Interface is - protocol : int) return int; - pragma Import (C, pthread_mutexattr_setprotocol); - -- function pthread_mutexattr_setprioceiling -- (attr : access pthread_mutexattr_t; -- prioceiling : int) return int; -- pragma Import (C, pthread_mutexattr_setprioceiling); -- - type struct_sched_param is record - sched_priority : int; -- scheduling priority - end record; -diff -rup gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb ---- gcc-8.2.0/gcc/ada/libgnarl/s-taprop__linux.adb 2018-01-11 00:55:25.000000000 -0800 -+++ gcc-8.2.0-new/gcc/ada/libgnarl/s-taprop__linux.adb 2018-11-13 11:28:36.433964449 -0800 -@@ -202,9 +202,6 @@ package body System.Task_Primitives.Oper - pragma Import - (C, GNAT_pthread_condattr_setup, "__gnat_pthread_condattr_setup"); - -- function GNAT_has_cap_sys_nice return C.int; -- pragma Import -- (C, GNAT_has_cap_sys_nice, "__gnat_has_cap_sys_nice"); - -- We do not have pragma Linker_Options ("-lcap"); here, because this - -- library is not present on many Linux systems. 'libcap' is the Linux - -- "capabilities" library, called by __gnat_has_cap_sys_nice. -@@ -214,38 +211,6 @@ package body System.Task_Primitives.Oper - -- Convert Ada priority to Linux priority. Priorities are 1 .. 99 on - -- GNU/Linux, so we map 0 .. 98 to 1 .. 99. - -- function Get_Ceiling_Support return Boolean; -- -- Get the value of the Ceiling_Support constant (see below). -- -- Note well: If this function or related code is modified, it should be -- -- tested by hand, because automated testing doesn't exercise it. -- -- ------------------------- -- -- Get_Ceiling_Support -- -- ------------------------- -- -- function Get_Ceiling_Support return Boolean is -- Ceiling_Support : Boolean := False; -- begin -- if Locking_Policy /= 'C' then -- return False; -- end if; -- -- declare -- function geteuid return Integer; -- pragma Import (C, geteuid, "geteuid"); -- Superuser : constant Boolean := geteuid = 0; -- Has_Cap : constant C.int := GNAT_has_cap_sys_nice; -- pragma Assert (Has_Cap in 0 | 1); -- begin -- Ceiling_Support := Superuser or else Has_Cap = 1; -- end; -- -- return Ceiling_Support; -- end Get_Ceiling_Support; -- -- pragma Warnings (Off, "non-static call not allowed in preelaborated unit"); -- Ceiling_Support : constant Boolean := Get_Ceiling_Support; -- pragma Warnings (On, "non-static call not allowed in preelaborated unit"); - -- True if the locking policy is Ceiling_Locking, and the current process - -- has permission to use this policy. The process has permission if it is - -- running as 'root', or if the capability was set by the setcap command, -@@ -348,7 +313,9 @@ package body System.Task_Primitives.Oper - -- Init_Mutex -- - ---------------- - -+ pragma Warnings (Off, "formal parameter * is not referenced"); - function Init_Mutex (L : RTS_Lock_Ptr; Prio : Any_Priority) return C.int is -+ pragma Warnings (On, "formal parameter * is not referenced"); - Mutex_Attr : aliased pthread_mutexattr_t; - Result, Result_2 : C.int; - -@@ -360,16 +327,7 @@ package body System.Task_Primitives.Oper - return Result; - end if; - -- if Ceiling_Support then -- Result := pthread_mutexattr_setprotocol -- (Mutex_Attr'Access, PTHREAD_PRIO_PROTECT); -- pragma Assert (Result = 0); -- -- Result := pthread_mutexattr_setprioceiling -- (Mutex_Attr'Access, Prio_To_Linux_Prio (Prio)); -- pragma Assert (Result = 0); -- -- elsif Locking_Policy = 'I' then -+ if Locking_Policy = 'I' then - Result := pthread_mutexattr_setprotocol - (Mutex_Attr'Access, PTHREAD_PRIO_INHERIT); - pragma Assert (Result = 0); -@@ -409,11 +367,6 @@ package body System.Task_Primitives.Oper - Result := pthread_rwlockattr_init (RWlock_Attr'Access); - pragma Assert (Result = 0); - -- Result := pthread_rwlockattr_setkind_np -- (RWlock_Attr'Access, -- PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP); -- pragma Assert (Result = 0); -- - Result := pthread_rwlock_init (L.RW'Access, RWlock_Attr'Access); - - pragma Assert (Result in 0 | ENOMEM); diff --git a/repo/gcc/sources b/repo/gcc/sources index 66fdf96e..187bbb6c 100644 --- a/repo/gcc/sources +++ b/repo/gcc/sources @@ -1,15 +1 @@ https://gcc.gnu.org/pub/gcc/releases/gcc-8.3.0/gcc-8.3.0.tar.xz gcc/ -patches/0002-posix_memalign.patch gcc/ -patches/0003-gcc-poison-system-directories.patch gcc/ -patches/0008-s390x-muslldso.patch gcc/ -patches/0010-ldbl128-config.patch gcc/ -patches/0012-static-pie.patch gcc/ -patches/0016-invalid_tls_model.patch gcc/ -patches/005_all_default-as-needed.patch gcc/ -patches/020_all_msgfmt-libstdc++-link.patch gcc/ -patches/050_all_libiberty-asprintf.patch gcc/ -patches/051_all_libiberty-pic.patch gcc/ -patches/203-libgcc_s.patch gcc/ -patches/320-libffi-gnulinux.patch gcc/ -patches/libgcc-always-build-gcceh.a.patch gcc/ -patches/libgnarl-musl.patch gcc/