Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1401)

Side by Side Diff: build/config/gcc/BUILD.gn

Issue 1979043002: Revert of 👻 Merge android's use_gold settings with the main use_gold GN arg logic (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « build/config/compiler/compiler.gni ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import("//build/config/compiler/compiler.gni")
6 import("//build/config/sanitizers/sanitizers.gni") 5 import("//build/config/sanitizers/sanitizers.gni")
7 import("//build/config/sysroot.gni")
8 import("//build/toolchain/toolchain.gni") 6 import("//build/toolchain/toolchain.gni")
9 7
10 # This config causes functions not to be automatically exported from shared 8 # This config causes functions not to be automatically exported from shared
11 # libraries. By default, all symbols are exported but this means there are 9 # libraries. By default, all symbols are exported but this means there are
12 # lots of exports that slow everything down. In general we explicitly mark 10 # lots of exports that slow everything down. In general we explicitly mark
13 # which functiosn we want to export from components. 11 # which functiosn we want to export from components.
14 # 12 #
15 # Some third_party code assumes all functions are exported so this is separated 13 # Some third_party code assumes all functions are exported so this is separated
16 # into its own config so such libraries can remove this config to make symbols 14 # into its own config so such libraries can remove this config to make symbols
17 # public again. 15 # public again.
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 ldflags = [ 62 ldflags = [
65 # Want to pass "\$". GN will re-escape as required for ninja. 63 # Want to pass "\$". GN will re-escape as required for ninja.
66 "-Wl,-rpath=\$ORIGIN/${rpath_link}", 64 "-Wl,-rpath=\$ORIGIN/${rpath_link}",
67 "-Wl,-rpath-link=${rpath_link}", 65 "-Wl,-rpath-link=${rpath_link}",
68 ] 66 ]
69 } 67 }
70 } 68 }
71 69
72 # Settings for executables. 70 # Settings for executables.
73 config("executable_ldconfig") { 71 config("executable_ldconfig") {
74 ldflags = []
75 if (is_android) { 72 if (is_android) {
76 ldflags += [ 73 ldflags = [
77 "-Bdynamic", 74 "-Bdynamic",
78 "-Wl,-z,nocopyreloc", 75 "-Wl,-z,nocopyreloc",
79 ] 76 ]
80 } else { 77 } else {
81 # See the rpath_for... config above for why this is necessary for component 78 # See the rpath_for... config above for why this is necessary for component
82 # builds. Sanitizers use a custom libc++ where this is also necessary. 79 # builds. Sanitizers use a custom libc++ where this is also necessary.
83 if (is_component_build || using_sanitizer) { 80 if (is_component_build || using_sanitizer) {
84 configs = [ ":rpath_for_built_shared_libraries" ] 81 configs = [ ":rpath_for_built_shared_libraries" ]
85 } 82 }
86 if (current_cpu == "mipsel") {
87 ldflags += [ "-pie" ]
88 }
89 }
90 83
91 if (!is_android || !use_gold) {
92 # Find the path containing shared libraries for this toolchain 84 # Find the path containing shared libraries for this toolchain
93 # relative to the build directory. ${root_out_dir} will be a 85 # relative to the build directory. ${root_out_dir} will be a
94 # subdirectory of ${root_build_dir} when cross compiling. 86 # subdirectory of ${root_build_dir} when cross compiling.
95 _rpath_link = rebase_path(root_out_dir, root_build_dir) 87 rebased_out_dir = rebase_path(root_out_dir, root_build_dir)
96 if (shlib_subdir != ".") { 88 if (shlib_subdir != ".") {
97 _rpath_link += "/$shlib_subdir" 89 rpath_link = "${rebased_out_dir}/${shlib_subdir}"
98 } 90 } else {
99 if (is_android) { 91 rpath_link = rebased_out_dir
100 _rebased_sysroot = rebase_path(sysroot, root_build_dir)
101 _rpath_link += ":$_rebased_sysroot/usr/lib"
102 } 92 }
103 93
104 ldflags += [ 94 ldflags = [
105 "-Wl,-rpath-link=$_rpath_link", 95 "-Wl,-rpath-link=${rpath_link}",
106 96
107 # TODO(GYP): Do we need a check on the binutils version here? 97 # TODO(GYP): Do we need a check on the binutils version here?
108 # 98 #
109 # Newer binutils don't set DT_RPATH unless you disable "new" dtags 99 # Newer binutils don't set DT_RPATH unless you disable "new" dtags
110 # and the new DT_RUNPATH doesn't work without --no-as-needed flag. 100 # and the new DT_RUNPATH doesn't work without --no-as-needed flag.
111 "-Wl,--disable-new-dtags", 101 "-Wl,--disable-new-dtags",
112 ] 102 ]
103 if (current_cpu == "mipsel") {
104 ldflags += [ "-pie" ]
105 }
113 } 106 }
114 } 107 }
115 108
116 config("no_exceptions") { 109 config("no_exceptions") {
117 cflags_cc = [ "-fno-exceptions" ] 110 cflags_cc = [ "-fno-exceptions" ]
118 cflags_objcc = cflags_cc 111 cflags_objcc = cflags_cc
119 } 112 }
OLDNEW
« no previous file with comments | « build/config/compiler/compiler.gni ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698