Commit 30b48ed9ea677e604bc47de421983410c3dcf714

Guillem Jover 2023-05-26T23:50:10

build: Refactor linker script detection into a new m4 function

diff --git a/configure.ac b/configure.ac
index aabe28e..40d25b9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -32,28 +32,7 @@ AC_SYS_LARGEFILE
 
 AM_PROG_AR
 LT_INIT
-
-AC_CACHE_CHECK([if ld supports --version-script flag],
-  [libbsd_cv_version_script], [
-  echo "{ global: symbol; local: *; };" >conftest.map
-  save_LDFLAGS=$LDFLAGS
-  LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
-  AC_LINK_IFELSE([
-    AC_LANG_PROGRAM([[
-extern int symbol(void);
-int symbol(void) { return 0; }
-]], [[
-]])
-  ], [
-    libbsd_cv_version_script=yes
-  ], [
-    libbsd_cv_version_script=no
-  ])
-  LDFLAGS="$save_LDFLAGS"
-  rm -f conftest.map
-])
-AM_CONDITIONAL([HAVE_LINKER_VERSION_SCRIPT],
-  [test "x$libbsd_cv_version_script" = "xyes"])
+LIBBSD_LINKER_VERSION_SCRIPT
 
 is_windows=no
 AS_CASE([$host_os],
diff --git a/m4/libbsd-linker.m4 b/m4/libbsd-linker.m4
new file mode 100644
index 0000000..394bac5
--- /dev/null
+++ b/m4/libbsd-linker.m4
@@ -0,0 +1,27 @@
+# Copyright © 2019, 2022 Guillem Jover <guillem@hadrons.org>
+
+# LIBBSD_LINKER_VERSION_SCRIPT
+# ----------------------------
+AC_DEFUN([LIBBSD_LINKER_VERSION_SCRIPT], [
+  AC_CACHE_CHECK([if ld supports --version-script flag],
+    [libbsd_cv_version_script], [
+    echo "{ global: symbol; local: *; };" >conftest.map
+    save_LDFLAGS=$LDFLAGS
+    LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
+    AC_LINK_IFELSE([
+      AC_LANG_PROGRAM([[
+extern int symbol(void);
+int symbol(void) { return 0; }
+]], [[
+]])
+    ], [
+      libbsd_cv_version_script=yes
+    ], [
+      libbsd_cv_version_script=no
+    ])
+    LDFLAGS="$save_LDFLAGS"
+    rm -f conftest.map
+  ])
+  AM_CONDITIONAL([HAVE_LINKER_VERSION_SCRIPT],
+    [test "x$libbsd_cv_version_script" = "xyes"])
+])