diff options
author | Dmitry V. Levin <ldv@altlinux.org> | 2020-08-07 18:00:00 +0000 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2020-08-07 18:00:00 +0000 |
commit | d5cb4409ab6b04a6ed7c00245e2c9a430f352b16 (patch) | |
tree | 8a702b9b589b6b1f0f9a984b1e972cb28cfe6ca1 | |
parent | 82906480da407a48391ff4406b96a62261128c97 (diff) | |
download | pam-d5cb4409ab6b04a6ed7c00245e2c9a430f352b16.tar.gz pam-d5cb4409ab6b04a6ed7c00245e2c9a430f352b16.tar.bz2 pam-d5cb4409ab6b04a6ed7c00245e2c9a430f352b16.zip |
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.
-rw-r--r-- | configure.ac | 3 | ||||
-rw-r--r-- | m4/.gitignore | 1 | ||||
-rw-r--r-- | m4/ld-z-now.m4 | 16 |
3 files changed, 19 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac index 36f2cbe1..40c1c557 100644 --- a/configure.ac +++ b/configure.ac @@ -75,6 +75,7 @@ AM_PROG_CC_C_O PAM_LD_AS_NEEDED PAM_LD_NO_UNDEFINED PAM_LD_O1 +PAM_LD_Z_NOW dnl Largefile support AC_SYS_LARGEFILE @@ -209,7 +210,7 @@ AS_IF([test "$enable_pie" = yes], PIE_LDFLAGS=]) EXE_CFLAGS="$PIE_CFLAGS" -EXE_LDFLAGS="$PIE_LDFLAGS" +EXE_LDFLAGS="$PIE_LDFLAGS $ZNOW_LDFLAGS" AC_SUBST(EXE_CFLAGS) AC_SUBST(EXE_LDFLAGS) 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=]) +]) |