summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Murray <timmurray@google.com>2014-09-03 15:01:46 -0700
committerTim Murray <timmurray@google.com>2014-09-03 15:39:50 -0700
commit595d0dbd5bbf18107ee2f18c06b033e3aef9374c (patch)
treec92d2d009b09f6c62808dc3b4bdaa869f778d0fa
parent2f9fa5202532fb2b5c9ea89a4c15171346f63ec1 (diff)
downloadbuild-595d0dbd5bbf18107ee2f18c06b033e3aef9374c.zip
build-595d0dbd5bbf18107ee2f18c06b033e3aef9374c.tar.gz
build-595d0dbd5bbf18107ee2f18c06b033e3aef9374c.tar.bz2
Add LOCAL_NO_FPIE.
Not all executables should be built with -pie. bug 15814177 Change-Id: I402e8a531866b507ee80a0bf677f9f3551ca7693
-rw-r--r--core/clear_vars.mk1
-rw-r--r--core/definitions.mk1
-rw-r--r--core/host_executable.mk4
3 files changed, 5 insertions, 1 deletions
diff --git a/core/clear_vars.mk b/core/clear_vars.mk
index 93ec226..be73c0d 100644
--- a/core/clear_vars.mk
+++ b/core/clear_vars.mk
@@ -151,6 +151,7 @@ LOCAL_MODULE_TARGET_ARCH_WARN:=
LOCAL_MODULE_UNSUPPORTED_TARGET_ARCH:=
LOCAL_MODULE_UNSUPPORTED_TARGET_ARCH_WARN:=
LOCAL_MODULE_HOST_ARCH:=
+LOCAL_NO_FPIE :=
# arch specific variables
LOCAL_SRC_FILES_$(TARGET_ARCH):=
diff --git a/core/definitions.mk b/core/definitions.mk
index 74fa038..afd033a 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -1441,7 +1441,6 @@ $(hide) $(PRIVATE_CXX) \
$($(PRIVATE_2ND_ARCH_VAR_PREFIX)HOST_GLOBAL_LD_DIRS) \
$(if $(PRIVATE_NO_DEFAULT_COMPILER_FLAGS),, \
$(PRIVATE_HOST_GLOBAL_LDFLAGS) \
- $(HOST_FPIE_FLAGS) \
) \
$(PRIVATE_LDFLAGS) \
-o $@ \
diff --git a/core/host_executable.mk b/core/host_executable.mk
index bf3cde1..0091f3f 100644
--- a/core/host_executable.mk
+++ b/core/host_executable.mk
@@ -13,6 +13,10 @@ endif
endif
endif
+ifeq ($(LOCAL_NO_FPIE),)
+LOCAL_LDFLAGS += $(HOST_FPIE_FLAGS)
+endif
+
ifeq ($(my_module_multilib),both)
ifeq ($(LOCAL_MODULE_PATH_32)$(LOCAL_MODULE_STEM_32),)
$(error $(LOCAL_PATH): LOCAL_MODULE_STEM_32 or LOCAL_MODULE_PATH_32 is required for LOCAL_MULTILIB := both for module $(LOCAL_MODULE))