Browse Source

allow to enable PIE

Waldemar Brodkorb 10 years ago
parent
commit
5b52fb5957
3 changed files with 14 additions and 3 deletions
  1. 5 0
      mk/vars.mk
  2. 4 3
      package/qemu/Makefile
  3. 5 0
      target/config/Config.in.toolchain

+ 5 - 0
mk/vars.mk

@@ -119,6 +119,11 @@ TARGET_CXXFLAGS+=	-fstack-protector-all
 TARGET_LDFLAGS+=	-fstack-protector-all
 endif
 
+ifneq ($(ADK_TARGET_USE_PIE),)
+TARGET_CFLAGS+=		-fPIE
+TARGET_CXXFLAGS+=	-fPIE
+endif
+
 ifneq ($(ADK_TARGET_USE_LTO),)
 TARGET_CFLAGS+=		-flto
 TARGET_CXXFLAGS+=	-flto

+ 4 - 3
package/qemu/Makefile

@@ -30,9 +30,10 @@ ifeq ($(ADK_TARGET_LIB_MUSL),y)
 TARGET_CFLAGS+=		-DF_EXLCK=4 -DF_SHLCK=8 -D__SIGRTMIN=32 -D__SIGRTMAX=\(NSIG-1\)
 endif
 
-ifeq ($(ADK_STATIC),y)
-TARGET_CFLAGS+=		-static
-TARGET_LDFLAGS+=	-static
+ifeq ($(ADK_TARGET_USE_PIE),y)
+CONFIGURE_ARGS+=	--enable-pie
+else
+CONFIGURE_ARGS+=	--disable-pie
 endif
 
 CONFIG_STYLE:=		minimal

+ 5 - 0
target/config/Config.in.toolchain

@@ -52,6 +52,11 @@ config ADK_TARGET_USE_SSP
 	select ADK_TOOLCHAIN_WITH_SSP
 	default n
 
+config ADK_TARGET_USE_PIE
+	prompt "Use Position Independent Executable mode for all packages"
+	boolean
+	default n
+
 config ADK_TOOLCHAIN_WITH_LTO
 	boolean
 	default n