diff options
author | Alexey Neyman <stilor@att.net> | 2017-08-17 20:17:50 (GMT) |
---|---|---|
committer | Alexey Neyman <stilor@att.net> | 2017-08-18 02:03:19 (GMT) |
commit | 08454a985f92e254eed7130be12d3d9e6673c64a (patch) | |
tree | b2dd3d4f9aa42a3d5a96fcfa059acc2f5fb9d308 /packages/gcc/7.1.0/972-crystax.patch | |
parent | 223a1a47ab855f34401ef68f1c6fa81e2ef74ae8 (diff) |
GCC: 7.1 -> 7.2
Signed-off-by: Alexey Neyman <stilor@att.net>
Diffstat (limited to 'packages/gcc/7.1.0/972-crystax.patch')
-rw-r--r-- | packages/gcc/7.1.0/972-crystax.patch | 302 |
1 files changed, 0 insertions, 302 deletions
diff --git a/packages/gcc/7.1.0/972-crystax.patch b/packages/gcc/7.1.0/972-crystax.patch deleted file mode 100644 index b9077be..0000000 --- a/packages/gcc/7.1.0/972-crystax.patch +++ /dev/null @@ -1,302 +0,0 @@ -commit 44a81ebb7698dac41ffa7acd5e0cc1578e5ab1fd -Author: H.J. Lu <hongjiu.lu@intel.com> -Date: Mon Apr 14 15:59:47 2014 -0700 - - [android] Always enable --eh-frame-hdr for static executable - - See 5e6cdf76af295c9a39b695ca228cff675e8ff4ae and - 23e3137ee2897464b051599b85a09f130d3ad05d - - Change-Id: Ibda473188e5a10f2a0592f2494ad00ad1f91e04b - Signed-off-by: Dmitry Moskalchuk <dm@crystax.net> - -diff --git a/gcc/config.in b/gcc/config.in -index 115cb6163..933916833 100644 ---- a/gcc/config.in -+++ b/gcc/config.in -@@ -2119,6 +2119,12 @@ - #endif - - -+/* Define if your system supports PT_GNU_EH_FRAME for static executable. */ -+#ifndef USED_FOR_TARGET -+#undef USE_EH_FRAME_HDR_FOR_STATIC -+#endif -+ -+ - /* Define to 1 if the 'long long' type is wider than 'long' but still - efficiently supported by the host hardware. */ - #ifndef USED_FOR_TARGET -diff --git a/gcc/config/alpha/elf.h b/gcc/config/alpha/elf.h -index 093c38bba..54b3e0c91 100644 ---- a/gcc/config/alpha/elf.h -+++ b/gcc/config/alpha/elf.h -@@ -168,5 +168,9 @@ extern int alpha_this_gpdisp_sequence_number; - I imagine that other systems will catch up. In the meantime, it - doesn't harm to make sure that the data exists to be used later. */ - #if defined(HAVE_LD_EH_FRAME_HDR) -+#ifdef USE_EH_FRAME_HDR_FOR_STATIC -+#define LINK_EH_SPEC "--eh-frame-hdr " -+#else - #define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " - #endif -+#endif -diff --git a/gcc/config/freebsd.h b/gcc/config/freebsd.h -index 5ded869d2..5f51ac81d 100644 ---- a/gcc/config/freebsd.h -+++ b/gcc/config/freebsd.h -@@ -45,8 +45,12 @@ along with GCC; see the file COPYING3. If not see - #define LIB_SPEC FBSD_LIB_SPEC - - #if defined(HAVE_LD_EH_FRAME_HDR) -+#ifdef USE_EH_FRAME_HDR_FOR_STATIC -+#define LINK_EH_SPEC "--eh-frame-hdr " -+#else - #define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " - #endif -+#endif - - #ifdef TARGET_LIBC_PROVIDES_SSP - #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \ -diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h -index b0bf40a95..d1874bc29 100644 ---- a/gcc/config/gnu-user.h -+++ b/gcc/config/gnu-user.h -@@ -118,8 +118,12 @@ 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) -+#ifdef USE_EH_FRAME_HDR_FOR_STATIC -+#define LINK_EH_SPEC "--eh-frame-hdr " -+#else - #define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " - #endif -+#endif - - #undef LINK_GCC_C_SEQUENCE_SPEC - #define LINK_GCC_C_SEQUENCE_SPEC \ -diff --git a/gcc/config/openbsd.h b/gcc/config/openbsd.h -index 37ecfc43f..a5f1b9955 100644 ---- a/gcc/config/openbsd.h -+++ b/gcc/config/openbsd.h -@@ -136,8 +136,12 @@ while (0) - #define LIB_SPEC OBSD_LIB_SPEC - - #if defined(HAVE_LD_EH_FRAME_HDR) -+#ifdef USE_EH_FRAME_HDR_FOR_STATIC -+#define LINK_EH_SPEC "--eh-frame-hdr " -+#else - #define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " - #endif -+#endif - - #undef LIB_SPEC - #define LIB_SPEC OBSD_LIB_SPEC -diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h -index cbf909722..eb2217fad 100644 ---- a/gcc/config/rs6000/sysv4.h -+++ b/gcc/config/rs6000/sysv4.h -@@ -789,7 +789,11 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN) - -dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}" - - #if defined(HAVE_LD_EH_FRAME_HDR) --# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " -+# ifdef USE_EH_FRAME_HDR_FOR_STATIC -+# define LINK_EH_SPEC "--eh-frame-hdr " -+# else -+# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " -+# endif - #endif - - #define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \ -diff --git a/gcc/config/sol2.h b/gcc/config/sol2.h -index 5160e1fda..7632a5081 100644 ---- a/gcc/config/sol2.h -+++ b/gcc/config/sol2.h -@@ -347,7 +347,11 @@ along with GCC; see the file COPYING3. If not see - /* Solaris 11 build 135+ implements dl_iterate_phdr. GNU ld needs - --eh-frame-hdr to create the required .eh_frame_hdr sections. */ - #if defined(HAVE_LD_EH_FRAME_HDR) && defined(TARGET_DL_ITERATE_PHDR) -+#ifdef USE_EH_FRAME_HDR_FOR_STATIC -+#define LINK_EH_SPEC "--eh-frame-hdr " -+#else - #define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " -+#endif - #endif /* HAVE_LD_EH_FRAME && TARGET_DL_ITERATE_PHDR */ - #endif - -diff --git a/gcc/configure b/gcc/configure -index 1c6e3407c..28ad05004 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -934,6 +934,7 @@ enable_fix_cortex_a53_835769 - enable_fix_cortex_a53_843419 - with_glibc_version - enable_gnu_unique_object -+enable_eh_frame_hdr_for_static - enable_linker_build_id - enable_default_ssp - with_long_double_128 -@@ -1670,6 +1671,9 @@ Optional Features: - --enable-gnu-unique-object - enable the use of the @gnu_unique_object ELF - extension on glibc systems -+ --enable-eh-frame-hdr-for-static -+ enable linker PT_GNU_EH_FRAME support for static -+ executable - --enable-linker-build-id - compiler will always pass --build-id to linker - --enable-default-ssp enable Stack Smashing Protection as default -@@ -27703,6 +27707,38 @@ if test x"$gcc_cv_ld_eh_frame_hdr" = xyes; then - - $as_echo "#define HAVE_LD_EH_FRAME_HDR 1" >>confdefs.h - -+ # Check whether --enable-eh-frame-hdr-for-static was given. -+if test "${enable_eh_frame_hdr_for_static+set}" = set; then : -+ enableval=$enable_eh_frame_hdr_for_static; case $enable_eh_frame_hdr_for_static in -+ yes | no) ;; -+ *) as_fn_error "'$enable_eh_frame_hdr_for_static' is an invalid -+value for --enable-eh-frame-hdr-for-static. -+Valid choices are 'yes' and 'no'." "$LINENO" 5 ;; -+ esac -+else -+ # Only support for glibc 2.3.0 or higher with AT_PHDR/AT_PHNUM from -+# Linux kernel. -+ if test x$host = x$build -a x$host = x$target && -+ ldd --version 2>&1 >/dev/null && -+ glibcver=`ldd --version 2>/dev/null | sed 's/.* //;q'`; then -+ glibcmajor=`expr "$glibcver" : "\([0-9]*\)"` -+ glibcminor=`expr "$glibcver" : "[2-9]*\.\([0-9]*\)"` -+ glibcnum=`expr $glibcmajor \* 1000 + $glibcminor` -+ if test "$glibcnum" -ge 2003 ; then -+ auvx=`LD_SHOW_AUXV=1 ldd 2>/dev/null` -+ if echo "$auvx" | grep AT_PHDR > /dev/null && -+ echo "$auvx" | grep AT_PHNUM > /dev/null; then -+ enable_eh_frame_hdr_for_static=yes -+ fi -+ fi -+ fi -+fi -+ -+ if test x$enable_eh_frame_hdr_for_static = xyes; then -+ -+$as_echo "#define USE_EH_FRAME_HDR_FOR_STATIC 1" >>confdefs.h -+ -+ fi - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld_eh_frame_hdr" >&5 - $as_echo "$gcc_cv_ld_eh_frame_hdr" >&6; } -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 6c1dcd9ae..0cf7419e7 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -4828,6 +4828,35 @@ GCC_TARGET_TEMPLATE([HAVE_LD_EH_FRAME_HDR]) - if test x"$gcc_cv_ld_eh_frame_hdr" = xyes; then - AC_DEFINE(HAVE_LD_EH_FRAME_HDR, 1, - [Define if your linker supports .eh_frame_hdr.]) -+ AC_ARG_ENABLE(eh-frame-hdr-for-static, -+ [AS_HELP_STRING([--enable-eh-frame-hdr-for-static], -+ [enable linker PT_GNU_EH_FRAME support for static executable])], -+ [case $enable_eh_frame_hdr_for_static in -+ yes | no) ;; -+ *) AC_MSG_ERROR(['$enable_eh_frame_hdr_for_static' is an invalid -+value for --enable-eh-frame-hdr-for-static. -+Valid choices are 'yes' and 'no'.]) ;; -+ esac], -+# Only support for glibc 2.3.0 or higher with AT_PHDR/AT_PHNUM from -+# Linux kernel. -+ [[if test x$host = x$build -a x$host = x$target && -+ ldd --version 2>&1 >/dev/null && -+ glibcver=`ldd --version 2>/dev/null | sed 's/.* //;q'`; then -+ glibcmajor=`expr "$glibcver" : "\([0-9]*\)"` -+ glibcminor=`expr "$glibcver" : "[2-9]*\.\([0-9]*\)"` -+ glibcnum=`expr $glibcmajor \* 1000 + $glibcminor` -+ if test "$glibcnum" -ge 2003 ; then -+ auvx=`LD_SHOW_AUXV=1 ldd 2>/dev/null` -+ if echo "$auvx" | grep AT_PHDR > /dev/null && -+ echo "$auvx" | grep AT_PHNUM > /dev/null; then -+ enable_eh_frame_hdr_for_static=yes -+ fi -+ fi -+ fi]]) -+ if test x$enable_eh_frame_hdr_for_static = xyes; then -+ AC_DEFINE(USE_EH_FRAME_HDR_FOR_STATIC, 1, -+[Define if your system supports PT_GNU_EH_FRAME for static executable.]) -+ fi - fi - AC_MSG_RESULT($gcc_cv_ld_eh_frame_hdr) - -diff --git a/gcc/testsuite/g++.dg/eh/spec3-static.C b/gcc/testsuite/g++.dg/eh/spec3-static.C -new file mode 100644 -index 000000000..15408effa ---- /dev/null -+++ b/gcc/testsuite/g++.dg/eh/spec3-static.C -@@ -0,0 +1,25 @@ -+// PR c++/4381 -+// Test that exception-specs work properly for classes with virtual bases. -+ -+// { dg-do run } -+// { dg-options "-static" } -+ -+class Base {}; -+ -+struct A : virtual public Base -+{ -+ A() {} -+}; -+ -+struct B {}; -+ -+void func() throw (B,A) -+{ -+ throw A(); -+} -+ -+int main(void) -+{ -+ try { func(); } -+ catch (A& a) { } -+} -diff --git a/libgcc/crtstuff.c b/libgcc/crtstuff.c -index f3343fc4f..d42647779 100644 ---- a/libgcc/crtstuff.c -+++ b/libgcc/crtstuff.c -@@ -88,7 +88,8 @@ call_ ## FUNC (void) \ - #if defined(OBJECT_FORMAT_ELF) \ - && !defined(OBJECT_FORMAT_FLAT) \ - && defined(HAVE_LD_EH_FRAME_HDR) \ -- && !defined(inhibit_libc) && !defined(CRTSTUFFT_O) \ -+ && !defined(inhibit_libc) \ -+ && (defined(USE_EH_FRAME_HDR_FOR_STATIC) || !defined(CRTSTUFFT_O)) \ - && defined(BSD_DL_ITERATE_PHDR_AVAILABLE) - #include <link.h> - # define USE_PT_GNU_EH_FRAME -@@ -97,7 +98,8 @@ call_ ## FUNC (void) \ - #if defined(OBJECT_FORMAT_ELF) \ - && !defined(OBJECT_FORMAT_FLAT) \ - && defined(HAVE_LD_EH_FRAME_HDR) && defined(TARGET_DL_ITERATE_PHDR) \ -- && !defined(inhibit_libc) && !defined(CRTSTUFFT_O) \ -+ && !defined(inhibit_libc) \ -+ && (defined(USE_EH_FRAME_HDR_FOR_STATIC) || !defined(CRTSTUFFT_O)) \ - && defined(__sun__) && defined(__svr4__) - #include <link.h> - # define USE_PT_GNU_EH_FRAME -@@ -106,7 +108,8 @@ call_ ## FUNC (void) \ - #if defined(OBJECT_FORMAT_ELF) \ - && !defined(OBJECT_FORMAT_FLAT) \ - && defined(HAVE_LD_EH_FRAME_HDR) \ -- && !defined(inhibit_libc) && !defined(CRTSTUFFT_O) \ -+ && !defined(inhibit_libc) \ -+ && (defined(USE_EH_FRAME_HDR_FOR_STATIC) || !defined(CRTSTUFFT_O)) \ - && defined(__GLIBC__) && __GLIBC__ >= 2 - #include <link.h> - /* uClibc pretends to be glibc 2.2 and DT_CONFIG is defined in its link.h. -@@ -121,7 +124,7 @@ call_ ## FUNC (void) \ - #if defined(OBJECT_FORMAT_ELF) \ - && !defined(OBJECT_FORMAT_FLAT) \ - && defined(HAVE_LD_EH_FRAME_HDR) \ -- && !defined(CRTSTUFFT_O) \ -+ && (defined(USE_EH_FRAME_HDR_FOR_STATIC) || !defined(CRTSTUFFT_O)) \ - && defined(inhibit_libc) \ - && (defined(__GLIBC__) || defined(__gnu_linux__) || defined(__GNU__)) - /* On systems using glibc, an inhibit_libc build of libgcc is only |