Blame m4/ld-version-script.m4

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