Jean-Baptiste Queru | 9b4a812 | 2010-02-23 12:36:56 -0800 | [diff] [blame] | 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 | |
The Android Open Source Project | b6c1cf6 | 2008-10-21 07:00:00 -0700 | [diff] [blame] | 17 | # Configuration for Linux on ARM. |
Jean-Baptiste Queru | 9b4a812 | 2010-02-23 12:36:56 -0800 | [diff] [blame] | 18 | # Included by combo/select.mk |
The Android Open Source Project | b6c1cf6 | 2008-10-21 07:00:00 -0700 | [diff] [blame] | 19 | |
David 'Digit' Turner | d53c81d | 2009-05-29 15:34:02 +0200 | [diff] [blame] | 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 |
Elliott Hughes | 4314611 | 2015-08-28 10:31:28 -0700 | [diff] [blame] | 23 | # makefile variable definitions. Their |
David 'Digit' Turner | d53c81d | 2009-05-29 15:34:02 +0200 | [diff] [blame] | 24 | # purpose is to allow module Android.mk files to selectively compile |
| 25 | # different versions of code based upon the funtionality and |
Ben Leslie | e03f023 | 2008-10-30 10:41:09 -0500 | [diff] [blame] | 26 | # instructions available in a given architecture version. |
| 27 | # |
David 'Digit' Turner | d53c81d | 2009-05-29 15:34:02 +0200 | [diff] [blame] | 28 | # The blocks also define specific arch_variant_cflags, which |
Ben Leslie | e03f023 | 2008-10-30 10:41:09 -0500 | [diff] [blame] | 29 | # include defines, and compiler settings for the given architecture |
| 30 | # version. |
| 31 | # |
Isaac Chen | f5af850 | 2017-08-23 10:58:57 +0000 | [diff] [blame] | 32 | |
Haibo Huang | e211f7c | 2018-10-10 14:33:13 -0700 | [diff] [blame] | 33 | KNOWN_ARMv8_CORES := cortex-a53 cortex-a53.a57 cortex-a55 cortex-a73 cortex-a75 cortex-a76 |
Artem Serov | f7dccc6 | 2018-11-22 19:55:32 +0000 | [diff] [blame] | 34 | KNOWN_ARMv8_CORES += kryo kryo385 exynos-m1 exynos-m2 |
Isaac Chen | f5af850 | 2017-08-23 10:58:57 +0000 | [diff] [blame] | 35 | |
Artem Serov | f7dccc6 | 2018-11-22 19:55:32 +0000 | [diff] [blame] | 36 | KNOWN_ARMv82a_CORES := cortex-a55 cortex-a75 kryo385 |
Isaac Lee | ead02eb | 2018-11-13 17:31:28 +0800 | [diff] [blame] | 37 | |
Anton Hansson | be1f9cb | 2019-02-27 17:23:40 +0000 | [diff] [blame] | 38 | ifeq (,$(strip $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT))) |
| 39 | TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT := generic |
| 40 | endif |
| 41 | |
| 42 | # This sanity checks TARGET_2ND_ARCH_VARIANT against the lists above. |
Isaac Lee | ead02eb | 2018-11-13 17:31:28 +0800 | [diff] [blame] | 43 | ifneq (,$(filter $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT), $(KNOWN_ARMv82a_CORES))) |
Anton Hansson | be1f9cb | 2019-02-27 17:23:40 +0000 | [diff] [blame] | 44 | ifeq (,$(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT)) |
Isaac Lee | ead02eb | 2018-11-13 17:31:28 +0800 | [diff] [blame] | 45 | TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT := armv8-2a |
Anton Hansson | be1f9cb | 2019-02-27 17:23:40 +0000 | [diff] [blame] | 46 | else ifneq (armv8-2a,$(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT)) |
| 47 | $(error Incorrect TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT, $(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT). Use armv8-2a instead.) |
Isaac Lee | ead02eb | 2018-11-13 17:31:28 +0800 | [diff] [blame] | 48 | endif |
Isaac Lee | ead02eb | 2018-11-13 17:31:28 +0800 | [diff] [blame] | 49 | else ifneq (,$(filter $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT), $(KNOWN_ARMv8_CORES))) |
Anton Hansson | be1f9cb | 2019-02-27 17:23:40 +0000 | [diff] [blame] | 50 | ifeq (,$(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT)) |
Isaac Chen | f5af850 | 2017-08-23 10:58:57 +0000 | [diff] [blame] | 51 | TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT := armv8-a |
Anton Hansson | be1f9cb | 2019-02-27 17:23:40 +0000 | [diff] [blame] | 52 | else ifneq ($(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT),armv8-a) |
| 53 | $(error Incorrect TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT, $(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT). Use armv8-a instead.) |
Isaac Chen | f5af850 | 2017-08-23 10:58:57 +0000 | [diff] [blame] | 54 | endif |
| 55 | endif |
| 56 | |
Ying Wang | e1d44c3 | 2013-12-27 11:09:36 -0800 | [diff] [blame] | 57 | ifeq ($(strip $(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT)),) |
Anton Hansson | be1f9cb | 2019-02-27 17:23:40 +0000 | [diff] [blame] | 58 | $(error TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT must be set) |
Ben Leslie | e03f023 | 2008-10-30 10:41:09 -0500 | [diff] [blame] | 59 | endif |
David 'Digit' Turner | d53c81d | 2009-05-29 15:34:02 +0200 | [diff] [blame] | 60 | |
Ying Wang | e1d44c3 | 2013-12-27 11:09:36 -0800 | [diff] [blame] | 61 | TARGET_ARCH_SPECIFIC_MAKEFILE := $(BUILD_COMBOS)/arch/$(TARGET_$(combo_2nd_arch_prefix)ARCH)/$(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT).mk |
David 'Digit' Turner | d53c81d | 2009-05-29 15:34:02 +0200 | [diff] [blame] | 62 | ifeq ($(strip $(wildcard $(TARGET_ARCH_SPECIFIC_MAKEFILE))),) |
Anton Hansson | be1f9cb | 2019-02-27 17:23:40 +0000 | [diff] [blame] | 63 | $(error Unknown ARM architecture version: $(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT)) |
Andy McFadden | 8f51a2a | 2009-05-28 12:47:23 -0700 | [diff] [blame] | 64 | endif |
Ben Leslie | e03f023 | 2008-10-30 10:41:09 -0500 | [diff] [blame] | 65 | |
David 'Digit' Turner | d53c81d | 2009-05-29 15:34:02 +0200 | [diff] [blame] | 66 | include $(TARGET_ARCH_SPECIFIC_MAKEFILE) |
Dehao Chen | 25671e1 | 2014-07-23 14:28:58 -0700 | [diff] [blame] | 67 | include $(BUILD_SYSTEM)/combo/fdo.mk |
David 'Digit' Turner | d53c81d | 2009-05-29 15:34:02 +0200 | [diff] [blame] | 68 | |
Shinichiro Hamaji | 0e7587a | 2015-10-09 14:36:04 +0900 | [diff] [blame] | 69 | define $(combo_var_prefix)transform-shared-lib-to-toc |
| 70 | $(call _gen_toc_command_for_elf,$(1),$(2)) |
| 71 | endef |
The Android Open Source Project | b6c1cf6 | 2008-10-21 07:00:00 -0700 | [diff] [blame] | 72 | |
Dmitriy Ivanov | 4c2d1a6 | 2015-04-20 16:59:05 -0700 | [diff] [blame] | 73 | $(combo_2nd_arch_prefix)TARGET_PACK_MODULE_RELOCATIONS := true |
Dimitry Ivanov | 1eca10f | 2015-04-23 04:22:33 +0000 | [diff] [blame] | 74 | |
Dan Albert | e088c0d | 2014-11-13 10:15:46 -0800 | [diff] [blame] | 75 | $(combo_2nd_arch_prefix)TARGET_LINKER := /system/bin/linker |