Index: build/config/gcc/BUILD.gn |
diff --git a/build/config/gcc/BUILD.gn b/build/config/gcc/BUILD.gn |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b88ba83e06d79d9c018a9e9328100342c2e3f04b |
--- /dev/null |
+++ b/build/config/gcc/BUILD.gn |
@@ -0,0 +1,19 @@ |
+# 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" ] |
+} |