summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2003-03-10 09:10:43 +0000
committerRoland McGrath <roland@gnu.org>2003-03-10 09:10:43 +0000
commit073e82bfaeeb5624b2c85012a5582a1308ddae05 (patch)
treeaba52ca1e4971cceca20f86d36cc2f888b936ffb /configure.in
parent9921a880001f11280c8e165310ce8f65eecd5a42 (diff)
2003-03-10 Roland McGrath <roland@redhat.com>
* configure.in: New check for -g on .S files. * configure: Regenerated. * config.make.in (have-cpp-asm-debuginfo): New variable. * config.h.in (HAVE_CPP_ASM_DEBUGINFO): New #undef. * Makeconfig (ASFLAGS): New variable, if undefined and $(have-cpp-asm-debuginfo), take options matching -g% from $(CFLAGS). * Makerules (compile.S, COMPILE.S): Use $(ASFLAGS).
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in32
1 files changed, 32 insertions, 0 deletions
diff --git a/configure.in b/configure.in
index 3ba21bcce6..a9903146d0 100644
--- a/configure.in
+++ b/configure.in
@@ -1462,6 +1462,38 @@ EOF
;;
esac
+AC_CACHE_CHECK(if -g produces usable source locations for assembler-with-cpp,
+ libc_cv_cpp_asm_debuginfo, [dnl
+cat > conftest.S <<EOF
+#include "confdefs.h"
+
+/* comment on
+ two lines */
+ ${libc_cv_dot_text}
+ ${libc_cv_asm_global_directive} foo
+foo:
+ /* Unfortunately this test only works for a real instruction,
+ not for any of the machine-independent pseudo-ops.
+ So we just have to assume everybody has a "nop". */
+ nop
+ /* comment */
+ nop
+ /* comment */
+ nop
+EOF
+if AC_TRY_COMMAND([${CC-cc} $CFLAGS -g -c conftest.S 1>&AS_MESSAGE_LOG_FD]) &&
+ ac_pattern='conftest\.S'
+ AC_TRY_COMMAND([readelf --debug-dump=line conftest.o |
+ grep $ac_pattern 1>&AS_MESSAGE_LOG_FD]); then
+ libc_cv_cpp_asm_debuginfo=yes
+else
+ libc_cv_cpp_asm_debuginfo=no
+fi
+rm -f conftest*])AC_SUBST(libc_cv_cpp_asm_debuginfo)
+if test $libc_cv_cpp_asm_debuginfo = yes; then
+ AC_DEFINE(HAVE_CPP_ASM_DEBUGINFO)
+fi
+
AC_CACHE_CHECK(for ld --no-whole-archive, libc_cv_ld_no_whole_archive, [dnl
cat > conftest.c <<\EOF
_start () {}