diff options
-rw-r--r-- | mk/build.mk | 2 | ||||
-rw-r--r-- | mk/vars.mk | 8 | ||||
-rw-r--r-- | target/config/Config.in.toolchain | 10 |
3 files changed, 19 insertions, 1 deletions
diff --git a/mk/build.mk b/mk/build.mk index 5938a467a..1e270e662 100644 --- a/mk/build.mk +++ b/mk/build.mk @@ -48,6 +48,8 @@ DEFCONFIG= ADK_DEBUG=n \ ADK_TARGET_USE_GNU_HASHSTYLE=n \ ADK_TARGET_USE_PIE=n \ ADK_TARGET_USE_STATIC_LIBS=n \ + ADK_TARGET_USE_LD_RELRO=n \ + ADK_TARGET_USE_LD_BIND_NOW=n \ ADK_TARGET_USE_LD_GC=n \ ADK_LINUX_ARM_WITH_THUMB=n \ BUSYBOX_IFPLUGD=n \ diff --git a/mk/vars.mk b/mk/vars.mk index df46c5f8f..280c5f6e4 100644 --- a/mk/vars.mk +++ b/mk/vars.mk @@ -89,7 +89,13 @@ TARGET_CXXFLAGS+= -static-libgcc TARGET_LDFLAGS+= -static-libgcc # security optimization, see http://www.akkadia.org/drepper/dsohowto.pdf -TARGET_LDFLAGS+= -Wl,-z,relro,-z,now +ifneq ($(ADK_TARGET_USE_LD_RELRO),) +TARGET_LDFLAGS+= -Wl,-z,relro +endif +ifneq ($(ADK_TARGET_USE_LD_BIND_NOW),) +TARGET_LDFLAGS+= -Wl,-z,now +endif + # needed for musl ppc ifeq ($(ADK_LINUX_PPC),y) ifeq ($(ADK_TARGET_LIB_MUSL),y) diff --git a/target/config/Config.in.toolchain b/target/config/Config.in.toolchain index f4dc90f5d..739ff6253 100644 --- a/target/config/Config.in.toolchain +++ b/target/config/Config.in.toolchain @@ -68,6 +68,16 @@ config ADK_TARGET_USE_LTO select ADK_TOOLCHAIN_WITH_LTO default n +config ADK_TARGET_USE_LD_RELRO + prompt "Use LD read-only (-z relro) relocations for all packages" + boolean + default n + +config ADK_TARGET_USE_LD_BIND_NOW + prompt "Use LD bind now (-z now) for all packages" + boolean + default n + config ADK_TARGET_USE_LD_GC prompt "Use LD garbage collection for all packages" boolean |