aboutsummaryrefslogtreecommitdiff
path: root/gcc/configure.ac
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2020-10-16 05:59:51 -0700
committerH.J. Lu <hjl.tools@gmail.com>2020-10-24 09:03:36 -0700
commit1aeb7d7d67d167297ca2f4a97ef20f68e7546b4c (patch)
tree4f74334ca22079bdab72a7d5ec1250a31c35a65d /gcc/configure.ac
parent0df73beea03f9dc124dc6e98ec4bdeacca7a2eea (diff)
downloadgcc-1aeb7d7d67d167297ca2f4a97ef20f68e7546b4c.zip
gcc-1aeb7d7d67d167297ca2f4a97ef20f68e7546b4c.tar.gz
gcc-1aeb7d7d67d167297ca2f4a97ef20f68e7546b4c.tar.bz2
Update check for working assembler --gdwarf-4 option
Rename HAVE_AS_WORKING_DWARF_4_FLAG to HAVE_AS_WORKING_DWARF_N_FLAG Don't set HAVE_AS_WORKING_DWARF_N_FLAG if --gdwarf-5/--gdwarf-4 generate an extra assembly input file in debug info from compiler generated .debug_line or fail with the APP marker: https://sourceware.org/bugzilla/show_bug.cgi?id=25878 https://sourceware.org/bugzilla/show_bug.cgi?id=26740 https://sourceware.org/bugzilla/show_bug.cgi?id=26778 Also replace success with dwarf4_success in the 32-bit --gdwarf-4 check. PR bootstrap/97451 * configure.ac (HAVE_AS_WORKING_DWARF_4_FLAG): Renamed to ... (HAVE_AS_WORKING_DWARF_N_FLAG): This. Don't define if there is an extra assembly input file in debug info. Replace success with dwarf4_success in the 32-bit --gdwarf-4 check. * dwarf2out.c (asm_outputs_debug_line_str): Check HAVE_AS_WORKING_DWARF_N_FLAG instead of HAVE_AS_WORKING_DWARF_4_FLAG. * gcc.c (ASM_DEBUG_SPEC): Likewise. (ASM_DEBUG_OPTION_SPEC): Likewise. * config.in: Regenerated. * configure: Likewise.
Diffstat (limited to 'gcc/configure.ac')
-rw-r--r--gcc/configure.ac59
1 files changed, 56 insertions, 3 deletions
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 26a5d8e..9154a54 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -5364,7 +5364,7 @@ foo:
gcc_GAS_CHECK_FEATURE([assembly of compiler generated 32-bit .debug_line],
gcc_cv_as_debug_line_32_flag,
[elf,2,36,0], [], [$conftest_s],,
- [success=yes])
+ [dwarf4_success=yes])
else
gcc_GAS_CHECK_FEATURE([assembly of compiler generated 64-bit .debug_line],
gcc_cv_as_debug_line_64_flag,
@@ -5372,11 +5372,11 @@ foo:
[dwarf4_success=yes])
fi
if test $dwarf4_success = yes; then
+ dwarf4_success=no
gcc_GAS_CHECK_FEATURE([--gdwarf-4 not refusing compiler generated .debug_line],
gcc_cv_as_dwarf_4_debug_line_flag,
[elf,2,36,0], [--gdwarf-4], [$conftest_s],,
- [AC_DEFINE(HAVE_AS_WORKING_DWARF_4_FLAG, 1,
-[Define if your assembler supports --gdwarf-4 even with compiler generated .debug_line])])
+ [dwarf4_success=yes])
break
fi
dwarf4_debug_info_size=0x36
@@ -5385,6 +5385,59 @@ foo:
dwarf4_line_sz=5
done
+ if test $dwarf4_success = yes; then
+ conftest_s="\
+ .file \"foo.c\"
+ .text
+bar:
+#APP
+# 82 \"xxx.h\" 1
+ $insn
+# 0 \"\" 2
+#NO_APP
+ $insn
+foo:
+ .file 1 \"foo.c\"
+ $insn
+ .file 2 \"foo.h\"
+ ret
+"
+ dwarf4_success=no
+ gcc_GAS_CHECK_FEATURE([--gdwarf-4 with the APP marker],
+ gcc_cv_as_dwarf_4_app_flag,,
+ [--gdwarf-4], [$conftest_s],, [dwarf4_success=yes])
+ fi
+
+ if test $dwarf4_success = yes; then
+ conftest_s="\
+ .text
+ .globl foo
+ .type foo, %function
+foo:
+ $insn
+ .size foo, .-foo
+ .file 1 \"foo.c\"
+"
+ gcc_GAS_CHECK_FEATURE([working --gdwarf-4/--gdwarf-5 for all sources],
+ gcc_cv_as_working_gdwarf_n_flag,,
+ [--gdwarf-4],
+ [$conftest_s],
+ [changequote(,)dnl
+ if test x$gcc_cv_readelf != x \
+ && $gcc_cv_readelf -w conftest.o 2>&1 \
+ | grep conftest.s > /dev/null 2>&1; then
+ gcc_cv_as_working_gdwarf_n_flag=no
+ else
+ gcc_cv_as_working_gdwarf_n_flag=yes
+ fi
+ changequote([,])dnl])
+ if test $gcc_cv_as_working_gdwarf_n_flag = yes; then
+ AC_DEFINE(HAVE_AS_WORKING_DWARF_N_FLAG, 1,
+[Define if your assembler supports --gdwarf-4/--gdwarf-5 even with
+ compiler generated .debug_line.])
+ fi
+ fi
+
gcc_GAS_CHECK_FEATURE([--gstabs option],
gcc_cv_as_gstabs_flag,
[elf,2,11,0], [--gstabs], [$insn],,