diff options
author | Andreas Gampe <agampe@google.com> | 2016-11-30 16:35:32 -0800 |
---|---|---|
committer | Andreas Gampe <agampe@google.com> | 2016-11-30 16:35:32 -0800 |
commit | 2200e0973626d99d9765ec33e98d1764e4d3ae88 (patch) | |
tree | 4a78454d48a3a412f22a8bb61afd4043c58f2f96 /cmds/app_process | |
parent | 273adb5257984fb4dd06753329bbd0d4ddc48ebe (diff) |
App_process: Merge app_process and app_process__asan
Two birds with one stone: simplify the setup (including the modules
required in PRODUCT_PACKAGES) and work around a build system issue
wrt/ sanitized static libraries.
Bug: 33224213
Test: mmma frameworks/base/cmds/app_process && \
mmma SANITIZE_TARGET=address SANITIZE_LITE=true \
frameworks/base/cmds/app_process && \
ls $OUT/system/bin/asanwrapper && \
readelf -s $OUT/system/bin/app_process32 | grep asan && \
readelf -s $OUT/system/bin/asan/app_process32 | grep asan && \
Change-Id: Ieff0ea9a2209cf74cf06f813087b55cb0bcc3896
Diffstat (limited to 'cmds/app_process')
-rw-r--r-- | cmds/app_process/Android.mk | 39 |
1 files changed, 9 insertions, 30 deletions
diff --git a/cmds/app_process/Android.mk b/cmds/app_process/Android.mk index f4314fb9d6e3..eaad3a7ec529 100644 --- a/cmds/app_process/Android.mk +++ b/cmds/app_process/Android.mk @@ -48,41 +48,20 @@ LOCAL_MODULE_STEM_64 := app_process64 LOCAL_CFLAGS += $(app_process_cflags) -# In SANITIZE_LITE mode, the main app_process is not sanitized - special -# binaries below do that. +# In SANITIZE_LITE mode, we create the sanitized binary in a separate location (but reuse +# the same module). Using the same module also works around an issue with make: binaries +# that depend on sanitized libraries will be relinked, even if they set LOCAL_SANITIZE := never. +# +# Also pull in the asanwrapper helper. ifeq ($(SANITIZE_LITE),true) -LOCAL_SANITIZE := never +LOCAL_MODULE_PATH := $(TARGET_OUT_EXECUTABLES)/asan +LOCAL_REQUIRED_MODULES := asanwrapper endif include $(BUILD_EXECUTABLE) # Create a symlink from app_process to app_process32 or 64 # depending on the target configuration. +ifneq ($(SANITIZE_LITE),true) include $(BUILD_SYSTEM)/executable_prefer_symlink.mk - -# Build a variant of app_process binary linked with ASan runtime. -# Built when SANITIZE_LITE is enabled. -ifeq ($(SANITIZE_LITE),true) - -include $(CLEAR_VARS) - -LOCAL_SRC_FILES:= $(app_process_src_files) - -LOCAL_LDFLAGS_32 := $(app_process_ldflags_32) -LOCAL_LDFLAGS_64 := $(app_process_ldflags_64) - -LOCAL_SHARED_LIBRARIES := $(app_process_common_shared_libs) - -LOCAL_WHOLE_STATIC_LIBRARIES := $(app_process_common_static_libs) - -LOCAL_MODULE := app_process__asan -LOCAL_MULTILIB := both -LOCAL_MODULE_STEM_32 := app_process32 -LOCAL_MODULE_STEM_64 := app_process64 -LOCAL_MODULE_PATH := $(TARGET_OUT_EXECUTABLES)/asan - -LOCAL_CFLAGS += $(app_process_cflags) - -include $(BUILD_EXECUTABLE) - -endif # SANITIZE_LITE +endif |