Blame m4/ld-version-script.m4

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