diff --git a/core/dex_preopt_libart_boot.mk b/core/dex_preopt_libart_boot.mk index 620b464354..0714c73301 100644 --- a/core/dex_preopt_libart_boot.mk +++ b/core/dex_preopt_libart_boot.mk @@ -32,6 +32,11 @@ ifneq ($(PRODUCT_DEX_PREOPT_IMAGE_IN_DATA),true) $(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_INSTALLED_IMAGE := $(PRODUCT_OUT)$($(my_2nd_arch_prefix)LIBART_BOOT_IMAGE_FILENAME) endif +# Compile boot.oat as position-independent code if WITH_DEXPREOPT_PIC=true +ifeq (true,$(WITH_DEXPREOPT_PIC)) + PRODUCT_DEX_PREOPT_BOOT_FLAGS += --compile-pic +endif + # The rule to install boot.art and boot.oat $($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_INSTALLED_IMAGE) : $($(my_2nd_arch_prefix)DEFAULT_DEX_PREOPT_BUILT_IMAGE_FILENAME) | $(ACP) $(call copy-file-to-target) diff --git a/core/dex_preopt_odex_install.mk b/core/dex_preopt_odex_install.mk index 90ae08fd01..cb38261abe 100644 --- a/core/dex_preopt_odex_install.mk +++ b/core/dex_preopt_odex_install.mk @@ -105,6 +105,12 @@ ifndef LOCAL_DEX_PREOPT_FLAGS LOCAL_DEX_PREOPT_FLAGS := $(PRODUCT_DEX_PREOPT_DEFAULT_FLAGS) endif endif + +# Compile apps with position-independent code if WITH_DEXPREOPT_PIC=true +ifeq (true,$(WITH_DEXPREOPT_PIC)) + LOCAL_DEX_PREOPT_FLAGS += --compile-pic +endif + $(built_odex): PRIVATE_DEX_PREOPT_FLAGS := $(LOCAL_DEX_PREOPT_FLAGS) # Use pattern rule - we may have multiple installed odex files.