Merge "Mark more common variables and paths as readonly"
diff --git a/core/Makefile b/core/Makefile
index 19a001c..252bd22 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -1578,12 +1578,7 @@
$(TARGET_OUT) $(systemimage_intermediates)/system_image_info.txt $(1) $(TARGET_OUT) \
|| ( echo "Out of space? the tree size of $(TARGET_OUT) is (MB): " 1>&2 ;\
du -sm $(TARGET_OUT) 1>&2;\
- if [ "$(INTERNAL_USERIMAGES_EXT_VARIANT)" == "ext4" ]; then \
- maxsize=$(BOARD_SYSTEMIMAGE_PARTITION_SIZE); \
- echo "The max is $$(( maxsize / 1048576 )) MB." 1>&2 ;\
- else \
- echo "The max is $$(( $(BOARD_SYSTEMIMAGE_PARTITION_SIZE) / 1048576 )) MB." 1>&2 ;\
- fi; \
+ echo "The max is $$(( $(BOARD_SYSTEMIMAGE_PARTITION_SIZE) / 1048576 )) MB." 1>&2 ;\
mkdir -p $(DIST_DIR); cp $(INSTALLED_FILES_FILE) $(DIST_DIR)/installed-files-rescued.txt; \
exit 1 )
endef
diff --git a/core/binary.mk b/core/binary.mk
index e3adaf3..788472d 100644
--- a/core/binary.mk
+++ b/core/binary.mk
@@ -519,6 +519,10 @@
my_target_global_cppflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CPPFLAGS) $(my_cpp_std_cppflags)
ifeq ($(my_use_clang_lld),true)
my_target_global_ldflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_LLDFLAGS)
+ include $(BUILD_SYSTEM)/pack_dyn_relocs_setup.mk
+ ifeq ($(my_pack_module_relocations),false)
+ my_target_global_ldflags += -Wl,--pack-dyn-relocs=none
+ endif
else
my_target_global_ldflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_LDFLAGS)
endif # my_use_clang_lld
diff --git a/core/config.mk b/core/config.mk
index 58cf42c..1320828 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -559,8 +559,9 @@
prebuilt_build_tools := prebuilts/build-tools
prebuilt_build_tools_wrappers := prebuilts/build-tools/common/bin
prebuilt_build_tools_jars := prebuilts/build-tools/common/framework
+prebuilt_build_tools_bin_noasan := $(prebuilt_build_tools)/$(HOST_PREBUILT_TAG)/bin
ifeq ($(filter address,$(SANITIZE_HOST)),)
-prebuilt_build_tools_bin := $(prebuilt_build_tools)/$(HOST_PREBUILT_TAG)/bin
+prebuilt_build_tools_bin := $(prebuilt_build_tools_bin_noasan)
else
prebuilt_build_tools_bin := $(prebuilt_build_tools)/$(HOST_PREBUILT_TAG)/asan/bin
endif
@@ -630,13 +631,13 @@
# ---------------------------------------------------------------
# Generic tools.
-LEX := prebuilts/misc/$(BUILD_OS)-$(HOST_PREBUILT_ARCH)/flex/flex-2.5.39
+LEX := $(prebuilt_build_tools_bin_noasan)/flex
# The default PKGDATADIR built in the prebuilt bison is a relative path
# prebuilts/build-tools/common/bison.
# To run bison from elsewhere you need to set up enviromental variable
# BISON_PKGDATADIR.
BISON_PKGDATADIR := $(PWD)/prebuilts/build-tools/common/bison
-BISON := prebuilts/build-tools/$(BUILD_OS)-$(HOST_PREBUILT_ARCH)/bin/bison
+BISON := $(prebuilt_build_tools_bin_noasan)/bison
YACC := $(BISON) -d
BISON_DATA := $(wildcard $(BISON_PKGDATADIR)/* $(BISON_PKGDATADIR)/*/*)
@@ -929,7 +930,7 @@
.KATI_READONLY := USE_LOGICAL_PARTITIONS
ifeq ($(USE_LOGICAL_PARTITIONS),true)
- BOARD_KERNEL_CMDLINE += androidboot.lrap=1
+ BOARD_KERNEL_CMDLINE += androidboot.logical_partitions=1
endif
# ###############################################################
diff --git a/core/dynamic_binary.mk b/core/dynamic_binary.mk
index 74e0fa2..e559208 100644
--- a/core/dynamic_binary.mk
+++ b/core/dynamic_binary.mk
@@ -35,6 +35,7 @@
LOCAL_INTERMEDIATE_TARGETS := $(linked_module)
###################################
+include $(BUILD_SYSTEM)/use_lld_setup.mk
include $(BUILD_SYSTEM)/binary.mk
###################################
@@ -44,35 +45,12 @@
relocation_packer_input := $(linked_module)
relocation_packer_output := $(intermediates)/PACKED/$(my_built_module_stem)
-my_pack_module_relocations := false
-ifneq ($(DISABLE_RELOCATION_PACKER),true)
- my_pack_module_relocations := $(firstword \
- $(LOCAL_PACK_MODULE_RELOCATIONS_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)) \
- $(LOCAL_PACK_MODULE_RELOCATIONS))
-endif
+include $(BUILD_SYSTEM)/pack_dyn_relocs_setup.mk
-ifeq ($(my_pack_module_relocations),)
- my_pack_module_relocations := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_PACK_MODULE_RELOCATIONS)
-endif
-
-# Do not pack relocations for executables. Because packing results in
-# non-zero p_vaddr which causes kernel to load executables to lower
-# address (starting at 0x8000) http://b/20665974
-ifneq ($(filter EXECUTABLES NATIVE_TESTS,$(LOCAL_MODULE_CLASS)),)
- my_pack_module_relocations := false
-endif
-
-# TODO (dimitry): Relocation packer is not yet available for darwin
-ifneq ($(HOST_OS),linux)
- my_pack_module_relocations := false
-endif
-
-# Relocation packer does not work with LLD yet.
-ifeq ($(my_use_clang_lld),true)
- my_pack_module_relocations := false
-endif
-
+# Stand-alone relocation_packer does not work with LLD output,
+# but it can be replaced by lld's --pack-dyn-relocs=android.
ifeq (true,$(my_pack_module_relocations))
+ifeq (false,$(my_use_clang_lld))
# Pack relocations
$(relocation_packer_output): $(relocation_packer_input)
$(pack-elf-relocations)
@@ -80,7 +58,12 @@
$(relocation_packer_output): $(relocation_packer_input)
@echo "target Unpacked: $(PRIVATE_MODULE) ($@)"
$(copy-file-to-target)
-endif
+endif # my_use_clang_lld
+else
+$(relocation_packer_output): $(relocation_packer_input)
+ @echo "target Unpacked: $(PRIVATE_MODULE) ($@)"
+ $(copy-file-to-target)
+endif # my_pack_module_relocations
###########################################################
## Store a copy with symbols for symbolic debugging
diff --git a/core/java_common.mk b/core/java_common.mk
index b75949a..f4696d7 100644
--- a/core/java_common.mk
+++ b/core/java_common.mk
@@ -263,9 +263,8 @@
ifneq (,$(TARGET_BUILD_APPS))
sdk_libs := $(foreach lib_name,$(LOCAL_SDK_LIBRARIES),$(call resolve-prebuilt-sdk-module,system_current,$(lib_name)))
else
- # When SDK libraries are referenced from modules built without SDK, provide the system stub to them
- # because it has the largest API surface.
- sdk_libs := $(foreach lib_name,$(LOCAL_SDK_LIBRARIES),$(lib_name).stubs.system)
+ # When SDK libraries are referenced from modules built without SDK, provide the all APIs to them
+ sdk_libs := $(foreach lib_name,$(LOCAL_SDK_LIBRARIES),$(lib_name).impl)
endif
else
ifeq ($(LOCAL_NO_STANDARD_LIBRARIES),true)
diff --git a/core/main.mk b/core/main.mk
index 2ef17a2..c1059d7 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -229,6 +229,8 @@
ADDITIONAL_DEFAULT_PROPERTIES += ro.actionable_compatible_property.enabled=${PRODUCT_COMPATIBLE_PROPERTY}
endif
+ADDITIONAL_BUILD_PROPERTIES += ro.boot.logical_partitions=${USE_LOGICAL_PARTITIONS}
+
# -----------------------------------------------------------------
###
### In this section we set up the things that are different
diff --git a/core/pack_dyn_relocs_setup.mk b/core/pack_dyn_relocs_setup.mk
new file mode 100644
index 0000000..2147f44
--- /dev/null
+++ b/core/pack_dyn_relocs_setup.mk
@@ -0,0 +1,33 @@
+#############################################################
+## Set up my_pack_module_relocations
+## Input variables:
+## DISABLE_RELOCATION_PACKER,
+## LOCAL_PACK_MODULE_RELOCATIONS*,
+## *TARGET_PACK_MODULE_RELOCATIONS,
+## LOCAL_MODULE_CLASS, HOST_OS
+## Output variables:
+## my_pack_module_relocations, if false skip relocation_packer
+#############################################################
+
+my_pack_module_relocations := false
+ifneq ($(DISABLE_RELOCATION_PACKER),true)
+ my_pack_module_relocations := $(firstword \
+ $(LOCAL_PACK_MODULE_RELOCATIONS_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)) \
+ $(LOCAL_PACK_MODULE_RELOCATIONS))
+endif
+
+ifeq ($(my_pack_module_relocations),)
+ my_pack_module_relocations := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_PACK_MODULE_RELOCATIONS)
+endif
+
+# Do not pack relocations for executables. Because packing results in
+# non-zero p_vaddr which causes kernel to load executables to lower
+# address (starting at 0x8000) http://b/20665974
+ifneq ($(filter EXECUTABLES NATIVE_TESTS,$(LOCAL_MODULE_CLASS)),)
+ my_pack_module_relocations := false
+endif
+
+# TODO (dimitry): Relocation packer is not yet available for darwin
+ifneq ($(HOST_OS),linux)
+ my_pack_module_relocations := false
+endif
diff --git a/core/version_defaults.mk b/core/version_defaults.mk
index 8c36359..ec0bfcd 100644
--- a/core/version_defaults.mk
+++ b/core/version_defaults.mk
@@ -258,6 +258,16 @@
endif
.KATI_READONLY := PLATFORM_SECURITY_PATCH
+ifndef PLATFORM_SECURITY_PATCH_TIMESTAMP
+ # Used to indicate the matching timestamp for the security patch string in PLATFORM_SECURITY_PATCH.
+ ifneq (,$(findstring Darwin,$(UNAME)))
+ PLATFORM_SECURITY_PATCH_TIMESTAMP := $(shell date -jf '%Y-%m-%d %T %Z' '$(PLATFORM_SECURITY_PATCH) 00:00:00 GMT' +%s)
+ else
+ PLATFORM_SECURITY_PATCH_TIMESTAMP := $(shell date -d 'TZ="GMT" $(PLATFORM_SECURITY_PATCH)' +%s)
+ endif
+endif
+.KATI_READONLY := PLATFORM_SECURITY_PATCH_TIMESTAMP
+
ifndef PLATFORM_BASE_OS
# Used to indicate the base os applied to the device.
# Can be an arbitrary string, but must be a single word.