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

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

Issue 1930473002: Revert of Build: disable icf for gcc builds with bundled gold (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/common.gypi ('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 (c) 2013 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2013 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/android/config.gni") 5 import("//build/config/android/config.gni")
6 import("//build/config/chrome_build.gni") 6 import("//build/config/chrome_build.gni")
7 import("//build/config/compiler/compiler.gni") 7 import("//build/config/compiler/compiler.gni")
8 import("//build/config/nacl/config.gni") 8 import("//build/config/nacl/config.gni")
9 import("//build/toolchain/cc_wrapper.gni") 9 import("//build/toolchain/cc_wrapper.gni")
10 import("//build/toolchain/toolchain.gni") 10 import("//build/toolchain/toolchain.gni")
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 # If true, gold linker will save symbol table inside object files. 80 # If true, gold linker will save symbol table inside object files.
81 # This speeds up gdb startup by 60% 81 # This speeds up gdb startup by 60%
82 gdb_index = false 82 gdb_index = false
83 83
84 # If true, optimize for size. Does not affect windows builds. 84 # If true, optimize for size. Does not affect windows builds.
85 # Linux & Mac favor speed over size. 85 # Linux & Mac favor speed over size.
86 # TODO(brettw) it's weird that Mac and desktop Linux are different. We should 86 # TODO(brettw) it's weird that Mac and desktop Linux are different. We should
87 # explore favoring size over speed in this case as well. 87 # explore favoring size over speed in this case as well.
88 optimize_for_size = is_android || is_ios 88 optimize_for_size = is_android || is_ios
89 89
90 # Gold icf level, values are "none", "safe", "all". If value isn't overridden,
91 # default initialization is below.
92 gold_icf_level = ""
93
94 # If this is set to true, or if LLVM_FORCE_HEAD_REVISION is set to 1 90 # If this is set to true, or if LLVM_FORCE_HEAD_REVISION is set to 1
95 # in the environment, we use the revision in the llvm repo to determine 91 # in the environment, we use the revision in the llvm repo to determine
96 # the CLANG_REVISION to use, instead of the version hard-coded into 92 # the CLANG_REVISION to use, instead of the version hard-coded into
97 # //tools/clang/scripts/update.py. This should only be used in 93 # //tools/clang/scripts/update.py. This should only be used in
98 # conjunction with setting LLVM_FORCE_HEAD_REVISION in the 94 # conjunction with setting LLVM_FORCE_HEAD_REVISION in the
99 # environment when `gclient runhooks` is run as well. 95 # environment when `gclient runhooks` is run as well.
100 llvm_force_head_revision = false 96 llvm_force_head_revision = false
101 } 97 }
102 98
103 if (is_clang && !is_nacl) { 99 if (is_clang && !is_nacl) {
(...skipping 13 matching lines...) Expand all
117 } else { 113 } else {
118 gold_path = "" 114 gold_path = ""
119 } 115 }
120 } 116 }
121 117
122 if (use_debug_fission == "default") { 118 if (use_debug_fission == "default") {
123 use_debug_fission = is_debug && !is_win && use_gold && 119 use_debug_fission = is_debug && !is_win && use_gold &&
124 linux_use_bundled_binutils && cc_wrapper == "" 120 linux_use_bundled_binutils && cc_wrapper == ""
125 } 121 }
126 122
127 if (gold_icf_level == "") {
128 if (use_gold && !is_clang) {
129 # Gold doesn't respect section alignment and breaks gcc builds with icf
130 # https://bugs.chromium.org/p/chromium/issues/detail?id=576197
131 gold_icf_level = "none"
132 } else {
133 gold_icf_level = "all"
134 }
135 }
136
137 # default_include_dirs --------------------------------------------------------- 123 # default_include_dirs ---------------------------------------------------------
138 # 124 #
139 # This is a separate config so that third_party code (which would not use the 125 # This is a separate config so that third_party code (which would not use the
140 # source root and might have conflicting versions of some headers) can remove 126 # source root and might have conflicting versions of some headers) can remove
141 # this and specify their own include paths. 127 # this and specify their own include paths.
142 config("default_include_dirs") { 128 config("default_include_dirs") {
143 include_dirs = [ 129 include_dirs = [
144 "//", 130 "//",
145 root_gen_dir, 131 root_gen_dir,
146 ] 132 ]
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 #"-Wl,--threads", 311 #"-Wl,--threads",
326 #"-Wl,--thread-count=4", 312 #"-Wl,--thread-count=4",
327 ] 313 ]
328 314
329 if (gdb_index) { 315 if (gdb_index) {
330 ldflags += [ "-Wl,--gdb-index" ] 316 ldflags += [ "-Wl,--gdb-index" ]
331 } 317 }
332 318
333 if (!using_sanitizer && !(is_android && use_order_profiling)) { 319 if (!using_sanitizer && !(is_android && use_order_profiling)) {
334 # TODO(brettw) common.gypi has this only for target toolset. 320 # TODO(brettw) common.gypi has this only for target toolset.
335 ldflags += [ "-Wl,--icf=${gold_icf_level}" ] 321 ldflags += [ "-Wl,--icf=all" ]
336 } 322 }
337 323
338 # TODO(thestig): Make this flag work with GN. 324 # TODO(thestig): Make this flag work with GN.
339 #if (!is_official_build && !is_chromeos && !(is_asan || is_lsan || is_tsan | | is_msan)) { 325 #if (!is_official_build && !is_chromeos && !(is_asan || is_lsan || is_tsan | | is_msan)) {
340 # ldflags += [ 326 # ldflags += [
341 # "-Wl,--detect-odr-violations", 327 # "-Wl,--detect-odr-violations",
342 # ] 328 # ]
343 #} 329 #}
344 } else if (linux_use_bundled_binutils) { 330 } else if (linux_use_bundled_binutils) {
345 # Gold is the default linker for the bundled binutils so we explicitly 331 # Gold is the default linker for the bundled binutils so we explicitly
(...skipping 1089 matching lines...) Expand 10 before | Expand all | Expand 10 after
1435 1421
1436 if (is_ios || is_mac) { 1422 if (is_ios || is_mac) {
1437 # On Mac and iOS, this enables support for ARC (automatic ref-counting). 1423 # On Mac and iOS, this enables support for ARC (automatic ref-counting).
1438 # See http://clang.llvm.org/docs/AutomaticReferenceCounting.html. 1424 # See http://clang.llvm.org/docs/AutomaticReferenceCounting.html.
1439 config("enable_arc") { 1425 config("enable_arc") {
1440 common_flags = [ "-fobjc-arc" ] 1426 common_flags = [ "-fobjc-arc" ]
1441 cflags_objc = common_flags 1427 cflags_objc = common_flags
1442 cflags_objcc = common_flags 1428 cflags_objcc = common_flags
1443 } 1429 }
1444 } 1430 }
OLDNEW
« no previous file with comments | « build/common.gypi ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698