| commit 94a4e9e4f401ffe829a992820439977ead0a0ce7 |
| Author: Florian Weimer <fweimer@redhat.com> |
| Date: Thu Apr 25 10:41:43 2019 +0200 |
| |
| Extend BIND_NOW to installed programs with --enable-bind-now |
| |
| Commit 2d6ab5df3b675e96ee587ae6a8c2ce004c6b1ba9 ("Document and fix |
| --enable-bind-now [BZ #21015]") extended BIND_NOW to all installed |
| shared objects. This change also covers installed programs. |
| |
| Reviewed-by: Carlos O'Donell <carlos@redhat.com> |
| |
| diff --git a/INSTALL b/INSTALL |
| index d6c8e899fbb47dac..d56e102ec9ed3281 100644 |
| |
| |
| @@ -169,10 +169,10 @@ if 'CFLAGS' is specified it must enable optimization. For example: |
| protection. |
| |
| '--enable-bind-now' |
| - Disable lazy binding for installed shared objects. This provides |
| - additional security hardening because it enables full RELRO and a |
| - read-only global offset table (GOT), at the cost of slightly |
| - increased program load times. |
| + Disable lazy binding for installed shared objects and programs. |
| + This provides additional security hardening because it enables full |
| + RELRO and a read-only global offset table (GOT), at the cost of |
| + slightly increased program load times. |
| |
| '--enable-pt_chown' |
| The file 'pt_chown' is a helper binary for 'grantpt' (*note |
| diff --git a/Makeconfig b/Makeconfig |
| index 8dc2fec9dc683416..742c0c0783a14bfa 100644 |
| |
| |
| @@ -398,6 +398,8 @@ endif |
| # test modules. |
| ifeq ($(bind-now),yes) |
| LDFLAGS-lib.so += -Wl,-z,now |
| +# Extra flags for dynamically linked non-test main programs. |
| +link-extra-flags += -Wl,-z,now |
| endif |
| |
| # Command to run after every final link (executable or shared object). |
| @@ -426,7 +428,7 @@ ifndef +link-pie |
| $(link-extra-libs) |
| +link-pie-after-libc = $(+postctorS) $(+postinit) |
| define +link-pie |
| -$(+link-pie-before-libc) $(rtld-LDFLAGS) $(link-libc) $(+link-pie-after-libc) |
| +$(+link-pie-before-libc) $(rtld-LDFLAGS) $(link-extra-flags) $(link-libc) $(+link-pie-after-libc) |
| $(call after-link,$@) |
| endef |
| define +link-pie-tests |
| @@ -454,7 +456,7 @@ ifndef +link-static |
| $(link-extra-libs-static) |
| +link-static-after-libc = $(+postctorT) $(+postinit) |
| define +link-static |
| -$(+link-static-before-libc) $(link-libc-static) $(+link-static-after-libc) |
| +$(+link-static-before-libc) $(link-extra-flags) $(link-libc-static) $(+link-static-after-libc) |
| $(call after-link,$@) |
| endef |
| define +link-static-tests |
| @@ -485,7 +487,7 @@ else # not build-pie-default |
| $(link-extra-libs) |
| +link-after-libc = $(+postctor) $(+postinit) |
| define +link |
| -$(+link-before-libc) $(rtld-LDFLAGS) $(link-libc) $(+link-after-libc) |
| +$(+link-before-libc) $(rtld-LDFLAGS) $(link-extra-flags) $(link-libc) $(+link-after-libc) |
| $(call after-link,$@) |
| endef |
| define +link-tests |
| diff --git a/manual/install.texi b/manual/install.texi |
| index e757891dc2eebb2e..351d67c68b255f62 100644 |
| |
| |
| @@ -199,10 +199,10 @@ number of routines called directly from assembler are excluded from this |
| protection. |
| |
| @item --enable-bind-now |
| -Disable lazy binding for installed shared objects. This provides |
| -additional security hardening because it enables full RELRO and a |
| -read-only global offset table (GOT), at the cost of slightly increased |
| -program load times. |
| +Disable lazy binding for installed shared objects and programs. This |
| +provides additional security hardening because it enables full RELRO |
| +and a read-only global offset table (GOT), at the cost of slightly |
| +increased program load times. |
| |
| @pindex pt_chown |
| @findex grantpt |