]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
configure: Detect --whole-archive in linker
authorAki Tuomi <aki.tuomi@dovecot.fi>
Fri, 24 Nov 2017 06:51:14 +0000 (08:51 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Mon, 27 Nov 2017 17:34:26 +0000 (19:34 +0200)
configure.ac
m4/ld_whole_archive.m4 [new file with mode: 0644]

index 99273fc6b133953cf1cfa9d17a5ca2e2ea293347..a7b7b029c36f3dc7cd0a00441408c62a397de44b 100644 (file)
@@ -322,6 +322,7 @@ AC_CC_PIE
 AC_CC_F_STACK_PROTECTOR
 AC_CC_D_FORTIFY_SOURCE
 AC_LD_RELRO
+AC_LD_WHOLE_ARCHIVE
 
 DOVECOT_CFLAGS
 
diff --git a/m4/ld_whole_archive.m4 b/m4/ld_whole_archive.m4
new file mode 100644 (file)
index 0000000..42a4206
--- /dev/null
@@ -0,0 +1,19 @@
+AC_DEFUN([AC_LD_WHOLE_ARCHIVE], [
+    LD_WHOLE_ARCHIVE=
+    LD_NO_WHOLE_ARCHIVE=
+    AC_MSG_CHECKING([for linker option to include whole archive])
+    ld_help="`$CC -Wl,-help 2>&1`"
+    case "$ld_help" in
+        *"--whole-archive"*)
+            LD_WHOLE_ARCHIVE="--whole-archive"
+            LD_NO_WHOLE_ARCHIVE="--no-whole-archive"
+        ;;
+    esac
+    AS_IF([test "x$LD_WHOLE_ARCHIVE" != "x"],
+      [AC_MSG_RESULT([-Wl,$LD_WHOLE_ARCHIVE])],
+      [AC_MSG_RESULT([not supported])]
+    )
+    AC_SUBST([LD_WHOLE_ARCHIVE])
+    AC_SUBST([LD_NO_WHOLE_ARCHIVE])
+    AM_CONDITIONAL([HAVE_WHOLE_ARCHIVE], [test "x$LD_WHOLE_ARCHIVE" != "x"])
+])