Imported Upstream version 3.2.0
[debian/amanda] / config / gnulib / asm-underscore.m4
1 # asm-underscore.m4 serial 1
2 dnl Copyright (C) 2010 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
6
7 dnl From Bruno Haible. Based on as-underscore.m4 in GNU clisp.
8
9 # gl_ASM_SYMBOL_PREFIX
10 # Tests for the prefix of C symbols at the assembly language level and the
11 # linker level. This prefix is either an underscore or empty. Defines the
12 # C macro USER_LABEL_PREFIX to this prefix, and sets ASM_SYMBOL_PREFIX to
13 # a stringified variant of this prefix.
14
15 AC_DEFUN([gl_ASM_SYMBOL_PREFIX],
16 [
17   dnl We don't use GCC's __USER_LABEL_PREFIX__ here, because
18   dnl 1. It works only for GCC.
19   dnl 2. It is incorrectly defined on some platforms, in some GCC versions.
20   AC_CACHE_CHECK(
21     [whether C symbols are prefixed with underscore at the linker level],
22     [gl_cv_prog_as_underscore],
23     [cat > conftest.c <<EOF
24 #ifdef __cplusplus
25 extern "C" int foo (void);
26 #endif
27 int foo(void) { return 0; }
28 EOF
29      # Look for the assembly language name in the .s file.
30      AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS -S conftest.c) >/dev/null 2>&1
31      if grep _foo conftest.s >/dev/null ; then
32        gl_cv_prog_as_underscore=yes
33      else
34        gl_cv_prog_as_underscore=no
35      fi
36      rm -f conftest*
37     ])
38   if test $gl_cv_prog_as_underscore = yes; then
39     USER_LABEL_PREFIX=_
40   else
41     USER_LABEL_PREFIX=
42   fi
43   AC_DEFINE_UNQUOTED([USER_LABEL_PREFIX], [$USER_LABEL_PREFIX],
44     [Define to the prefix of C symbols at the assembler and linker level,
45      either an underscore or empty.])
46   ASM_SYMBOL_PREFIX='"'${USER_LABEL_PREFIX}'"'
47   AC_SUBST([ASM_SYMBOL_PREFIX])
48 ])