# Copyright 2014 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.

# This config causes functions not to be automatically exported from shared
# libraries. By default, all symbols are exported but this means there are
# lots of exports that slow everything down. In general we explicitly mark
# which functiosn we want to export from components.
#
# Some third_party code assumes all functions are exported so this is separated
# into its own config so such libraries can remove this config to make symbols
# public again.
#
# See http://gcc.gnu.org/wiki/Visibility
config("symbol_visibility_hidden") {
  # Note that -fvisibility-inlines-hidden is set globally in the compiler
  # config since that can almost always be applied.
  cflags = [ "-fvisibility=hidden" ]
}

# Settings for executables and shared libraries.
config("executable_ldconfig") {
  if (is_android) {
    ldflags = [
      "-Bdynamic",
      "-Wl,-z,nocopyreloc",
    ]
  } else {
    # Android doesn't support rpath.
    ldflags = [
      # Want to pass "\$". GN will re-escape as required for ninja.
      "-Wl,-rpath=\$ORIGIN/",
      "-Wl,-rpath-link=",

      # Newer binutils don't set DT_RPATH unless you disable "new" dtags
      # and the new DT_RUNPATH doesn't work without --no-as-needed flag.
      "-Wl,--disable-new-dtags",
    ]
  }
}

config("no_exceptions") {
  no_exceptions_flags = [ "-fno-exceptions" ]
  cflags_cc = no_exceptions_flags
  cflags_objcc = no_exceptions_flags
}
