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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 ])