OLD | NEW |
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/sanitizers/sanitizers.gni") |
5 import("//build/toolchain/toolchain.gni") | 6 import("//build/toolchain/toolchain.gni") |
6 | 7 |
7 # This value will be inherited in the toolchain below. | 8 # This value will be inherited in the toolchain below. |
8 concurrent_links = exec_script("get_concurrent_links.py", [], "value") | 9 concurrent_links = exec_script("get_concurrent_links.py", [], "value") |
9 | 10 |
10 # This template defines a toolchain for something that works like gcc | 11 # This template defines a toolchain for something that works like gcc |
11 # (including clang). | 12 # (including clang). |
12 # | 13 # |
13 # It requires the following variables specifying the executables to run: | 14 # It requires the following variables specifying the executables to run: |
14 # - cc | 15 # - cc |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
166 command = "$cc -MMD -MF $depfile ${rebuild_string}{{defines}} {{include_di
rs}} {{cflags}} {{cflags_c}} -c {{source}} -o {{output}}" | 167 command = "$cc -MMD -MF $depfile ${rebuild_string}{{defines}} {{include_di
rs}} {{cflags}} {{cflags_c}} -c {{source}} -o {{output}}" |
167 depsformat = "gcc" | 168 depsformat = "gcc" |
168 description = "ASM {{output}}" | 169 description = "ASM {{output}}" |
169 outputs = [ | 170 outputs = [ |
170 "{{target_out_dir}}/{{target_output_name}}/{{source_name_part}}.o", | 171 "{{target_out_dir}}/{{target_output_name}}/{{source_name_part}}.o", |
171 ] | 172 ] |
172 } | 173 } |
173 | 174 |
174 tool("alink") { | 175 tool("alink") { |
175 rspfile = "{{output}}.rsp" | 176 rspfile = "{{output}}.rsp" |
176 command = "rm -f {{output}} && $ar rcs {{output}} @$rspfile" | 177 arflags = "" |
| 178 if (is_cfi && invoker.toolchain_os != "nacl") { |
| 179 gold_plugin_path = rebase_path( |
| 180 "//third_party/llvm-build/Release+Asserts/lib/LLVMgold.so", |
| 181 root_build_dir) |
| 182 arflags = "--plugin $gold_plugin_path" |
| 183 } |
| 184 command = "rm -f {{output}} && $ar rcs $arflags {{output}} @$rspfile" |
177 description = "AR {{output}}" | 185 description = "AR {{output}}" |
178 rspfile_content = "{{inputs}}" | 186 rspfile_content = "{{inputs}}" |
179 outputs = [ | 187 outputs = [ |
180 "{{target_out_dir}}/{{target_output_name}}{{output_extension}}", | 188 "{{target_out_dir}}/{{target_output_name}}{{output_extension}}", |
181 ] | 189 ] |
182 default_output_extension = ".a" | 190 default_output_extension = ".a" |
183 output_prefix = "lib" | 191 output_prefix = "lib" |
184 } | 192 } |
185 | 193 |
186 tool("solink") { | 194 tool("solink") { |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 if (defined(invoker.is_component_build)) { | 315 if (defined(invoker.is_component_build)) { |
308 is_component_build = invoker.is_component_build | 316 is_component_build = invoker.is_component_build |
309 } | 317 } |
310 } | 318 } |
311 | 319 |
312 if (defined(invoker.deps)) { | 320 if (defined(invoker.deps)) { |
313 deps = invoker.deps | 321 deps = invoker.deps |
314 } | 322 } |
315 } | 323 } |
316 } | 324 } |
OLD | NEW |