aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>2010-03-01 18:09:19 +0000
committerRainer Orth <ro@gcc.gnu.org>2010-03-01 18:09:19 +0000
commiteb2573eeb49113ae518ac98212eb778fe20c89ee (patch)
treee4e3dab3ea153f66b87aed538185c6ec2007d70a /gcc
parent12f9ddbc7da85ff73fc4fd4bf6a15cd30cefdef4 (diff)
downloadgcc-eb2573eeb49113ae518ac98212eb778fe20c89ee.zip
gcc-eb2573eeb49113ae518ac98212eb778fe20c89ee.tar.gz
gcc-eb2573eeb49113ae518ac98212eb778fe20c89ee.tar.bz2
configure.ac (gcc_cv_as_cfi_directive): Disable cfi directives unless GCC and gas agree on using read-only .eh_frame...
* configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]: Disable cfi directives unless GCC and gas agree on using read-only .eh_frame sections for 64-bit. * configure: Regenerate. From-SVN: r157151
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rwxr-xr-xgcc/configure18
-rw-r--r--gcc/configure.ac18
3 files changed, 41 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f243dbf..57ca4f47e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
+ Disable cfi directives unless GCC and gas agree on using read-only
+ .eh_frame sections for 64-bit.
+ * configure: Regenerate.
+
2010-03-01 Richard Guenther <rguenther@suse.de>
PR tree-optimization/43220
diff --git a/gcc/configure b/gcc/configure
index 938f5c1..0bb808a 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -21386,7 +21386,23 @@ else
sed -e /.eh_frame/!d -e N | grep READONLY > /dev/null; then
gcc_cv_as_cfi_directive=no
else
- gcc_cv_as_cfi_directive=yes
+ case "$target" in
+ i?86-*-solaris2.1[0-9]*)
+ # On Solaris/x86, make sure that GCC and gas agree on using
+ # read-only .eh_frame sections for 64-bit.
+ if $gcc_cv_as --64 -o conftest.o conftest.s > /dev/null 2>&1 && \
+ $gcc_cv_objdump -h conftest.o 2>/dev/null | \
+ sed -e /.eh_frame/!d -e N | \
+ grep READONLY > /dev/null; then
+ gcc_cv_as_cfi_directive=yes
+ else
+ gcc_cv_as_cfi_directive=no
+ fi
+ ;;
+ *)
+ gcc_cv_as_cfi_directive=yes
+ ;;
+ esac
fi
else
# no objdump, err on the side of caution
diff --git a/gcc/configure.ac b/gcc/configure.ac
index fe1ac55..ddfbc7a 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -2272,7 +2272,23 @@ gcc_GAS_CHECK_FEATURE([cfi directives], gcc_cv_as_cfi_directive,
sed -e /.eh_frame/!d -e N | grep READONLY > /dev/null; then
gcc_cv_as_cfi_directive=no
else
- gcc_cv_as_cfi_directive=yes
+ case "$target" in
+ i?86-*-solaris2.1[[0-9]]*)
+ # On Solaris/x86, make sure that GCC and gas agree on using
+ # read-only .eh_frame sections for 64-bit.
+ if $gcc_cv_as --64 -o conftest.o conftest.s > /dev/null 2>&1 && \
+ $gcc_cv_objdump -h conftest.o 2>/dev/null | \
+ sed -e /.eh_frame/!d -e N | \
+ grep READONLY > /dev/null; then
+ gcc_cv_as_cfi_directive=yes
+ else
+ gcc_cv_as_cfi_directive=no
+ fi
+ ;;
+ *)
+ gcc_cv_as_cfi_directive=yes
+ ;;
+ esac
fi
else
# no objdump, err on the side of caution