summaryrefslogtreecommitdiff
path: root/aclocal.m4
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2014-11-24 14:02:25 +0100
committerNiels Möller <nisse@lysator.liu.se>2014-12-06 21:29:18 +0100
commitd1c1ebd928aec5001a6b4fcac67f93169747e15c (patch)
tree7402aec2acbf4216eac34a8ebf9a27814fe61a36 /aclocal.m4
parentfccdf01b7b6f2c03e7f04db75006797fccc073f0 (diff)
downloadnettle-d1c1ebd928aec5001a6b4fcac67f93169747e15c.tar.gz
Added symbol versioning for nettle and hogweed
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
Diffstat (limited to 'aclocal.m4')
-rw-r--r--aclocal.m459
1 files changed, 59 insertions, 0 deletions
diff --git a/aclocal.m4 b/aclocal.m4
index 36daec6f..4c0bd410 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1211,3 +1211,62 @@ ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t"
ac_cv_type_intmax_t="$ac_cv_type_intmax_t"
])
])
+
+# ld-version-script.m4 serial 3
+dnl Copyright (C) 2008-2014 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Simon Josefsson
+
+# FIXME: The test below returns a false positive for mingw
+# cross-compiles, 'local:' statements does not reduce number of
+# exported symbols in a DLL. Use --disable-ld-version-script to work
+# around the problem.
+
+# gl_LD_VERSION_SCRIPT
+# --------------------
+# Check if LD supports linker scripts, and define automake conditional
+# HAVE_LD_VERSION_SCRIPT if so.
+AC_DEFUN([LD_VERSION_SCRIPT],
+[
+ AC_ARG_ENABLE([ld-version-script],
+ AS_HELP_STRING([--enable-ld-version-script],
+ [enable linker version script (default is enabled when possible)]),
+ [have_ld_version_script=$enableval], [])
+ if test -z "$have_ld_version_script"; then
+ AC_MSG_CHECKING([if LD -Wl,--version-script works])
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
+ cat > conftest.map <<EOF
+foo
+EOF
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
+ [accepts_syntax_errors=yes], [accepts_syntax_errors=no])
+ if test "$accepts_syntax_errors" = no; then
+ cat > conftest.map <<EOF
+VERS_1 {
+ global: sym;
+};
+
+VERS_2 {
+ global: sym;
+} VERS_1;
+EOF
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
+ [have_ld_version_script=yes], [have_ld_version_script=no])
+ else
+ have_ld_version_script=no
+ fi
+ rm -f conftest.map
+ LDFLAGS="$save_LDFLAGS"
+ AC_MSG_RESULT($have_ld_version_script)
+ fi
+ if test "$have_ld_version_script" = "yes";then
+ EXTRA_LINKER_FLAGS="-Wl,--version-script=\$(srcdir)/libnettle.map"
+ AC_SUBST(EXTRA_LINKER_FLAGS)
+ EXTRA_HOGWEED_LINKER_FLAGS="-Wl,--version-script=\$(srcdir)/libhogweed.map"
+ AC_SUBST(EXTRA_HOGWEED_LINKER_FLAGS)
+ fi
+])