aboutsummaryrefslogtreecommitdiff
path: root/gcc/configure.ac
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2021-06-24 12:53:24 +0200
committerEric Botcazou <ebotcazou@adacore.com>2021-06-24 14:11:32 +0200
commitaca1213627d1d5e5a70ce956cf227be9ae9b4022 (patch)
tree5cbecc347885dc75a5133854db1aa0f8f57ac1bc /gcc/configure.ac
parent2898a02fd5e51e4562be2dc16b755288400e4456 (diff)
downloadgcc-aca1213627d1d5e5a70ce956cf227be9ae9b4022.zip
gcc-aca1213627d1d5e5a70ce956cf227be9ae9b4022.tar.gz
gcc-aca1213627d1d5e5a70ce956cf227be9ae9b4022.tar.bz2
Fix --gdwarf-5 configure tests for Windows
The issues are that 1) they use readelf instead of objdump and 2) they use ELF syntax in the assembly code. gcc/ * configure.ac (--gdwarf-5 option): Use objdump instead of readelf. (working --gdwarf-4/--gdwarf-5 for all sources): Likewise. (--gdwarf-4 not refusing generated .debug_line): Adjust for Windows. * configure: Regenerate.
Diffstat (limited to 'gcc/configure.ac')
-rw-r--r--gcc/configure.ac36
1 files changed, 23 insertions, 13 deletions
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 5f30f80..7008939 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -5457,13 +5457,23 @@ if test x"$insn" != x; then
gcc_GAS_CHECK_FEATURE([--gdwarf-5 option],
gcc_cv_as_gdwarf_5_flag,
[elf,2,36,0], [--gdwarf-5], [$insn],
- [if test x$gcc_cv_readelf != x \
- && $gcc_cv_readelf -wi conftest.o 2>&1 \
+ [if test x$gcc_cv_objdump != x \
+ && $gcc_cv_objdump -Wi conftest.o 2>&1 \
| grep DW_TAG_compile_unit > /dev/null 2>&1; then
gcc_cv_as_gdwarf_5_flag=yes;
fi],[AC_DEFINE(HAVE_AS_GDWARF_5_DEBUG_FLAG, 1,
[Define if your assembler supports the --gdwarf-5 option.])])
+ case $target_os in
+ win32 | pe | cygwin* | mingw32*)
+ section_flags=\"dr\"
+ function_type=".def foo; .scl 2; .type 32; .endef"
+ function_size="";;
+ *)
+ section_flags=\"\",%progbits
+ function_type=".type foo, %function"
+ function_size=".size foo, .-foo";;
+ esac
dwarf4_debug_info_size=0x46
dwarf4_high_pc_form=7
dwarf4_debug_aranges_size=0x2c
@@ -5475,16 +5485,16 @@ if test x"$insn" != x; then
.Ltext0:
.p2align 4
.globl foo
- .type foo, %function
+ $function_type
foo:
.LFB0:
.LM1:
$insn
.LM2:
.LFE0:
- .size foo, .-foo
+ $function_size
.Letext0:
- .section .debug_info,\"\",%progbits
+ .section .debug_info,$section_flags
.Ldebug_info0:
.4byte $dwarf4_debug_info_size
.2byte 0x4
@@ -5508,7 +5518,7 @@ foo:
.byte 0x1
.byte 0x9c
.byte 0
- .section .debug_abbrev,\"\",%progbits
+ .section .debug_abbrev,$section_flags
.Ldebug_abbrev0:
.byte 0x1
.byte 0x11
@@ -5551,7 +5561,7 @@ foo:
.byte 0
.byte 0
.byte 0
- .section .debug_aranges,\"\",%progbits
+ .section .debug_aranges,$section_flags
.4byte $dwarf4_debug_aranges_size
.2byte 0x2
.4byte .Ldebug_info0
@@ -5563,7 +5573,7 @@ foo:
.${dwarf4_addr_size}byte .Letext0-.Ltext0
.${dwarf4_addr_size}byte 0
.${dwarf4_addr_size}byte 0
- .section .debug_line,\"\",%progbits
+ .section .debug_line,$section_flags
.Ldebug_line0:
.4byte .LELT0-.LSLT0
.LSLT0:
@@ -5617,7 +5627,7 @@ foo:
.byte 0x1
.byte 0x1
.LELT0:
- .section .debug_str,\"\",%progbits
+ .section .debug_str,$section_flags
.ident \"GCC\"
"
dwarf4_success=no
@@ -5673,10 +5683,10 @@ foo:
conftest_s="\
.text
.globl foo
- .type foo, %function
+ $function_type
foo:
$insn
- .size foo, .-foo
+ $function_size
.file 1 \"foo.c\"
"
gcc_GAS_CHECK_FEATURE([working --gdwarf-4/--gdwarf-5 for all sources],
@@ -5684,8 +5694,8 @@ foo:
[--gdwarf-4],
[$conftest_s],
[changequote(,)dnl
- if test x$gcc_cv_readelf != x \
- && $gcc_cv_readelf -w conftest.o 2>&1 \
+ if test x$gcc_cv_objdump != x \
+ && $gcc_cv_objdump -W conftest.o 2>&1 \
| grep conftest.s > /dev/null 2>&1; then
gcc_cv_as_working_gdwarf_n_flag=no
else