xref: /aosp_15_r20/external/cronet/build/config/android/abi.gni (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Copyright 2017 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Worker# Logic separated out from config.gni so that it can be used by compiler.gni
6*6777b538SAndroid Build Coastguard Worker# without introducing a circular dependency.
7*6777b538SAndroid Build Coastguard Worker
8*6777b538SAndroid Build Coastguard Worker# NOTE: Because Chrome OS builds may depend on targets built with the Android
9*6777b538SAndroid Build Coastguard Worker# toolchain, this GNI file may be read and processed from within Chrome OS
10*6777b538SAndroid Build Coastguard Worker# toolchains. Checking |is_android| here would therefore be too restrictive.
11*6777b538SAndroid Build Coastguard Workerassert(is_android || is_chromeos)
12*6777b538SAndroid Build Coastguard Worker
13*6777b538SAndroid Build Coastguard Workerdeclare_args() {
14*6777b538SAndroid Build Coastguard Worker  # Adds intrumentation to each function. Writes a file with the order that
15*6777b538SAndroid Build Coastguard Worker  # functions are called at startup.
16*6777b538SAndroid Build Coastguard Worker  use_order_profiling = false
17*6777b538SAndroid Build Coastguard Worker
18*6777b538SAndroid Build Coastguard Worker  # Only effective if use_order_profiling = true. When this is true,
19*6777b538SAndroid Build Coastguard Worker  # instrumentation switches from startup profiling after a delay, and
20*6777b538SAndroid Build Coastguard Worker  # then waits for a devtools memory dump request to dump all
21*6777b538SAndroid Build Coastguard Worker  # profiling information. When false, the same delay is used to switch from
22*6777b538SAndroid Build Coastguard Worker  # startup, and then after a second delay all profiling information is dumped.
23*6777b538SAndroid Build Coastguard Worker  # See base::android::orderfile::StartDelayedDump for more information.
24*6777b538SAndroid Build Coastguard Worker  devtools_instrumentation_dumping = false
25*6777b538SAndroid Build Coastguard Worker
26*6777b538SAndroid Build Coastguard Worker  # Build additional browser splits with HWASAN instrumentation enabled.
27*6777b538SAndroid Build Coastguard Worker  build_hwasan_splits = false
28*6777b538SAndroid Build Coastguard Worker
29*6777b538SAndroid Build Coastguard Worker  # This configuration has minimal coverage.
30*6777b538SAndroid Build Coastguard Worker  # Forces all APKs/bundles to be 64-bit only to improve build speed
31*6777b538SAndroid Build Coastguard Worker  # (no need to also build 32-bit library).
32*6777b538SAndroid Build Coastguard Worker  skip_secondary_abi_for_cq = false
33*6777b538SAndroid Build Coastguard Worker}
34*6777b538SAndroid Build Coastguard Worker
35*6777b538SAndroid Build Coastguard Workerassert(!devtools_instrumentation_dumping || use_order_profiling,
36*6777b538SAndroid Build Coastguard Worker       "devtools_instrumentation_dumping requires use_order_profiling")
37*6777b538SAndroid Build Coastguard Worker
38*6777b538SAndroid Build Coastguard Workerif (current_cpu == "x86") {
39*6777b538SAndroid Build Coastguard Worker  android_app_abi = "x86"
40*6777b538SAndroid Build Coastguard Worker  android_abi_target = "i686-linux-android"
41*6777b538SAndroid Build Coastguard Worker  sanitizer_arch = "i686"
42*6777b538SAndroid Build Coastguard Worker} else if (current_cpu == "arm") {
43*6777b538SAndroid Build Coastguard Worker  import("//build/config/arm.gni")
44*6777b538SAndroid Build Coastguard Worker  if (arm_version < 7) {
45*6777b538SAndroid Build Coastguard Worker    android_app_abi = "armeabi"
46*6777b538SAndroid Build Coastguard Worker  } else {
47*6777b538SAndroid Build Coastguard Worker    android_app_abi = "armeabi-v7a"
48*6777b538SAndroid Build Coastguard Worker  }
49*6777b538SAndroid Build Coastguard Worker  android_abi_target = "arm-linux-androideabi"
50*6777b538SAndroid Build Coastguard Worker  sanitizer_arch = "arm"
51*6777b538SAndroid Build Coastguard Worker} else if (current_cpu == "mipsel") {
52*6777b538SAndroid Build Coastguard Worker  android_app_abi = "mips"
53*6777b538SAndroid Build Coastguard Worker  android_abi_target = "mipsel-linux-android"
54*6777b538SAndroid Build Coastguard Worker} else if (current_cpu == "x64") {
55*6777b538SAndroid Build Coastguard Worker  android_app_abi = "x86_64"
56*6777b538SAndroid Build Coastguard Worker  android_abi_target = "x86_64-linux-android"
57*6777b538SAndroid Build Coastguard Worker  sanitizer_arch = "x86_64"
58*6777b538SAndroid Build Coastguard Worker} else if (current_cpu == "arm64") {
59*6777b538SAndroid Build Coastguard Worker  android_app_abi = "arm64-v8a"
60*6777b538SAndroid Build Coastguard Worker  android_abi_target = "aarch64-linux-android"
61*6777b538SAndroid Build Coastguard Worker  sanitizer_arch = "aarch64"
62*6777b538SAndroid Build Coastguard Worker} else if (current_cpu == "mips64el") {
63*6777b538SAndroid Build Coastguard Worker  android_app_abi = "mips64"
64*6777b538SAndroid Build Coastguard Worker
65*6777b538SAndroid Build Coastguard Worker  # Place holder for mips64 support, not tested.
66*6777b538SAndroid Build Coastguard Worker  android_abi_target = "mips64el-linux-android"
67*6777b538SAndroid Build Coastguard Worker} else if (current_cpu == "riscv64") {
68*6777b538SAndroid Build Coastguard Worker  android_app_abi = "riscv64"
69*6777b538SAndroid Build Coastguard Worker
70*6777b538SAndroid Build Coastguard Worker  # Place holder for riscv64 support, not tested.
71*6777b538SAndroid Build Coastguard Worker  android_abi_target = "riscv64-linux-android"
72*6777b538SAndroid Build Coastguard Worker  sanitizer_arch = "riscv64"
73*6777b538SAndroid Build Coastguard Worker} else {
74*6777b538SAndroid Build Coastguard Worker  assert(false, "Unknown Android ABI: " + current_cpu)
75*6777b538SAndroid Build Coastguard Worker}
76*6777b538SAndroid Build Coastguard Worker
77*6777b538SAndroid Build Coastguard Workerif (target_cpu == "arm64" || target_cpu == "x64" || target_cpu == "mips64el" ||
78*6777b538SAndroid Build Coastguard Worker    target_cpu == "riscv64") {
79*6777b538SAndroid Build Coastguard Worker  android_64bit_target_cpu = true
80*6777b538SAndroid Build Coastguard Worker} else if (target_cpu == "arm" || target_cpu == "x86" ||
81*6777b538SAndroid Build Coastguard Worker           target_cpu == "mipsel") {
82*6777b538SAndroid Build Coastguard Worker  android_64bit_target_cpu = false
83*6777b538SAndroid Build Coastguard Worker} else {
84*6777b538SAndroid Build Coastguard Worker  assert(false, "Unknown target CPU: $target_cpu")
85*6777b538SAndroid Build Coastguard Worker}
86*6777b538SAndroid Build Coastguard Worker
87*6777b538SAndroid Build Coastguard Workerandroid_64bit_current_cpu = current_cpu == "arm64" || target_cpu == "x64" ||
88*6777b538SAndroid Build Coastguard Worker                            target_cpu == "mips64el" || current_cpu == "riscv64"
89*6777b538SAndroid Build Coastguard Worker
90*6777b538SAndroid Build Coastguard Worker# Do not define android_secondary_abi_cpu or android_app_secondary_abi for
91*6777b538SAndroid Build Coastguard Worker# target_cpu's that are 32-bit-only or 64-bit-only, as they are not used. The
92*6777b538SAndroid Build Coastguard Worker# presence of this variable may be used in conjunction with android_64bit_target_cpu
93*6777b538SAndroid Build Coastguard Worker# to identify target_cpu's that are 32-bit-only or 64-bit-only.
94*6777b538SAndroid Build Coastguard Workerif (target_cpu == "arm64") {
95*6777b538SAndroid Build Coastguard Worker  android_secondary_abi_cpu = "arm"
96*6777b538SAndroid Build Coastguard Worker  android_app_secondary_abi = "armeabi-v7a"
97*6777b538SAndroid Build Coastguard Worker} else if (target_cpu == "x64") {
98*6777b538SAndroid Build Coastguard Worker  android_secondary_abi_cpu = "x86"
99*6777b538SAndroid Build Coastguard Worker  android_app_secondary_abi = "x86"
100*6777b538SAndroid Build Coastguard Worker} else if (target_cpu == "mips64el") {
101*6777b538SAndroid Build Coastguard Worker  android_secondary_abi_cpu = "mipsel"
102*6777b538SAndroid Build Coastguard Worker  android_app_secondary_abi = "mips"
103*6777b538SAndroid Build Coastguard Worker}
104*6777b538SAndroid Build Coastguard Worker
105*6777b538SAndroid Build Coastguard Workerif (defined(android_secondary_abi_cpu)) {
106*6777b538SAndroid Build Coastguard Worker  android_secondary_abi_toolchain =
107*6777b538SAndroid Build Coastguard Worker      "//build/toolchain/android:android_clang_${android_secondary_abi_cpu}"
108*6777b538SAndroid Build Coastguard Worker}
109