github.com/westcoastroms/westcoastroms-build@v0.0.0-20190928114312-2350e5a73030/build/make/core/combo/TARGET_linux-arm.mk (about)

     1  #
     2  # Copyright (C) 2006 The Android Open Source Project
     3  #
     4  # Licensed under the Apache License, Version 2.0 (the "License");
     5  # you may not use this file except in compliance with the License.
     6  # You may obtain a copy of the License at
     7  #
     8  #      http://www.apache.org/licenses/LICENSE-2.0
     9  #
    10  # Unless required by applicable law or agreed to in writing, software
    11  # distributed under the License is distributed on an "AS IS" BASIS,
    12  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  # See the License for the specific language governing permissions and
    14  # limitations under the License.
    15  #
    16  
    17  # Configuration for Linux on ARM.
    18  # Included by combo/select.mk
    19  
    20  # You can set TARGET_ARCH_VARIANT to use an arch version other
    21  # than ARMv5TE. Each value should correspond to a file named
    22  # $(BUILD_COMBOS)/arch/<name>.mk which must contain
    23  # makefile variable definitions. Their
    24  # purpose is to allow module Android.mk files to selectively compile
    25  # different versions of code based upon the funtionality and
    26  # instructions available in a given architecture version.
    27  #
    28  # The blocks also define specific arch_variant_cflags, which
    29  # include defines, and compiler settings for the given architecture
    30  # version.
    31  #
    32  ifeq ($(strip $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT)),)
    33  TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT := generic
    34  endif
    35  
    36  KNOWN_ARMv8_CORES := cortex-a53 cortex-a53.a57 cortex-a55 cortex-a73 cortex-a75
    37  KNOWN_ARMv8_CORES += kryo denver64 exynos-m1 exynos-m2
    38  
    39  # Many devices (incorrectly) use armv7-a-neon as the 2nd architecture variant
    40  # for cores that implement armv8-a ISAs. The following sets it to armv8-a.
    41  ifneq (,$(filter $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT), $(KNOWN_ARMv8_CORES)))
    42    ifneq ($(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT),armv8-a)
    43      $(warning $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT) is armv8-a.)
    44      ifneq (,$(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT))
    45        $(warning TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT, $(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT), ignored! Use armv8-a instead.)
    46      endif
    47      # Overwrite TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT
    48      TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT := armv8-a
    49    endif
    50  endif
    51  
    52  ifeq ($(strip $(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT)),)
    53  $(error TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT must be set)
    54  endif
    55  
    56  TARGET_ARCH_SPECIFIC_MAKEFILE := $(BUILD_COMBOS)/arch/$(TARGET_$(combo_2nd_arch_prefix)ARCH)/$(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT).mk
    57  ifeq ($(strip $(wildcard $(TARGET_ARCH_SPECIFIC_MAKEFILE))),)
    58  $(error Unknown ARM architecture version: $(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT))
    59  endif
    60  
    61  include $(TARGET_ARCH_SPECIFIC_MAKEFILE)
    62  include $(BUILD_SYSTEM)/combo/fdo.mk
    63  
    64  define $(combo_var_prefix)transform-shared-lib-to-toc
    65  $(call _gen_toc_command_for_elf,$(1),$(2))
    66  endef
    67  
    68  $(combo_2nd_arch_prefix)TARGET_PACK_MODULE_RELOCATIONS := true
    69  
    70  $(combo_2nd_arch_prefix)TARGET_LINKER := /system/bin/linker