summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mk/vars.mk5
-rw-r--r--package/qemu/Makefile7
-rw-r--r--target/config/Config.in.toolchain5
3 files changed, 14 insertions, 3 deletions
diff --git a/mk/vars.mk b/mk/vars.mk
index 0950b7765..292407694 100644
--- a/mk/vars.mk
+++ b/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
diff --git a/package/qemu/Makefile b/package/qemu/Makefile
index e12649311..c7b486509 100644
--- a/package/qemu/Makefile
+++ b/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
diff --git a/target/config/Config.in.toolchain b/target/config/Config.in.toolchain
index 0e0ea507c..760317429 100644
--- a/target/config/Config.in.toolchain
+++ b/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