diff options
Diffstat (limited to 'gcc/configure')
-rwxr-xr-x | gcc/configure | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/gcc/configure b/gcc/configure index c7a457a1b98..f6230e45d02 100755 --- a/gcc/configure +++ b/gcc/configure @@ -21585,7 +21585,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_cfi_directive" >&5 $as_echo "$gcc_cv_as_cfi_directive" >&6; } -if test $gcc_cv_as_cfi_directive = yes && test x$gcc_cv_readelf != x; then +if test $gcc_cv_as_cfi_directive = yes && test x$gcc_cv_objdump != x; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for working cfi advance" >&5 $as_echo_n "checking assembler for working cfi advance... " >&6; } if test "${gcc_cv_as_cfi_advance_working+set}" = set; then : @@ -21607,7 +21607,7 @@ else test $ac_status = 0; }; } then -if $gcc_cv_readelf -wf conftest.o 2>/dev/null \ +if $gcc_cv_objdump -Wf conftest.o 2>/dev/null \ | grep 'DW_CFA_advance_loc[24]:[ ][ ]*75040[ ]' >/dev/null; then gcc_cv_as_cfi_advance_working=yes fi @@ -21623,7 +21623,7 @@ fi $as_echo "$gcc_cv_as_cfi_advance_working" >&6; } else - # no readelf, err on the side of caution + # no objdump, err on the side of caution gcc_cv_as_cfi_advance_working=no fi @@ -21687,7 +21687,22 @@ else $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; } then - gcc_cv_as_cfi_sections_directive=yes + case $target_os in + win32 | pe | cygwin* | mingw32* | uwin*) + # Need to check that we generated the correct relocation for the + # .debug_frame section. This was fixed for binutils 2.21. + gcc_cv_as_cfi_sections_directive=no + if test "x$gcc_cv_objdump" != x; then + if $gcc_cv_objdump -j .debug_frame -r conftest.o 2>/dev/null | \ + grep secrel > /dev/null; then + gcc_cv_as_cfi_sections_directive=yes + fi + fi + ;; + *) + gcc_cv_as_cfi_sections_directive=yes + ;; +esac else echo "configure: failed program was" >&5 cat conftest.s >&5 |