From b9af8ec237dc55f49d8a929226598050498e999d Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 4 Jun 2014 15:11:31 +0200 Subject: make ld relro and bind now optional --- mk/build.mk | 2 ++ mk/vars.mk | 8 +++++++- target/config/Config.in.toolchain | 10 ++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3