1*758e9fbaSOystein Eftevaag# ld-version-script.m4 serial 4 2*758e9fbaSOystein Eftevaagdnl Copyright (C) 2008-2019 Free Software Foundation, Inc. 3*758e9fbaSOystein Eftevaagdnl This file is free software; the Free Software Foundation 4*758e9fbaSOystein Eftevaagdnl gives unlimited permission to copy and/or distribute it, 5*758e9fbaSOystein Eftevaagdnl with or without modifications, as long as this notice is preserved. 6*758e9fbaSOystein Eftevaag 7*758e9fbaSOystein Eftevaagdnl From Simon Josefsson 8*758e9fbaSOystein Eftevaag 9*758e9fbaSOystein Eftevaag# FIXME: The test below returns a false positive for mingw 10*758e9fbaSOystein Eftevaag# cross-compiles, 'local:' statements does not reduce number of 11*758e9fbaSOystein Eftevaag# exported symbols in a DLL. Use --disable-ld-version-script to work 12*758e9fbaSOystein Eftevaag# around the problem. 13*758e9fbaSOystein Eftevaag 14*758e9fbaSOystein Eftevaag# gl_LD_VERSION_SCRIPT 15*758e9fbaSOystein Eftevaag# -------------------- 16*758e9fbaSOystein Eftevaag# Check if LD supports linker scripts, and define automake conditional 17*758e9fbaSOystein Eftevaag# HAVE_LD_VERSION_SCRIPT if so. 18*758e9fbaSOystein EftevaagAC_DEFUN([gl_LD_VERSION_SCRIPT], 19*758e9fbaSOystein Eftevaag[ 20*758e9fbaSOystein Eftevaag AC_ARG_ENABLE([ld-version-script], 21*758e9fbaSOystein Eftevaag [AS_HELP_STRING([--enable-ld-version-script], 22*758e9fbaSOystein Eftevaag [enable linker version script (default is enabled when possible)])], 23*758e9fbaSOystein Eftevaag [have_ld_version_script=$enableval], 24*758e9fbaSOystein Eftevaag [AC_CACHE_CHECK([if LD -Wl,--version-script works], 25*758e9fbaSOystein Eftevaag [gl_cv_sys_ld_version_script], 26*758e9fbaSOystein Eftevaag [gl_cv_sys_ld_version_script=no 27*758e9fbaSOystein Eftevaag save_LDFLAGS=$LDFLAGS 28*758e9fbaSOystein Eftevaag LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map" 29*758e9fbaSOystein Eftevaag echo foo >conftest.map 30*758e9fbaSOystein Eftevaag AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], 31*758e9fbaSOystein Eftevaag [], 32*758e9fbaSOystein Eftevaag [cat > conftest.map <<EOF 33*758e9fbaSOystein EftevaagVERS_1 { 34*758e9fbaSOystein Eftevaag global: sym; 35*758e9fbaSOystein Eftevaag}; 36*758e9fbaSOystein Eftevaag 37*758e9fbaSOystein EftevaagVERS_2 { 38*758e9fbaSOystein Eftevaag global: sym; 39*758e9fbaSOystein Eftevaag} VERS_1; 40*758e9fbaSOystein EftevaagEOF 41*758e9fbaSOystein Eftevaag AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], 42*758e9fbaSOystein Eftevaag [gl_cv_sys_ld_version_script=yes])]) 43*758e9fbaSOystein Eftevaag rm -f conftest.map 44*758e9fbaSOystein Eftevaag LDFLAGS=$save_LDFLAGS]) 45*758e9fbaSOystein Eftevaag have_ld_version_script=$gl_cv_sys_ld_version_script]) 46*758e9fbaSOystein Eftevaag AM_CONDITIONAL([HAVE_LD_VERSION_SCRIPT], 47*758e9fbaSOystein Eftevaag [test "$have_ld_version_script" = yes]) 48*758e9fbaSOystein Eftevaag]) 49