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

Side by Side Diff: build/toolchain/gcc_toolchain.gni

Issue 2031233002: Rework how MB and GN handle concurrent links. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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
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/nacl/config.gni") 5 import("//build/config/nacl/config.gni")
6 import("//build/config/sanitizers/sanitizers.gni") 6 import("//build/config/sanitizers/sanitizers.gni")
7 import("//build/toolchain/cc_wrapper.gni") 7 import("//build/toolchain/cc_wrapper.gni")
8 import("//build/toolchain/goma.gni") 8 import("//build/toolchain/goma.gni")
9 import("//build/toolchain/toolchain.gni") 9 import("//build/toolchain/toolchain.gni")
10 10
11 # "concurrent_links" is a toolchain variable. By computing it here rather than
12 # inside the toolchain, the exec_script will only get run once rather than
13 # each time the toolchain template is invoked.
14 if (allow_posix_link_time_opt || is_cfi) {
15 concurrent_links_ =
16 exec_script("get_concurrent_links.py", [ "--lto" ], "value")
17 } else {
18 concurrent_links_ = exec_script("get_concurrent_links.py", [], "value")
19 }
20
21 # This template defines a toolchain for something that works like gcc 11 # This template defines a toolchain for something that works like gcc
22 # (including clang). 12 # (including clang).
23 # 13 #
24 # It requires the following variables specifying the executables to run: 14 # It requires the following variables specifying the executables to run:
25 # - ar 15 # - ar
26 # - cc 16 # - cc
27 # - cxx 17 # - cxx
28 # - ld 18 # - ld
29 # and the following which is used in the toolchain_args 19 # and the following which is used in the toolchain_args
30 # - toolchain_cpu (What "current_cpu" should be set to when invoking a 20 # - toolchain_cpu (What "current_cpu" should be set to when invoking a
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 toolchain(target_name) { 101 toolchain(target_name) {
112 assert(defined(invoker.ar), "gcc_toolchain() must specify a \"ar\" value") 102 assert(defined(invoker.ar), "gcc_toolchain() must specify a \"ar\" value")
113 assert(defined(invoker.cc), "gcc_toolchain() must specify a \"cc\" value") 103 assert(defined(invoker.cc), "gcc_toolchain() must specify a \"cc\" value")
114 assert(defined(invoker.cxx), "gcc_toolchain() must specify a \"cxx\" value") 104 assert(defined(invoker.cxx), "gcc_toolchain() must specify a \"cxx\" value")
115 assert(defined(invoker.ld), "gcc_toolchain() must specify a \"ld\" value") 105 assert(defined(invoker.ld), "gcc_toolchain() must specify a \"ld\" value")
116 assert(defined(invoker.toolchain_cpu), 106 assert(defined(invoker.toolchain_cpu),
117 "gcc_toolchain() must specify a \"toolchain_cpu\"") 107 "gcc_toolchain() must specify a \"toolchain_cpu\"")
118 assert(defined(invoker.toolchain_os), 108 assert(defined(invoker.toolchain_os),
119 "gcc_toolchain() must specify a \"toolchain_os\"") 109 "gcc_toolchain() must specify a \"toolchain_os\"")
120 110
121 concurrent_links = concurrent_links_
122
123 if (defined(invoker.cc_wrapper)) { 111 if (defined(invoker.cc_wrapper)) {
124 cc_wrapper = invoker.cc_wrapper 112 cc_wrapper = invoker.cc_wrapper
125 } 113 }
126 if (defined(invoker.use_goma)) { 114 if (defined(invoker.use_goma)) {
127 use_goma = invoker.use_goma 115 use_goma = invoker.use_goma
128 } 116 }
129 if (use_goma) { 117 if (use_goma) {
130 assert(cc_wrapper == "", "Goma and cc_wrapper can't be used together.") 118 assert(cc_wrapper == "", "Goma and cc_wrapper can't be used together.")
131 compiler_prefix = "$goma_dir/gomacc " 119 compiler_prefix = "$goma_dir/gomacc "
132 } else if (cc_wrapper != "") { 120 } else if (cc_wrapper != "") {
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after
526 "toolchain_os", 514 "toolchain_os",
527 "use_gold", 515 "use_gold",
528 "strip", 516 "strip",
529 ]) 517 ])
530 518
531 if (defined(invoker.use_debug_fission)) { 519 if (defined(invoker.use_debug_fission)) {
532 use_debug_fission = invoker.use_debug_fission 520 use_debug_fission = invoker.use_debug_fission
533 } 521 }
534 } 522 }
535 } 523 }
OLDNEW
« no previous file with comments | « .gn ('k') | build/toolchain/mac/BUILD.gn » ('j') | build/toolchain/toolchain.gni » ('J')

Powered by Google App Engine
This is Rietveld 408576698