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

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

Issue 2404193003: Android/clang: Always pass --gcc-toolchain, independent of use_gold. (Closed)
Patch Set: Created 4 years, 2 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 | « no previous file | 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 296 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 "-Wl,--no-as-needed", 307 "-Wl,--no-as-needed",
308 "-lpthread", 308 "-lpthread",
309 ] 309 ]
310 } 310 }
311 ldflags += [ "-Wl,--as-needed" ] 311 ldflags += [ "-Wl,--as-needed" ]
312 } 312 }
313 } 313 }
314 314
315 # Linux-specific compiler flags setup. 315 # Linux-specific compiler flags setup.
316 # ------------------------------------ 316 # ------------------------------------
317 if (is_android && is_clang) {
318 _rebased_android_toolchain_root =
319 rebase_path(android_toolchain_root, root_build_dir)
320
321 # Let clang find the linker in the NDK.
322 ldflags += [ "--gcc-toolchain=$_rebased_android_toolchain_root" ]
323 }
324
317 if (is_posix && use_lld && !is_nacl) { 325 if (is_posix && use_lld && !is_nacl) {
318 ldflags += [ "-fuse-ld=lld" ] 326 ldflags += [ "-fuse-ld=lld" ]
319 } else if (use_gold) { 327 } else if (use_gold) {
320 ldflags += [ "-fuse-ld=gold" ] 328 ldflags += [ "-fuse-ld=gold" ]
321 if (is_android) { 329 if (is_android) {
322 if (is_clang) {
323 _rebased_android_toolchain_root =
324 rebase_path(android_toolchain_root, root_build_dir)
325
326 # Let clang find the ld.gold in the NDK.
327 ldflags += [ "--gcc-toolchain=$_rebased_android_toolchain_root" ]
328 }
329
330 # Use -mstackrealign due to a bug on ia32 Jelly Bean. 330 # Use -mstackrealign due to a bug on ia32 Jelly Bean.
331 # See crbug.com/521527 331 # See crbug.com/521527
332 if (current_cpu == "x86") { 332 if (current_cpu == "x86") {
333 cflags += [ "-mstackrealign" ] 333 cflags += [ "-mstackrealign" ]
334 } 334 }
335 } else { 335 } else {
336 # On Android, this isn't needed. gcc in the NDK knows to look next to
337 # it with -fuse-ld=gold, and clang gets a --gcc-toolchain flag passed
338 # above.
336 ldflags += [ "-B$gold_path" ] 339 ldflags += [ "-B$gold_path" ]
337 340
338 if (linux_use_bundled_binutils) { 341 if (linux_use_bundled_binutils) {
339 ldflags += [ 342 ldflags += [
340 # Experimentation found that using four linking threads 343 # Experimentation found that using four linking threads
341 # saved ~20% of link time. 344 # saved ~20% of link time.
342 # https://groups.google.com/a/chromium.org/group/chromium-dev/browse_t hread/thread/281527606915bb36 345 # https://groups.google.com/a/chromium.org/group/chromium-dev/browse_t hread/thread/281527606915bb36
343 # Only apply this to the target linker, since the host 346 # Only apply this to the target linker, since the host
344 # linker might not be gold, but isn't used much anyway. 347 # linker might not be gold, but isn't used much anyway.
345 "-Wl,--threads", 348 "-Wl,--threads",
346 "-Wl,--thread-count=4", 349 "-Wl,--thread-count=4",
347 ] 350 ]
348 } 351 }
349 } 352 }
350 353
351 if (gdb_index) { 354 if (gdb_index) {
352 ldflags += [ "-Wl,--gdb-index" ] 355 ldflags += [ "-Wl,--gdb-index" ]
353 } 356 }
354 357
355 # TODO(thestig): Make this flag work with GN. 358 # TODO(thestig): Make this flag work with GN.
356 #if (!is_official_build && !is_chromeos && !(is_asan || is_lsan || is_tsan | | is_msan)) { 359 #if (!is_official_build && !is_chromeos && !(is_asan || is_lsan || is_tsan | | is_msan)) {
357 # ldflags += [ 360 # ldflags += [
358 # "-Wl,--detect-odr-violations", 361 # "-Wl,--detect-odr-violations",
359 # ] 362 # ]
360 #} 363 #}
361 } else if (linux_use_bundled_binutils) { 364 } else if (linux_use_bundled_binutils) {
362 # Gold is the default linker for the bundled binutils so we explicitly 365 # Gold is the default linker for the bundled binutils so we explicitly
363 # enable the bfd linker when use_gold is not set. 366 # enable the bfd linker when use_gold is not set.
364 ldflags += [ "-fuse-ld=bfd" ] 367 ldflags += [ "-fuse-ld=bfd" ]
365 } else if (is_android && is_clang &&
366 (current_cpu == "mipsel" || current_cpu == "mips64el")) {
367 # Let clang find the ld.bfd in the NDK.
368 _rebased_android_toolchain_root =
369 rebase_path(android_toolchain_root, root_build_dir)
370 ldflags += [ "--gcc-toolchain=$_rebased_android_toolchain_root" ]
371 } 368 }
372 369
373 if (is_posix && (use_gold || (use_lld && !is_nacl)) && !using_sanitizer && 370 if (is_posix && (use_gold || (use_lld && !is_nacl)) && !using_sanitizer &&
374 !(is_android && use_order_profiling)) { 371 !(is_android && use_order_profiling)) {
375 # TODO(crbug.com/576197) - gcc on x86 platforms + gold + icf=all 372 # TODO(crbug.com/576197) - gcc on x86 platforms + gold + icf=all
376 # doesn't currently work on non-chromeos platforms. 373 # doesn't currently work on non-chromeos platforms.
377 # Additionally, on Android x86 --icf=safe seems to cause issues as well. 374 # Additionally, on Android x86 --icf=safe seems to cause issues as well.
378 # Additionally, on cast Android x86, --icf=all causes issues. 375 # Additionally, on cast Android x86, --icf=all causes issues.
379 if (is_android && current_cpu == "x86") { 376 if (is_android && current_cpu == "x86") {
380 ldflags += [ "-Wl,--icf=none" ] 377 ldflags += [ "-Wl,--icf=none" ]
(...skipping 1236 matching lines...) Expand 10 before | Expand all | Expand 10 after
1617 1614
1618 if (is_ios || is_mac) { 1615 if (is_ios || is_mac) {
1619 # On Mac and iOS, this enables support for ARC (automatic ref-counting). 1616 # On Mac and iOS, this enables support for ARC (automatic ref-counting).
1620 # See http://clang.llvm.org/docs/AutomaticReferenceCounting.html. 1617 # See http://clang.llvm.org/docs/AutomaticReferenceCounting.html.
1621 config("enable_arc") { 1618 config("enable_arc") {
1622 common_flags = [ "-fobjc-arc" ] 1619 common_flags = [ "-fobjc-arc" ]
1623 cflags_objc = common_flags 1620 cflags_objc = common_flags
1624 cflags_objcc = common_flags 1621 cflags_objcc = common_flags
1625 } 1622 }
1626 } 1623 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698