blob: 4463c024aeda0576d4794035a69eba06b951cc7b [file] [log] [blame]
# Copyright 2020 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# The `linker` global variable indicates which linker is used to build
# binaries, the following values are supported:
#
# - "lld": For the Clang linker
# - "gold": For the Gold linker, used when building with GCC.
# - "": For the default linker associated with the current compiler, e.g.
# this will be the BFD linker when using GCC.
#
if (current_os == "mac") {
# Only the native host linker works for macOS.
linker = ""
} else if (is_gcc) {
# Assume ld.gold is available for any native Linux host, and for any ELF
# cross-compile target. Use Gold for userland, and BFD ld for kernel.
if (current_os == "linux" ||
((current_cpu != host_cpu || current_os != host_os) && !is_kernel &&
current_os != "win")) {
linker = "gold"
} else {
# For GCC on non-ELF hosts, use the system default linker.
linker = ""
}
} else {
# Always use lld with Clang.
linker = "lld"
}