diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-05-15 01:45:10 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-05-15 01:45:10 +0000 |
commit | c3f311c4228469099c9ec4c5545d0a7e006f9a2d (patch) | |
tree | 50bd83db98d2cce1d8acec334cafab9afd6aedf9 /gcc/configure | |
parent | 083aeb9b30efc6bccd29153267b76a8bc73a1509 (diff) | |
download | gcc-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-x | gcc/configure | 90 |
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" |