blob: ac81ac075ec34f3e31134f31bcbff66cf1e72868 [file] [log] [blame]
# Copyright (c) 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/sysroot.gni")
config("sdk") {
ldflags = []
cflags = []
if (is_clang) {
# Don't allow visible symbols from libc++ to be re-exported.
ldflags += [ "-Wl,--exclude-libs=libc++.a" ]
}
# Explicitly use static linking for libstdc++ and libgcc to minimize
# dependencies.
if (!use_flutter_cxx) {
ldflags += [
"-static-libgcc",
"-static-libstdc++",
]
}
if (sysroot != "") {
cflags += [ "--sysroot=" + sysroot ]
ldflags += [ "--sysroot=" + sysroot ]
# Need to get some linker flags out of the sysroot.
ldflags += [ exec_script("sysroot_ld_path.py",
[
rebase_path("//build/linux/sysroot_ld_path.sh",
root_build_dir),
sysroot,
],
"value") ]
if (dart_sysroot == "alpine") {
# When using the alpine sysroot, prefers lld as linker.
if (is_clang) {
ldflags += [ "-fuse-ld=lld" ]
}
}
# When using the pulled Debian sysroot with gcc, we have to specify these
# explicitly.
if (dart_sysroot == "debian" && !is_clang) {
cflags += [
"-I=/usr/include/c++/4.8",
"-I=/usr/include/c++/4.8/i486-linux-gnu",
]
}
}
# Enable Large File Support extension (LFS)
cflags += [
"-D_FILE_OFFSET_BITS=64",
"-D_LARGEFILE_SOURCE",
"-D_LARGEFILE64_SOURCE",
]
}
config("executable_config") {
# GDB cannot find the executable's mapping in QEMU when PIE is enabled.
if (is_qemu) {
cflags = [ "-fno-pie" ]
ldflags = [ "-no-pie" ]
} else if (current_cpu != "x86") {
cflags = [ "-fPIE" ]
ldflags = [ "-pie" ]
}
}