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