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/android/config.gni") | 5 import("//build/config/android/config.gni") |
6 import("//build/config/clang/clang.gni") | 6 import("//build/config/clang/clang.gni") |
7 import("//build/config/nacl/config.gni") | 7 import("//build/config/nacl/config.gni") |
8 import("//build/config/sanitizers/sanitizers.gni") | 8 import("//build/config/sanitizers/sanitizers.gni") |
9 import("//build/config/v8_target_cpu.gni") | 9 import("//build/config/v8_target_cpu.gni") |
10 import("//build/toolchain/cc_wrapper.gni") | 10 import("//build/toolchain/cc_wrapper.gni") |
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
312 } | 312 } |
313 | 313 |
314 # These variables are not built into GN but are helpers that | 314 # These variables are not built into GN but are helpers that |
315 # implement (1) linking to produce a .so, (2) extracting the symbols | 315 # implement (1) linking to produce a .so, (2) extracting the symbols |
316 # from that file (3) if the extracted list differs from the existing | 316 # from that file (3) if the extracted list differs from the existing |
317 # .TOC file, overwrite it, otherwise, don't change it. | 317 # .TOC file, overwrite it, otherwise, don't change it. |
318 tocfile = sofile + ".TOC" | 318 tocfile = sofile + ".TOC" |
319 | 319 |
320 link_command = "$ld -shared {{ldflags}}${extra_ldflags} -o \"$unstripped_s ofile\" -Wl,-soname=\"$soname\" @\"$rspfile\"" | 320 link_command = "$ld -shared {{ldflags}}${extra_ldflags} -o \"$unstripped_s ofile\" -Wl,-soname=\"$soname\" @\"$rspfile\"" |
321 | 321 |
322 # Generate a map file to be used for binary size analysis. | |
323 # Map file adds ~10% to the link time on a z620. | |
324 # With target_os="android", libchrome.so.map.gz is ~20MB. | |
325 map_switch = "" | |
326 if (is_official_build) { | |
Dirk Pranke
2017/03/03 21:38:48
This'll affect linux and chromeos too, right? Is t
agrieve
2017/03/04 02:01:26
It was intentional, since the size analysis tool s
| |
327 map_switch = "--mapfile \"$unstripped_sofile.map.gz\" " | |
328 } | |
329 | |
322 assert(defined(readelf), "to solink you must have a readelf") | 330 assert(defined(readelf), "to solink you must have a readelf") |
323 assert(defined(nm), "to solink you must have an nm") | 331 assert(defined(nm), "to solink you must have an nm") |
324 strip_switch = "" | 332 strip_switch = "" |
325 if (defined(invoker.strip)) { | 333 if (defined(invoker.strip)) { |
326 strip_switch = "--strip=${invoker.strip}" | 334 strip_switch = "--strip=${invoker.strip} " |
327 } | 335 } |
328 | 336 |
329 # This needs a Python script to avoid using a complex shell command | 337 # This needs a Python script to avoid using a complex shell command |
330 # requiring sh control structures, pipelines, and POSIX utilities. | 338 # requiring sh control structures, pipelines, and POSIX utilities. |
331 # The host might not have a POSIX shell and utilities (e.g. Windows). | 339 # The host might not have a POSIX shell and utilities (e.g. Windows). |
332 solink_wrapper = rebase_path("//build/toolchain/gcc_solink_wrapper.py") | 340 solink_wrapper = rebase_path("//build/toolchain/gcc_solink_wrapper.py") |
333 command = "$python_path \"$solink_wrapper\" --readelf=\"$readelf\" --nm=\" $nm\" $strip_switch --sofile=\"$unstripped_sofile\" --tocfile=\"$tocfile\" --out put=\"$sofile\"$whitelist_flag -- $link_command" | 341 command = "$python_path \"$solink_wrapper\" --readelf=\"$readelf\" --nm=\" $nm\" $strip_switch--sofile=\"$unstripped_sofile\" --tocfile=\"$tocfile\" $map_s witch--output=\"$sofile\"$whitelist_flag -- $link_command" |
334 | 342 |
335 rspfile_content = "-Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whol e-archive $solink_libs_section_prefix {{libs}} $solink_libs_section_postfix" | 343 rspfile_content = "-Wl,--whole-archive {{inputs}} {{solibs}} -Wl,--no-whol e-archive $solink_libs_section_prefix {{libs}} $solink_libs_section_postfix" |
336 | 344 |
337 description = "SOLINK $sofile" | 345 description = "SOLINK $sofile" |
338 | 346 |
339 # Use this for {{output_extension}} expansions unless a target manually | 347 # Use this for {{output_extension}} expansions unless a target manually |
340 # overrides it (in which case {{output_extension}} will be what the target | 348 # overrides it (in which case {{output_extension}} will be what the target |
341 # specifies). | 349 # specifies). |
342 default_output_extension = default_shlib_extension | 350 default_output_extension = default_shlib_extension |
343 | 351 |
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
514 forward_variables_from(invoker, [ "strip" ]) | 522 forward_variables_from(invoker, [ "strip" ]) |
515 | 523 |
516 toolchain_args = { | 524 toolchain_args = { |
517 if (defined(invoker.toolchain_args)) { | 525 if (defined(invoker.toolchain_args)) { |
518 forward_variables_from(invoker.toolchain_args, "*") | 526 forward_variables_from(invoker.toolchain_args, "*") |
519 } | 527 } |
520 is_clang = true | 528 is_clang = true |
521 } | 529 } |
522 } | 530 } |
523 } | 531 } |
OLD | NEW |