summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorDmitry V. Levin <ldv@altlinux.org>2020-08-07 18:00:00 +0000
committerDmitry V. Levin <ldv@altlinux.org>2020-08-07 18:00:00 +0000
commitd5cb4409ab6b04a6ed7c00245e2c9a430f352b16 (patch)
tree8a702b9b589b6b1f0f9a984b1e972cb28cfe6ca1 /m4
parent82906480da407a48391ff4406b96a62261128c97 (diff)
Build all installed executables with -Wl,-z,now if available
This makes them built with full RELRO if -Wl,-z,relro is specified. * m4/ld-z-now.m4: New file. * m4/.gitignore: Add it to exclude list. * configure.ac: Call PAM_LD_Z_NOW. (EXE_LDFLAGS): Append $ZNOW_LDFLAGS.
Diffstat (limited to 'm4')
-rw-r--r--m4/.gitignore1
-rw-r--r--m4/ld-z-now.m416
2 files changed, 17 insertions, 0 deletions
diff --git a/m4/.gitignore b/m4/.gitignore
index 6937d745..c78f8072 100644
--- a/m4/.gitignore
+++ b/m4/.gitignore
@@ -3,6 +3,7 @@
!jh_path_xml_catalog.m4
!ld-as-needed.m4
!ld-no-undefined.m4
+!ld-z-now.m4
!ld-O1.m4
!libprelude.m4
!warnings.m4
diff --git a/m4/ld-z-now.m4 b/m4/ld-z-now.m4
new file mode 100644
index 00000000..1bc82594
--- /dev/null
+++ b/m4/ld-z-now.m4
@@ -0,0 +1,16 @@
+#!/usr/bin/m4
+dnl Check whether ld supports "-z now"
+
+AC_DEFUN([PAM_LD_Z_NOW], [dnl
+ AC_CACHE_CHECK([whether ld supports "-z now"],
+ [pam_cv_ld_z_now],
+ [saved_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -Wl,-z,now"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM(,)],
+ [pam_cv_ld_z_now=yes],
+ [pam_cv_ld_z_now=no])
+ LDFLAGS="$saved_LDFLAGS"])
+ AS_IF([test $pam_cv_ld_z_now = yes],
+ [ZNOW_LDFLAGS="-Wl,-z,now"],
+ [ZNOW_LDFLAGS=])
+])