diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2014-04-14 15:59:47 -0700 |
---|---|---|
committer | Andrew Hsieh <andrewhsieh@google.com> | 2014-04-22 16:16:33 -0700 |
commit | c16207898bba39af7a6ec6159ceee8623dcfb951 (patch) | |
tree | aedbd5b68b2e3f6c0a22d0ff9c1237e35ee58852 /gcc-4.9/gcc/configure | |
parent | 5399988ba7d9906878c5f5b6d9390e3595a6e915 (diff) | |
download | toolchain_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/configure')
-rwxr-xr-x | gcc-4.9/gcc/configure | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/configure b/gcc-4.9/gcc/configure index 2c5df6d84..7b07b1b53 100755 --- a/gcc-4.9/gcc/configure +++ b/gcc-4.9/gcc/configure @@ -921,6 +921,7 @@ enable_initfini_array enable_comdat with_glibc_version enable_gnu_unique_object +enable_eh_frame_hdr_for_static enable_linker_build_id with_long_double_128 with_gc @@ -1638,6 +1639,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-maintainer-mode @@ -26793,6 +26797,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; } |