aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/config
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2014-04-14 15:59:47 -0700
committerAndrew Hsieh <andrewhsieh@google.com>2014-04-22 16:16:33 -0700
commitc16207898bba39af7a6ec6159ceee8623dcfb951 (patch)
treeaedbd5b68b2e3f6c0a22d0ff9c1237e35ee58852 /gcc-4.9/gcc/config
parent5399988ba7d9906878c5f5b6d9390e3595a6e915 (diff)
downloadtoolchain_gcc-c16207898bba39af7a6ec6159ceee8623dcfb951.tar.gz
toolchain_gcc-c16207898bba39af7a6ec6159ceee8623dcfb951.tar.bz2
toolchain_gcc-c16207898bba39af7a6ec6159ceee8623dcfb951.zip
[4.9] Always enable --eh-frame-hdr for static executable
See 5e6cdf76af295c9a39b695ca228cff675e8ff4ae and 23e3137ee2897464b051599b85a09f130d3ad05d Change-Id: Ibda473188e5a10f2a0592f2494ad00ad1f91e04b
Diffstat (limited to 'gcc-4.9/gcc/config')
-rw-r--r--gcc-4.9/gcc/config/alpha/elf.h4
-rw-r--r--gcc-4.9/gcc/config/freebsd.h4
-rw-r--r--gcc-4.9/gcc/config/gnu-user.h4
-rw-r--r--gcc-4.9/gcc/config/openbsd.h4
-rw-r--r--gcc-4.9/gcc/config/rs6000/sysv4.h6
-rw-r--r--gcc-4.9/gcc/config/sol2.h4
6 files changed, 25 insertions, 1 deletions
diff --git a/gcc-4.9/gcc/config/alpha/elf.h b/gcc-4.9/gcc/config/alpha/elf.h
index 5a6803aba..6ae4065bc 100644
--- a/gcc-4.9/gcc/config/alpha/elf.h
+++ b/gcc-4.9/gcc/config/alpha/elf.h
@@ -164,5 +164,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-4.9/gcc/config/freebsd.h b/gcc-4.9/gcc/config/freebsd.h
index c872a6da4..7c032a510 100644
--- a/gcc-4.9/gcc/config/freebsd.h
+++ b/gcc-4.9/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:-lssp_nonshared}"
diff --git a/gcc-4.9/gcc/config/gnu-user.h b/gcc-4.9/gcc/config/gnu-user.h
index a1955a7e7..2af0a54ed 100644
--- a/gcc-4.9/gcc/config/gnu-user.h
+++ b/gcc-4.9/gcc/config/gnu-user.h
@@ -94,8 +94,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-4.9/gcc/config/openbsd.h b/gcc-4.9/gcc/config/openbsd.h
index 7150d49aa..600474834 100644
--- a/gcc-4.9/gcc/config/openbsd.h
+++ b/gcc-4.9/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-4.9/gcc/config/rs6000/sysv4.h b/gcc-4.9/gcc/config/rs6000/sysv4.h
index d04e6e4a0..3fb6bd59f 100644
--- a/gcc-4.9/gcc/config/rs6000/sysv4.h
+++ b/gcc-4.9/gcc/config/rs6000/sysv4.h
@@ -778,7 +778,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-4.9/gcc/config/sol2.h b/gcc-4.9/gcc/config/sol2.h
index 2a657db59..eb8e0b91f 100644
--- a/gcc-4.9/gcc/config/sol2.h
+++ b/gcc-4.9/gcc/config/sol2.h
@@ -202,7 +202,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