mirror of
https://github.com/chromium/crashpad.git
synced 2024-12-27 15:32:10 +08:00
78689cc810
Fixes .so link errors from https://logs.chromium.org/v/?s=fuchsia%2Fbuildbucket%2Fcr-buildbucket.appspot.com%2F8948324805139372352%2F%2B%2Fsteps%2Fbuild%2F0%2Fsteps%2Fbuild_fuchsia%2F0%2Fsteps%2Fninja%2F0%2Fstdout [7302/11459] SOLINK x64-shared/crashpad_snapshot_test_module_small.so FAILED: x64-shared/crashpad_snapshot_test_module_small.so x64-shared/lib.unstripped/crashpad_snapshot_test_module_small.so /b/s/w/ir/kitchen-workdir/cipd/goma/gomacc ../../buildtools/linux-x64/clang/bin/clang++ -shared -Wl,--threads --sysroot=/b/s/w/ir/kitchen-workdir/out/debug-x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot --target=x86_64-fuchsia -march=x86-64 -mcx16 -g -Og -Wl,--icf=all -Wl,--no-undefined -o "x64-shared/lib.unstripped/crashpad_snapshot_test_module_small.so" -Wl,-soname="crashpad_snapshot_test_module_small.so" @"x64-shared/crashpad_snapshot_test_module_small.so.rsp" && ../../buildtools/linux-x64/clang/bin/llvm-objcopy --strip-all "x64-shared/lib.unstripped/crashpad_snapshot_test_module_small.so" "x64-shared/crashpad_snapshot_test_module_small.so" /b/s/w/ir/kitchen-workdir/out/debug-x64/../../buildtools/linux-x64/clang/bin/ld.lld: error: undefined symbol: dirfd >>> referenced by directory_reader_posix.cc:72 (../../third_party/crashpad/util/file/directory_reader_posix.cc:72) >>> libutil.directory_reader_posix.o:(crashpad::DirectoryReader::DirectoryFD()) in archive x64-shared/obj/third_party/crashpad/util/libutil.a /b/s/w/ir/kitchen-workdir/out/debug-x64/../../buildtools/linux-x64/clang/bin/ld.lld: error: undefined symbol: fdio_ioctl >>> referenced by sysinfo.h:32 (../../out/debug-x64/zircon_toolchain/obj/zircon/public/sysroot/sysroot/include/zircon/device/sysinfo.h:32) >>> libutil.koid_utilities.o:(ioctl_sysinfo_get_root_job(int, unsigned int*)) in archive x64-shared/obj/third_party/crashpad/util/libutil.a clang-7.0: error: ld.lld command failed with exit code 1 (use -v to see invocation) Bug: crashpad:196 Change-Id: I50b50a8ba668d75d40e86d863976c386bb382f65 Reviewed-on: https://chromium-review.googlesource.com/1028840 Reviewed-by: Joshua Peraza <jperaza@chromium.org> Commit-Queue: Scott Graham <scottmg@chromium.org>
109 lines
3.4 KiB
Plaintext
109 lines
3.4 KiB
Plaintext
# Copyright 2017 The Crashpad Authors. All rights reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
declare_args() {
|
|
# Determines various flavors of build configuration, and which concrete
|
|
# targets to use for dependencies. Valid values are "standalone", "chromium",
|
|
# and "fuchsia".
|
|
crashpad_dependencies = "standalone"
|
|
|
|
if (defined(is_fuchsia_tree) && is_fuchsia_tree) {
|
|
# Determines various flavors of build configuration, and which concrete
|
|
# targets to use for dependencies. Valid values are "standalone",
|
|
# "chromium", and "fuchsia". Defaulted to "fuchsia" because
|
|
# "is_fuchsia_tree" is set.
|
|
crashpad_dependencies = "fuchsia"
|
|
}
|
|
}
|
|
|
|
assert(
|
|
crashpad_dependencies == "chromium" || crashpad_dependencies == "fuchsia" ||
|
|
crashpad_dependencies == "standalone")
|
|
|
|
crashpad_is_in_chromium = crashpad_dependencies == "chromium"
|
|
crashpad_is_in_fuchsia = crashpad_dependencies == "fuchsia"
|
|
crashpad_is_standalone = crashpad_dependencies == "standalone"
|
|
|
|
if (crashpad_is_in_chromium) {
|
|
crashpad_is_mac = is_mac
|
|
crashpad_is_win = is_win
|
|
crashpad_is_linux = is_linux
|
|
crashpad_is_android = is_android
|
|
crashpad_is_fuchsia = is_fuchsia
|
|
|
|
crashpad_is_posix = is_posix
|
|
|
|
crashpad_is_clang = is_clang
|
|
} else {
|
|
# Both standalone and in Fuchsia tree use mini_chromium, and it's mapped into
|
|
# the same location in both cases.
|
|
import("../third_party/mini_chromium/mini_chromium/build/compiler.gni")
|
|
import("../third_party/mini_chromium/mini_chromium/build/platform.gni")
|
|
crashpad_is_mac = mini_chromium_is_mac
|
|
crashpad_is_win = mini_chromium_is_win
|
|
crashpad_is_linux = mini_chromium_is_linux
|
|
crashpad_is_android = mini_chromium_is_android
|
|
crashpad_is_fuchsia = mini_chromium_is_fuchsia
|
|
|
|
crashpad_is_posix = mini_chromium_is_posix
|
|
|
|
crashpad_is_clang = mini_chromium_is_clang
|
|
}
|
|
|
|
template("crashpad_executable") {
|
|
executable(target_name) {
|
|
forward_variables_from(invoker, "*", [ "configs", "remove_configs" ])
|
|
if (defined(invoker.remove_configs)) {
|
|
configs -= invoker.remove_configs
|
|
}
|
|
|
|
if (defined(invoker.configs)) {
|
|
configs += invoker.configs
|
|
}
|
|
|
|
if (!defined(deps)) {
|
|
deps = []
|
|
}
|
|
|
|
if (crashpad_is_in_chromium) {
|
|
deps += [ "//build/config:exe_and_shlib_deps" ]
|
|
} else if (crashpad_is_in_fuchsia) {
|
|
configs += [ "//build/config/fuchsia:fdio_config" ]
|
|
}
|
|
}
|
|
}
|
|
|
|
template("crashpad_loadable_module") {
|
|
loadable_module(target_name) {
|
|
forward_variables_from(invoker, "*", [ "configs", "remove_configs" ])
|
|
if (defined(invoker.remove_configs)) {
|
|
configs -= invoker.remove_configs
|
|
}
|
|
|
|
if (defined(invoker.configs)) {
|
|
configs += invoker.configs
|
|
}
|
|
|
|
if (!defined(deps)) {
|
|
deps = []
|
|
}
|
|
|
|
if (crashpad_is_in_chromium) {
|
|
deps += [ "//build/config:exe_and_shlib_deps" ]
|
|
} else if (crashpad_is_in_fuchsia) {
|
|
configs += [ "//build/config/fuchsia:fdio_config" ]
|
|
}
|
|
}
|
|
}
|