Mercurial > gnulib
annotate m4/asm-underscore.m4 @ 39239:31d885413cfb
host-cpu-c-abi: Avoid use of 'grep -E' on OpenIndiana.
* m4/asm-underscore.m4 (gl_ASM_SYMBOL_PREFIX): Require AC_PROG_EGREP,
and use $EGREP instead of 'grep -E'.
* m4/host-cpu-c-abi.m4 (gl_HOST_CPU_C_ABI): Use 'grep' instead of
'grep -E'.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sat, 03 Feb 2018 12:50:17 +0100 |
parents | 24e347e0e326 |
children | b06060465f09 |
rev | line source |
---|---|
39239
31d885413cfb
host-cpu-c-abi: Avoid use of 'grep -E' on OpenIndiana.
Bruno Haible <bruno@clisp.org>
parents:
39199
diff
changeset
|
1 # asm-underscore.m4 serial 4 |
39199
24e347e0e326
maint: Run 'make update-copyright'
Paul Eggert <eggert@cs.ucla.edu>
parents:
38305
diff
changeset
|
2 dnl Copyright (C) 2010-2018 Free Software Foundation, Inc. |
33034
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
3 dnl This file is free software; the Free Software Foundation |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
4 dnl gives unlimited permission to copy and/or distribute it, |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
5 dnl with or without modifications, as long as this notice is preserved. |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
6 |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
7 dnl From Bruno Haible. Based on as-underscore.m4 in GNU clisp. |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
8 |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
9 # gl_ASM_SYMBOL_PREFIX |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
10 # Tests for the prefix of C symbols at the assembly language level and the |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
11 # linker level. This prefix is either an underscore or empty. Defines the |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
12 # C macro USER_LABEL_PREFIX to this prefix, and sets ASM_SYMBOL_PREFIX to |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
13 # a stringified variant of this prefix. |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
14 |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
15 AC_DEFUN([gl_ASM_SYMBOL_PREFIX], |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
16 [ |
39239
31d885413cfb
host-cpu-c-abi: Avoid use of 'grep -E' on OpenIndiana.
Bruno Haible <bruno@clisp.org>
parents:
39199
diff
changeset
|
17 AC_REQUIRE([AC_PROG_EGREP]) |
33034
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
18 dnl We don't use GCC's __USER_LABEL_PREFIX__ here, because |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
19 dnl 1. It works only for GCC. |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
20 dnl 2. It is incorrectly defined on some platforms, in some GCC versions. |
35300
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
21 AC_REQUIRE([gl_C_ASM]) |
33034
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
22 AC_CACHE_CHECK( |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
23 [whether C symbols are prefixed with underscore at the linker level], |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
24 [gl_cv_prog_as_underscore], |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
25 [cat > conftest.c <<EOF |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
26 #ifdef __cplusplus |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
27 extern "C" int foo (void); |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
28 #endif |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
29 int foo(void) { return 0; } |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
30 EOF |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
31 # Look for the assembly language name in the .s file. |
35300
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
32 AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1 |
39239
31d885413cfb
host-cpu-c-abi: Avoid use of 'grep -E' on OpenIndiana.
Bruno Haible <bruno@clisp.org>
parents:
39199
diff
changeset
|
33 if LC_ALL=C $EGREP '(^|[[^a-zA-Z0-9_]])_foo([[^a-zA-Z0-9_]]|$)' conftest.$gl_asmext >/dev/null; then |
33034
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
34 gl_cv_prog_as_underscore=yes |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
35 else |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
36 gl_cv_prog_as_underscore=no |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
37 fi |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
38 rm -f conftest* |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
39 ]) |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
40 if test $gl_cv_prog_as_underscore = yes; then |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
41 USER_LABEL_PREFIX=_ |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
42 else |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
43 USER_LABEL_PREFIX= |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
44 fi |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
45 AC_DEFINE_UNQUOTED([USER_LABEL_PREFIX], [$USER_LABEL_PREFIX], |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
46 [Define to the prefix of C symbols at the assembler and linker level, |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
47 either an underscore or empty.]) |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
48 ASM_SYMBOL_PREFIX='"'${USER_LABEL_PREFIX}'"' |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
49 AC_SUBST([ASM_SYMBOL_PREFIX]) |
8318ee815527
Fix collision between gnulib's and libintl's printf replacements.
Bruno Haible <bruno@clisp.org>
parents:
diff
changeset
|
50 ]) |
35300
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
51 |
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
52 # gl_C_ASM |
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
53 # Determines how to produce an assembly language file from C source code. |
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
54 # Sets the variables: |
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
55 # gl_asmext - the extension of assembly language output, |
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
56 # gl_c_asm_opt - the C compiler option that produces assembly language output. |
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
57 |
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
58 AC_DEFUN([gl_C_ASM], |
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
59 [ |
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
60 AC_EGREP_CPP([MicrosoftCompiler], |
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
61 [ |
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
62 #ifdef _MSC_VER |
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
63 MicrosoftCompiler |
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
64 #endif |
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
65 ], |
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
66 [gl_asmext='asm' |
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
67 gl_c_asm_opt='-c -Fa' |
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
68 ], |
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
69 [gl_asmext='s' |
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
70 gl_c_asm_opt='-S' |
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
71 ]) |
0b35c3154b3e
asm-underscore.m4: Support for MSVC.
Bruno Haible <bruno@clisp.org>
parents:
33770
diff
changeset
|
72 ]) |