added support for versioned symbols on Linux

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17668 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2002-11-02 19:05:43 +00:00
parent cac85ffa8b
commit 0c3f3a52e4
6 changed files with 983 additions and 811 deletions

View File

@@ -382,6 +382,57 @@ AC_DEFUN([WX_ARG_ENABLE],
])
dnl ===========================================================================
dnl Linker features test
dnl ===========================================================================
dnl ---------------------------------------------------------------------------
dnl WX_VERSIONED_SYMBOLS checks whether the linker can create versioned
dnl symbols. If it can, sets LDFLAGS_VERSIONING to $CXX flags needed to use
dnl version script file named versionfile
dnl
dnl call WX_VERSIONED_SYMBOLS(versionfile)
dnl ---------------------------------------------------------------------------
AC_DEFUN([WX_VERSIONED_SYMBOLS],
[
found_versioning=no
dnl Check for known non-gcc cases:
case "${host}" in
*-*-solaris2* )
if test "x$GCC" != "xyes" ; then
LDFLAGS_VERSIONING="-M $1"
found_versioning=yes
fi
;;
esac
dnl Generic check for GCC or GCC-like behaviour (Intel C++, GCC):
if test $found_versioning = no ; then
AC_CACHE_CHECK([if the linker accepts --version-script], wx_cv_version_script,
[
echo "VER_1 { *; };" >conftest.sym
echo "int main() { return 0; }" >conftest.cpp
if AC_TRY_COMMAND([
$CXX -o conftest.output $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.cpp
-Wl,--version-script,conftest.sym >/dev/null 2>conftest.stderr]) ; then
if test -s conftest.stderr ; then
wx_cv_version_script=no
else
wx_cv_version_script=yes
fi
else
wx_cv_version_script=no
fi
rm -f conftest.output conftest.stderr conftest.sym conftest.cpp
])
if test $wx_cv_version_script = yes ; then
LDFLAGS_VERSIONING="-Wl,--version-script,$1"
fi
fi
])
dnl ===========================================================================
dnl "3rd party" macros included here because they are not widely available