# 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" ] } }