Commit | Line | Data |
---|---|---|
f0007cad | 1 | # ld-version-script.m4 serial 3 |
5e69ceb7 | 2 | dnl Copyright (C) 2008-2014 Free Software Foundation, Inc. |
25361e4b LC |
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 Simon Josefsson | |
8 | ||
9 | # FIXME: The test below returns a false positive for mingw | |
10 | # cross-compiles, 'local:' statements does not reduce number of | |
11 | # exported symbols in a DLL. Use --disable-ld-version-script to work | |
12 | # around the problem. | |
13 | ||
14 | # gl_LD_VERSION_SCRIPT | |
15 | # -------------------- | |
16 | # Check if LD supports linker scripts, and define automake conditional | |
17 | # HAVE_LD_VERSION_SCRIPT if so. | |
18 | AC_DEFUN([gl_LD_VERSION_SCRIPT], | |
19 | [ | |
20 | AC_ARG_ENABLE([ld-version-script], | |
21 | AS_HELP_STRING([--enable-ld-version-script], | |
22 | [enable linker version script (default is enabled when possible)]), | |
23 | [have_ld_version_script=$enableval], []) | |
24 | if test -z "$have_ld_version_script"; then | |
25 | AC_MSG_CHECKING([if LD -Wl,--version-script works]) | |
26 | save_LDFLAGS="$LDFLAGS" | |
27 | LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map" | |
28 | cat > conftest.map <<EOF | |
f0007cad LC |
29 | foo |
30 | EOF | |
31 | AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], | |
32 | [accepts_syntax_errors=yes], [accepts_syntax_errors=no]) | |
33 | if test "$accepts_syntax_errors" = no; then | |
34 | cat > conftest.map <<EOF | |
25361e4b | 35 | VERS_1 { |
1cd4fffc | 36 | global: sym; |
25361e4b LC |
37 | }; |
38 | ||
39 | VERS_2 { | |
40 | global: sym; | |
41 | } VERS_1; | |
42 | EOF | |
f0007cad LC |
43 | AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], |
44 | [have_ld_version_script=yes], [have_ld_version_script=no]) | |
45 | else | |
46 | have_ld_version_script=no | |
47 | fi | |
25361e4b LC |
48 | rm -f conftest.map |
49 | LDFLAGS="$save_LDFLAGS" | |
50 | AC_MSG_RESULT($have_ld_version_script) | |
51 | fi | |
52 | AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes") | |
53 | ]) |