summaryrefslogtreecommitdiff
path: root/gcc/configure
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2001-05-15 01:45:10 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2001-05-15 01:45:10 +0000
commitc3f311c4228469099c9ec4c5545d0a7e006f9a2d (patch)
tree50bd83db98d2cce1d8acec334cafab9afd6aedf9 /gcc/configure
parent083aeb9b30efc6bccd29153267b76a8bc73a1509 (diff)
downloadgcc-c3f311c4228469099c9ec4c5545d0a7e006f9a2d.tar.gz
* configure.in (gcc_cv_as_eh_frame): New test.
* config.in, configure: Rebuild. * gcc.c (init_spec): Honor USE_AS_TRADITIONAL_FORMAT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42092 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/configure')
-rwxr-xr-xgcc/configure90
1 files changed, 82 insertions, 8 deletions
diff --git a/gcc/configure b/gcc/configure
index 8cb673478c9..84f8abd2ffb 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -2018,7 +2018,7 @@ EOF
fi
# Find some useful tools
-for ac_prog in mawk gawk nawk awk
+for ac_prog in gawk mawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -6888,10 +6888,84 @@ EOF
fi
echo "$ac_t""$gcc_cv_as_leb128" 1>&6
+echo $ac_n "checking assembler eh_frame optimization""... $ac_c" 1>&6
+echo "configure:6893: checking assembler eh_frame optimization" >&5
+gcc_cv_as_eh_frame=no
+if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
+ if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 12 -o "$gcc_cv_gas_major_version" -gt 2 && grep 'obj_format = elf' ../gas/Makefile > /dev/null; then
+ gcc_cv_as_eh_frame="yes"
+ fi
+elif test x$gcc_cv_as != x; then
+ # Check if this is GAS.
+ as_ver=`$gcc_cv_as --version 2>/dev/null | head -1`
+ if echo "$as_ver" | grep GNU > /dev/null; then
+ # Versions up to and including 2.11.0 may mis-optimize
+ # .eh_frame data. Try something.
+ cat > conftest.s <<EOF
+ .text
+.LFB1:
+ .4byte 0
+.L1:
+ .4byte 0
+.LFE1:
+ .section .eh_frame,"aw",@progbits
+__FRAME_BEGIN__:
+ .4byte .LECIE1-.LSCIE1
+.LSCIE1:
+ .4byte 0x0
+ .byte 0x1
+ .ascii "z\0"
+ .byte 0x1
+ .byte 0x78
+ .byte 0x1a
+ .byte 0x0
+ .byte 0x4
+ .4byte 1
+ .p2align 1
+.LECIE1:
+.LSFDE1:
+ .4byte .LEFDE1-.LASFDE1
+.LASFDE1:
+ .4byte .LASFDE1-__FRAME_BEGIN__
+ .4byte .LFB1
+ .4byte .LFE1-.LFB1
+ .byte 0x4
+ .4byte .LFE1-.LFB1
+ .byte 0x4
+ .4byte .L1-.LFB1
+.LEFDE1:
+EOF
+ cat > conftest.exp <<EOF
+ 0000 10000000 00000000 017a0001 781a0004 .........z..x...
+ 0010 01000000 12000000 18000000 00000000 ................
+ 0020 08000000 04080000 0044 .........D
+EOF
+ # If the assembler didn't choke, and we can objdump,
+ # and we got the correct data, then succeed.
+ if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1 \
+ && objdump -s -j .eh_frame conftest.o 2>/dev/null \
+ | tail -3 > conftest.got \
+ && cmp conftest.exp conftest.got > /dev/null 2>&1
+ then
+ gcc_cv_as_eh_frame="yes"
+ else
+ gcc_cv_as_eh_frame="bad"
+ if $gcc_cv_as -o conftest.o --traditional-format /dev/null; then
+ cat >> confdefs.h <<\EOF
+#define USE_AS_TRADITIONAL_FORMAT 1
+EOF
+
+ fi
+ fi
+ fi
+ rm -f conftest.*
+fi
+echo "$ac_t""$gcc_cv_as_eh_frame" 1>&6
+
case "$target" in
sparc*-*-*)
echo $ac_n "checking assembler .register pseudo-op support""... $ac_c" 1>&6
-echo "configure:6895: checking assembler .register pseudo-op support" >&5
+echo "configure:6969: checking assembler .register pseudo-op support" >&5
if eval "test \"`echo '$''{'gcc_cv_as_register_pseudo_op'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6919,7 +6993,7 @@ EOF
fi
echo $ac_n "checking assembler supports -relax""... $ac_c" 1>&6
-echo "configure:6923: checking assembler supports -relax" >&5
+echo "configure:6997: checking assembler supports -relax" >&5
if eval "test \"`echo '$''{'gcc_cv_as_relax_opt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6949,7 +7023,7 @@ EOF
case "$tm_file" in
*64*)
echo $ac_n "checking for 64 bit support in assembler ($gcc_cv_as)""... $ac_c" 1>&6
-echo "configure:6953: checking for 64 bit support in assembler ($gcc_cv_as)" >&5
+echo "configure:7027: checking for 64 bit support in assembler ($gcc_cv_as)" >&5
if eval "test \"`echo '$''{'gcc_cv_as_flags64'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6994,7 +7068,7 @@ EOF
if test "x$gcc_cv_as_flags64" != xno; then
echo $ac_n "checking for assembler offsetable %lo() support""... $ac_c" 1>&6
-echo "configure:6998: checking for assembler offsetable %lo() support" >&5
+echo "configure:7072: checking for assembler offsetable %lo() support" >&5
if eval "test \"`echo '$''{'gcc_cv_as_offsetable_lo10'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -7033,7 +7107,7 @@ EOF
i[34567]86-*-*)
echo $ac_n "checking assembler instructions""... $ac_c" 1>&6
-echo "configure:7037: checking assembler instructions" >&5
+echo "configure:7111: checking assembler instructions" >&5
gcc_cv_as_instructions=
if test x$gcc_cv_gas_major_version != x -a x$gcc_cv_gas_minor_version != x; then
if test "$gcc_cv_gas_major_version" -eq 2 -a "$gcc_cv_gas_minor_version" -ge 9 -o "$gcc_cv_gas_major_version" -gt 2; then
@@ -7062,7 +7136,7 @@ EOF
esac
echo $ac_n "checking assembler dwarf2 debug_line support""... $ac_c" 1>&6
-echo "configure:7066: checking assembler dwarf2 debug_line support" >&5
+echo "configure:7140: checking assembler dwarf2 debug_line support" >&5
gcc_cv_as_dwarf2_debug_line=no
# ??? Not all targets support dwarf2 debug_line, even within a version
# of gas. Moreover, we need to emit a valid instruction to trigger any
@@ -7247,7 +7321,7 @@ fi
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:7251: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:7325: checking whether to enable maintainer-specific portions of Makefiles" >&5
# Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
if test "${enable_maintainer_mode+set}" = set; then
enableval="$enable_maintainer_mode"