Reland "Migrate init.environ.rc module to Soong"
Makefile module still remains to handle post install commands. We're going to move that to somewhere else as a followup. Relanding with a fix for hwasan build. HWADDRESS_SANITIZER_GLOBAL_OPTIONS is set by Soong's MakeVars, so we can't refer the variable on soong config modules. Instead, as the variable is hard-coded, this change hard-codes options in Android.bp. Bug: 353429422 Test: boot cuttlefish w/ and w/o USE_SOONG_DEFINED_SYSTEM_IMAGE Test: boot shiba with SANITIZE_TARGET=hwaddress Change-Id: I4f61d7f800e0563c49dec0151d4a648ce9814bc9
This commit is contained in:
parent
be8f723e64
commit
b7fa335ed8
2 changed files with 61 additions and 38 deletions
|
|
@ -134,3 +134,58 @@ llndk_libraries_txt {
|
|||
sanitizer_libraries_txt {
|
||||
name: "sanitizer.libraries.txt",
|
||||
}
|
||||
|
||||
EXPORT_GLOBAL_ASAN_OPTIONS = select(soong_config_variable("ANDROID", "ASAN_ENABLED"), {
|
||||
true: "export ASAN_OPTIONS include=/system/asan.options",
|
||||
default: "",
|
||||
})
|
||||
|
||||
EXPORT_GLOBAL_HWASAN_OPTIONS = select(soong_config_variable("ANDROID", "HWASAN_ENABLED"), {
|
||||
true: "export HWASAN_OPTIONS heap_history_size=1023,stack_history_size=512,export_memory_stats=0,max_malloc_fill_size=131072,malloc_fill_byte=0",
|
||||
default: "",
|
||||
})
|
||||
|
||||
EXPORT_GLOBAL_GCOV_OPTIONS = select(soong_config_variable("ANDROID", "GCOV_COVERAGE"), {
|
||||
true: "export GCOV_PREFIX /data/misc/trace",
|
||||
default: "",
|
||||
})
|
||||
|
||||
EXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS = select((soong_config_variable("ANDROID", "CLANG_COVERAGE"), soong_config_variable("ANDROID", "CLANG_COVERAGE_CONTINUOUS_MODE")), {
|
||||
(true, true): "export LLVM_PROFILE_FILE /data/misc/trace/clang%c-%20m.profraw",
|
||||
(true, default): "export LLVM_PROFILE_FILE /data/misc/trace/clang-%20m.profraw",
|
||||
(default, default): "",
|
||||
})
|
||||
|
||||
EXPORT_GLOBAL_SCUDO_ALLOCATION_RING_BUFFER_SIZE = select(soong_config_variable("ANDROID", "SCUDO_ALLOCATION_RING_BUFFER_SIZE"), {
|
||||
"": "",
|
||||
any @ size: "export SCUDO_ALLOCATION_RING_BUFFER_SIZE " + size,
|
||||
default: "",
|
||||
})
|
||||
|
||||
genrule {
|
||||
name: "init.environ.rc.gen",
|
||||
srcs: ["init.environ.rc.in"],
|
||||
out: ["init.environ.rc"],
|
||||
cmd: "cp -f $(in) $(out) && " +
|
||||
"sed -i -e 's?%EXPORT_GLOBAL_ASAN_OPTIONS%?" + EXPORT_GLOBAL_ASAN_OPTIONS + "?g' $(out) && " +
|
||||
"sed -i -e 's?%EXPORT_GLOBAL_GCOV_OPTIONS%?" + EXPORT_GLOBAL_GCOV_OPTIONS + "?g' $(out) && " +
|
||||
"sed -i -e 's?%EXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS%?" + EXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS + "?g' $(out) && " +
|
||||
"sed -i -e 's?%EXPORT_GLOBAL_HWASAN_OPTIONS%?" + EXPORT_GLOBAL_HWASAN_OPTIONS + "?g' $(out) && " +
|
||||
"sed -i -e 's?%EXPORT_GLOBAL_SCUDO_ALLOCATION_RING_BUFFER_SIZE%?" + EXPORT_GLOBAL_SCUDO_ALLOCATION_RING_BUFFER_SIZE + "?g' $(out)",
|
||||
}
|
||||
|
||||
prebuilt_root {
|
||||
name: "init.environ.rc-soong",
|
||||
src: ":init.environ.rc.gen",
|
||||
filename: "init.environ.rc",
|
||||
install_in_root: true,
|
||||
no_full_install: true,
|
||||
required: select((soong_config_variable("ANDROID", "ASAN_ENABLED"), soong_config_variable("ANDROID", "SANITIZE_TARGET_SYSTEM_ENABLED")), {
|
||||
(true, true): [
|
||||
"asan.options",
|
||||
"asan_extract",
|
||||
],
|
||||
(true, default): ["asan.options"],
|
||||
(default, default): [],
|
||||
}),
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ endif
|
|||
endif
|
||||
#######################################
|
||||
# init.environ.rc
|
||||
# TODO(b/353429422): move LOCAL_POST_INSTALL_CMD to other rules and remove Android.mk module.
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE_CLASS := ETC
|
||||
|
|
@ -19,36 +20,8 @@ LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
|
|||
LOCAL_LICENSE_CONDITIONS := notice
|
||||
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT)
|
||||
|
||||
EXPORT_GLOBAL_ASAN_OPTIONS :=
|
||||
ifneq ($(filter address,$(SANITIZE_TARGET)),)
|
||||
EXPORT_GLOBAL_ASAN_OPTIONS := export ASAN_OPTIONS include=/system/asan.options
|
||||
LOCAL_REQUIRED_MODULES := asan.options $(ASAN_OPTIONS_FILES) $(ASAN_EXTRACT_FILES)
|
||||
endif
|
||||
|
||||
EXPORT_GLOBAL_HWASAN_OPTIONS :=
|
||||
ifneq ($(filter hwaddress,$(SANITIZE_TARGET)),)
|
||||
ifneq ($(HWADDRESS_SANITIZER_GLOBAL_OPTIONS),)
|
||||
EXPORT_GLOBAL_HWASAN_OPTIONS := export HWASAN_OPTIONS $(HWADDRESS_SANITIZER_GLOBAL_OPTIONS)
|
||||
endif
|
||||
endif
|
||||
|
||||
EXPORT_GLOBAL_SCUDO_ALLOCATION_RING_BUFFER_SIZE :=
|
||||
ifneq ($(PRODUCT_SCUDO_ALLOCATION_RING_BUFFER_SIZE),)
|
||||
EXPORT_GLOBAL_SCUDO_ALLOCATION_RING_BUFFER_SIZE := export SCUDO_ALLOCATION_RING_BUFFER_SIZE $(PRODUCT_SCUDO_ALLOCATION_RING_BUFFER_SIZE)
|
||||
endif
|
||||
|
||||
EXPORT_GLOBAL_GCOV_OPTIONS :=
|
||||
ifeq ($(NATIVE_COVERAGE),true)
|
||||
EXPORT_GLOBAL_GCOV_OPTIONS := export GCOV_PREFIX /data/misc/trace
|
||||
endif
|
||||
|
||||
EXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS :=
|
||||
ifeq ($(CLANG_COVERAGE),true)
|
||||
ifeq ($(CLANG_COVERAGE_CONTINUOUS_MODE),true)
|
||||
EXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS := export LLVM_PROFILE_FILE /data/misc/trace/clang%c-%20m.profraw
|
||||
else
|
||||
EXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS := export LLVM_PROFILE_FILE /data/misc/trace/clang-%20m.profraw
|
||||
endif
|
||||
LOCAL_REQUIRED_MODULES := asan.options $(ASAN_EXTRACT_FILES)
|
||||
endif
|
||||
|
||||
# Put it here instead of in init.rc module definition,
|
||||
|
|
@ -173,15 +146,10 @@ ALL_DEFAULT_INSTALLED_MODULES += $(ALL_ROOTDIR_SYMLINKS)
|
|||
include $(BUILD_SYSTEM)/base_rules.mk
|
||||
|
||||
$(ALL_ROOTDIR_SYMLINKS): $(LOCAL_BUILT_MODULE)
|
||||
$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/init.environ.rc.in
|
||||
@echo "Generate: $< -> $@"
|
||||
@mkdir -p $(dir $@)
|
||||
$(hide) cp $< $@
|
||||
$(hide) sed -i -e 's?%EXPORT_GLOBAL_ASAN_OPTIONS%?$(EXPORT_GLOBAL_ASAN_OPTIONS)?g' $@
|
||||
$(hide) sed -i -e 's?%EXPORT_GLOBAL_GCOV_OPTIONS%?$(EXPORT_GLOBAL_GCOV_OPTIONS)?g' $@
|
||||
$(hide) sed -i -e 's?%EXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS%?$(EXPORT_GLOBAL_CLANG_COVERAGE_OPTIONS)?g' $@
|
||||
$(hide) sed -i -e 's?%EXPORT_GLOBAL_HWASAN_OPTIONS%?$(EXPORT_GLOBAL_HWASAN_OPTIONS)?g' $@
|
||||
$(hide) sed -i -e 's?%EXPORT_GLOBAL_SCUDO_ALLOCATION_RING_BUFFER_SIZE%?$(EXPORT_GLOBAL_SCUDO_ALLOCATION_RING_BUFFER_SIZE)?g' $@
|
||||
|
||||
init.environ.rc-soong := $(call intermediates-dir-for,ETC,init.environ.rc-soong)/init.environ.rc-soong
|
||||
$(eval $(call copy-one-file,$(init.environ.rc-soong),$(LOCAL_BUILT_MODULE)))
|
||||
init.environ.rc-soong :=
|
||||
|
||||
#######################################
|
||||
# ramdisk_node_list
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue