| ############################################################# |
| ## Set up my_pack_module_relocations |
| ## Input variables: |
| ## DISABLE_RELOCATION_PACKER, |
| ## LOCAL_PACK_MODULE_RELOCATIONS*, |
| ## *TARGET_PACK_MODULE_RELOCATIONS, |
| ## LOCAL_MODULE_CLASS, HOST_OS |
| ## LOCAL_IS_HOST_MODULE |
| ## 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 |
| ifeq ($(filter SHARED_LIBRARIES,$(LOCAL_MODULE_CLASS)),) |
| my_pack_module_relocations := false |
| endif |
| |
| ifdef LOCAL_IS_HOST_MODULE |
| # Do not pack relocations on host modules |
| my_pack_module_relocations := false |
| endif |
| |
| # Lld relocation packing cannot be enabled for binaries before Android Pie. |
| ifneq ($(LOCAL_SDK_VERSION),) |
| ifneq ($(LOCAL_SDK_VERSION),current) |
| ifeq ($(call math_lt,$(LOCAL_SDK_VERSION),28),true) |
| my_pack_module_relocations := false |
| endif |
| endif |
| endif |