#############################################################
## 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
