nexmon – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | # asm-underscore.m4 serial 3 |
2 | dnl Copyright (C) 2010-2016 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_REQUIRE([gl_C_ASM]) |
||
21 | AC_CACHE_CHECK( |
||
22 | [whether C symbols are prefixed with underscore at the linker level], |
||
23 | [gl_cv_prog_as_underscore], |
||
24 | [cat > conftest.c <<EOF |
||
25 | #ifdef __cplusplus |
||
26 | extern "C" int foo (void); |
||
27 | #endif |
||
28 | int foo(void) { return 0; } |
||
29 | EOF |
||
30 | # Look for the assembly language name in the .s file. |
||
31 | AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1 |
||
32 | if LC_ALL=C grep -E '(^|[^a-zA-Z0-9_])_foo([^a-zA-Z0-9_]|$)' conftest.$gl_asmext >/dev/null; then |
||
33 | gl_cv_prog_as_underscore=yes |
||
34 | else |
||
35 | gl_cv_prog_as_underscore=no |
||
36 | fi |
||
37 | rm -f conftest* |
||
38 | ]) |
||
39 | if test $gl_cv_prog_as_underscore = yes; then |
||
40 | USER_LABEL_PREFIX=_ |
||
41 | else |
||
42 | USER_LABEL_PREFIX= |
||
43 | fi |
||
44 | AC_DEFINE_UNQUOTED([USER_LABEL_PREFIX], [$USER_LABEL_PREFIX], |
||
45 | [Define to the prefix of C symbols at the assembler and linker level, |
||
46 | either an underscore or empty.]) |
||
47 | ASM_SYMBOL_PREFIX='"'${USER_LABEL_PREFIX}'"' |
||
48 | AC_SUBST([ASM_SYMBOL_PREFIX]) |
||
49 | ]) |
||
50 | |||
51 | # gl_C_ASM |
||
52 | # Determines how to produce an assembly language file from C source code. |
||
53 | # Sets the variables: |
||
54 | # gl_asmext - the extension of assembly language output, |
||
55 | # gl_c_asm_opt - the C compiler option that produces assembly language output. |
||
56 | |||
57 | AC_DEFUN([gl_C_ASM], |
||
58 | [ |
||
59 | AC_EGREP_CPP([MicrosoftCompiler], |
||
60 | [ |
||
61 | #ifdef _MSC_VER |
||
62 | MicrosoftCompiler |
||
63 | #endif |
||
64 | ], |
||
65 | [gl_asmext='asm' |
||
66 | gl_c_asm_opt='-c -Fa' |
||
67 | ], |
||
68 | [gl_asmext='s' |
||
69 | gl_c_asm_opt='-S' |
||
70 | ]) |
||
71 | ]) |