Test for -Wl,--version-script properly.
authorSimon Josefsson <simon@josefsson.org>
Fri, 7 Nov 2008 11:21:10 +0000 (12:21 +0100)
committerSimon Josefsson <simon@josefsson.org>
Fri, 7 Nov 2008 11:21:10 +0000 (12:21 +0100)
NEWS
configure.in

diff --git a/NEWS b/NEWS
index e9d7a9d..0b85a0b 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -13,6 +13,9 @@ Version 1.6 (unreleased)
 - Assumes system has strdup and string.h.
 - Remove libtasn1-config and libtasn1.m4,
   use standard AC_CHECK_FUNCS autoconf tests or pkg-config instead.
+- Change detection of when to use a linker version script,
+  use --enable-ld-version-script or --disable-ld-version-script to
+  override auto-detection logic.
 - API and ABI changes since last version:
   asn1_get_length_ber: New function.
   struct node_asn_struct: Removed, was never documented nor meant for export.
index e78cdc0..5483b33 100644 (file)
@@ -83,28 +83,21 @@ AC_MSG_RESULT($opt_valgrind_tests)
 AC_CHECK_SIZEOF(unsigned long int, 4)
 AC_CHECK_SIZEOF(unsigned int, 4)
 
-# For some systems we know that we have ld_version scripts.
-# Use it then as default.
-have_ld_version_script=no
-case "${host}" in
-    *-*-linux*)
-        have_ld_version_script=yes
-        ;;
-    *-*-gnu*)
-        have_ld_version_script=yes
-        ;;
-esac
 AC_ARG_ENABLE([ld-version-script],
-              AS_HELP_STRING([--enable-ld-version-script],[enable/disable use of linker version script.
-                              (default is system dependent)]),
-              [have_ld_version_script=$enableval],
-              [ : ] )
+  AS_HELP_STRING([--enable-ld-version-script],
+    [enable/disable 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 -Wl,--version-script works])
+  save_LDFLAGS="$LDFLAGS"
+  LDFLAGS="$LDFLAGS -Wl,--version-script=$srcdir/lib/libtasn1.vers"
+  AC_LINK_IFELSE(AC_LANG_PROGRAM([], []),
+                 [have_ld_version_script=yes], [have_ld_version_script=no])
+  LDFLAGS="$save_LDFLAGS"
+  AC_MSG_RESULT($have_ld_version_script)
+fi
 AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
 
-# For gnulib compatibility modules in gl/.
-AC_MSG_NOTICE([Running gnulib checks])
-gl_INIT
-
 # Check for gtk-doc.
 GTK_DOC_CHECK(1.2)
 
@@ -125,6 +118,10 @@ AC_ARG_VAR(WARN_CFLAGS, [Flags to enable compiler warnings])
 AC_MSG_CHECKING([what compiler warning flags we will use])
 AC_MSG_RESULT($WARN_CFLAGS)
 
+# For gnulib compatibility modules in gl/.
+AC_MSG_NOTICE([Running gnulib checks])
+gl_INIT
+
 AC_CONFIG_FILES([ \
   Makefile \
   gl/Makefile \