xref: /aosp_15_r20/external/cronet/build/config/fuchsia/BUILD.gn (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 Workerimport("//build/config/clang/clang.gni")
6*6777b538SAndroid Build Coastguard Workerimport("//build/config/fuchsia/generate_runner_scripts.gni")
7*6777b538SAndroid Build Coastguard Workerimport("//build/config/fuchsia/gn_configs.gni")
8*6777b538SAndroid Build Coastguard Worker
9*6777b538SAndroid Build Coastguard Workerassert(is_fuchsia)
10*6777b538SAndroid Build Coastguard Workerassert(!is_posix, "Fuchsia is not POSIX.")
11*6777b538SAndroid Build Coastguard Worker
12*6777b538SAndroid Build Coastguard Workerconfig("compiler") {
13*6777b538SAndroid Build Coastguard Worker  configs = [ "//third_party/fuchsia-gn-sdk/src/config:compiler" ]
14*6777b538SAndroid Build Coastguard Worker
15*6777b538SAndroid Build Coastguard Worker  # TODO(https://crbug.com/706592): The stack defaults to 256k on Fuchsia (see
16*6777b538SAndroid Build Coastguard Worker  # https://fuchsia.googlesource.com/zircon/+/master/system/private/zircon/stack.h#9),
17*6777b538SAndroid Build Coastguard Worker  # but on other platforms it's much higher, so a variety of code assumes more
18*6777b538SAndroid Build Coastguard Worker  # will be available. Raise to 8M which matches e.g. macOS.
19*6777b538SAndroid Build Coastguard Worker  ldflags = [
20*6777b538SAndroid Build Coastguard Worker    "-Wl,-z,stack-size=0x800000",
21*6777b538SAndroid Build Coastguard Worker    "-fexperimental-relative-c++-abi-vtables",
22*6777b538SAndroid Build Coastguard Worker  ]
23*6777b538SAndroid Build Coastguard Worker  cflags_cc = [ "-fexperimental-relative-c++-abi-vtables" ]
24*6777b538SAndroid Build Coastguard Worker}
25*6777b538SAndroid Build Coastguard Worker
26*6777b538SAndroid Build Coastguard Worker# Files required to run on Fuchsia on isolated swarming clients.
27*6777b538SAndroid Build Coastguard Workergroup("deployment_resources") {
28*6777b538SAndroid Build Coastguard Worker  data = [
29*6777b538SAndroid Build Coastguard Worker    "//build/fuchsia/",
30*6777b538SAndroid Build Coastguard Worker    "//build/util/lib/",
31*6777b538SAndroid Build Coastguard Worker    "//third_party/fuchsia-sdk/sdk/.build-id/",
32*6777b538SAndroid Build Coastguard Worker    "//third_party/fuchsia-sdk/sdk/meta/manifest.json",
33*6777b538SAndroid Build Coastguard Worker    "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/ffx",
34*6777b538SAndroid Build Coastguard Worker    "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/ffx-meta.json",
35*6777b538SAndroid Build Coastguard Worker    "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/fvm",
36*6777b538SAndroid Build Coastguard Worker    "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/fvm-meta.json",
37*6777b538SAndroid Build Coastguard Worker    "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/merkleroot",
38*6777b538SAndroid Build Coastguard Worker    "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/merkleroot-meta.json",
39*6777b538SAndroid Build Coastguard Worker    "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/pm",
40*6777b538SAndroid Build Coastguard Worker    "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/pm-meta.json",
41*6777b538SAndroid Build Coastguard Worker    "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/symbolizer",
42*6777b538SAndroid Build Coastguard Worker    "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/symbolizer-meta.json",
43*6777b538SAndroid Build Coastguard Worker    "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/zbi",
44*6777b538SAndroid Build Coastguard Worker    "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/zbi-meta.json",
45*6777b538SAndroid Build Coastguard Worker  ]
46*6777b538SAndroid Build Coastguard Worker
47*6777b538SAndroid Build Coastguard Worker  if (fuchsia_additional_boot_images == []) {
48*6777b538SAndroid Build Coastguard Worker    data += [ "${boot_image_root}" ]
49*6777b538SAndroid Build Coastguard Worker  }
50*6777b538SAndroid Build Coastguard Worker
51*6777b538SAndroid Build Coastguard Worker  foreach(fuchsia_additional_boot_image, fuchsia_additional_boot_images) {
52*6777b538SAndroid Build Coastguard Worker    data += [ "${fuchsia_additional_boot_image}/" ]
53*6777b538SAndroid Build Coastguard Worker  }
54*6777b538SAndroid Build Coastguard Worker
55*6777b538SAndroid Build Coastguard Worker  if (test_isolate_uses_emulator) {
56*6777b538SAndroid Build Coastguard Worker    data += [
57*6777b538SAndroid Build Coastguard Worker      "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/ffx_tools/ffx-emu",
58*6777b538SAndroid Build Coastguard Worker      "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/ffx_tools/ffx-emu.json",
59*6777b538SAndroid Build Coastguard Worker      "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/ffx_tools/ffx-emu-meta.json",
60*6777b538SAndroid Build Coastguard Worker    ]
61*6777b538SAndroid Build Coastguard Worker    if (test_host_cpu == "x64") {
62*6777b538SAndroid Build Coastguard Worker      data += [
63*6777b538SAndroid Build Coastguard Worker        "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/aemu_internal",
64*6777b538SAndroid Build Coastguard Worker        "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/aemu_internal-meta.json",
65*6777b538SAndroid Build Coastguard Worker        "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/qemu_internal",
66*6777b538SAndroid Build Coastguard Worker        "//third_party/fuchsia-sdk/sdk/tools/${test_host_cpu}/qemu_internal-meta.json",
67*6777b538SAndroid Build Coastguard Worker      ]
68*6777b538SAndroid Build Coastguard Worker    } else if (test_host_cpu == "arm64") {
69*6777b538SAndroid Build Coastguard Worker      data += [
70*6777b538SAndroid Build Coastguard Worker        "//third_party/qemu-${host_os}-${test_host_cpu}/",
71*6777b538SAndroid Build Coastguard Worker
72*6777b538SAndroid Build Coastguard Worker        # TODO(https://crbug.com/1336776): remove when ffx has native support
73*6777b538SAndroid Build Coastguard Worker        # for starting emulator on arm64 host.
74*6777b538SAndroid Build Coastguard Worker        "//third_party/fuchsia-sdk/sdk/tools/x64/qemu_internal-meta.json",
75*6777b538SAndroid Build Coastguard Worker      ]
76*6777b538SAndroid Build Coastguard Worker    }
77*6777b538SAndroid Build Coastguard Worker  }
78*6777b538SAndroid Build Coastguard Worker}
79*6777b538SAndroid Build Coastguard Worker
80*6777b538SAndroid Build Coastguard Worker# Copy the loader to place it at the expected path in the final package.
81*6777b538SAndroid Build Coastguard Workercopy("sysroot_asan_libs") {
82*6777b538SAndroid Build Coastguard Worker  sources = [ "${fuchsia_arch_root}/sysroot/dist/lib/asan/ld.so.1" ]
83*6777b538SAndroid Build Coastguard Worker  outputs = [ "${root_out_dir}/lib/asan/{{source_file_part}}" ]
84*6777b538SAndroid Build Coastguard Worker}
85*6777b538SAndroid Build Coastguard Worker
86*6777b538SAndroid Build Coastguard Worker# Copy the loader to place it at the expected path in the final package.
87*6777b538SAndroid Build Coastguard Workercopy("sysroot_asan_runtime_libs") {
88*6777b538SAndroid Build Coastguard Worker  sources = [ "$clang_base_path/lib/clang/$clang_version/lib/x86_64-unknown-fuchsia/libclang_rt.asan.so" ]
89*6777b538SAndroid Build Coastguard Worker  outputs = [ "${root_out_dir}/lib/{{source_file_part}}" ]
90*6777b538SAndroid Build Coastguard Worker}
91*6777b538SAndroid Build Coastguard Worker
92*6777b538SAndroid Build Coastguard Worker# This adds the runtime deps for Fuchsia ASAN builds.
93*6777b538SAndroid Build Coastguard Workergroup("asan_runtime_library") {
94*6777b538SAndroid Build Coastguard Worker  data_deps = [
95*6777b538SAndroid Build Coastguard Worker    ":sysroot_asan_libs",
96*6777b538SAndroid Build Coastguard Worker    ":sysroot_asan_runtime_libs",
97*6777b538SAndroid Build Coastguard Worker  ]
98*6777b538SAndroid Build Coastguard Worker}
99*6777b538SAndroid Build Coastguard Worker
100*6777b538SAndroid Build Coastguard Worker# rustc gives the linker (clang++) "-pie" directives. clang++ complains on
101*6777b538SAndroid Build Coastguard Worker# Fuchsia that these don't make any sense. On Fuchsia alone, for Rust-linked
102*6777b538SAndroid Build Coastguard Worker# targets only, disable these warnings.
103*6777b538SAndroid Build Coastguard Workerconfig("rustc_no_pie_warning") {
104*6777b538SAndroid Build Coastguard Worker  ldflags = [ "-Wno-unused-command-line-argument" ]
105*6777b538SAndroid Build Coastguard Worker}
106