# 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") {
  # Don't allow visible symbols from libc++ to be re-exported.
  ldflags = [
    "-nodefaultlibs",
    "-lc++",
    "-lc",
    "-lm",
    "-lpthread",
    "-lclang_rt.builtins",
    "-Wl,--exclude-libs=libc++.a",
  ]

  if (is_asan) {
    ldflags += [ "-lrt" ]
  }

  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") ]

    # When using the pulled Debian sysroot with gcc, we have to specify these
    # excplicitly.
    if (dart_use_debian_sysroot && !is_clang) {
      cflags += [
        "-I=/usr/include/c++/4.8",
        "-I=/usr/include/c++/4.8/i486-linux-gnu",
      ]
    }
  }
}

config("executable_config") {
  if (current_cpu != "x86") {
    cflags = [ "-fPIE" ]
    ldflags = [ "-pie" ]
  }
}
