|
Packit |
e9ba0d |
# ld-version-script.m4 serial 3
|
|
Packit |
e9ba0d |
dnl Copyright (C) 2008-2014 Free Software Foundation, Inc.
|
|
Packit |
e9ba0d |
dnl This file is free software; the Free Software Foundation
|
|
Packit |
e9ba0d |
dnl gives unlimited permission to copy and/or distribute it,
|
|
Packit |
e9ba0d |
dnl with or without modifications, as long as this notice is preserved.
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
dnl From Simon Josefsson
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
# FIXME: The test below returns a false positive for mingw
|
|
Packit |
e9ba0d |
# cross-compiles, 'local:' statements does not reduce number of
|
|
Packit |
e9ba0d |
# exported symbols in a DLL. Use --disable-ld-version-script to work
|
|
Packit |
e9ba0d |
# around the problem.
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
# gl_LD_VERSION_SCRIPT
|
|
Packit |
e9ba0d |
# --------------------
|
|
Packit |
e9ba0d |
# Check if LD supports linker scripts, and define automake conditional
|
|
Packit |
e9ba0d |
# HAVE_LD_VERSION_SCRIPT if so.
|
|
Packit |
e9ba0d |
AC_DEFUN([gl_LD_VERSION_SCRIPT],
|
|
Packit |
e9ba0d |
[
|
|
Packit |
e9ba0d |
AC_ARG_ENABLE([ld-version-script],
|
|
Packit |
e9ba0d |
AS_HELP_STRING([--enable-ld-version-script],
|
|
Packit |
e9ba0d |
[enable linker version script (default is enabled when possible)]),
|
|
Packit |
e9ba0d |
[have_ld_version_script=$enableval], [])
|
|
Packit |
e9ba0d |
if test -z "$have_ld_version_script"; then
|
|
Packit |
e9ba0d |
AC_MSG_CHECKING([if LD -Wl,--version-script works])
|
|
Packit |
e9ba0d |
save_LDFLAGS="$LDFLAGS"
|
|
Packit |
e9ba0d |
LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
|
|
Packit |
e9ba0d |
cat > conftest.map <
|
|
Packit |
e9ba0d |
foo
|
|
Packit |
e9ba0d |
EOF
|
|
Packit |
e9ba0d |
AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
|
|
Packit |
e9ba0d |
[accepts_syntax_errors=yes], [accepts_syntax_errors=no])
|
|
Packit |
e9ba0d |
if test "$accepts_syntax_errors" = no; then
|
|
Packit |
e9ba0d |
cat > conftest.map <
|
|
Packit |
e9ba0d |
VERS_1 {
|
|
Packit |
e9ba0d |
global: sym;
|
|
Packit |
e9ba0d |
};
|
|
Packit |
e9ba0d |
|
|
Packit |
e9ba0d |
VERS_2 {
|
|
Packit |
e9ba0d |
global: sym;
|
|
Packit |
e9ba0d |
} VERS_1;
|
|
Packit |
e9ba0d |
EOF
|
|
Packit |
e9ba0d |
AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
|
|
Packit |
e9ba0d |
[have_ld_version_script=yes], [have_ld_version_script=no])
|
|
Packit |
e9ba0d |
else
|
|
Packit |
e9ba0d |
have_ld_version_script=no
|
|
Packit |
e9ba0d |
fi
|
|
Packit |
e9ba0d |
rm -f conftest.map
|
|
Packit |
e9ba0d |
LDFLAGS="$save_LDFLAGS"
|
|
Packit |
e9ba0d |
AC_MSG_RESULT($have_ld_version_script)
|
|
Packit |
e9ba0d |
fi
|
|
Packit |
e9ba0d |
AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
|
|
Packit |
e9ba0d |
])
|