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

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

Issue 2858873005: [infra] Roll clang to match the version used by Flutter (Closed)
Patch Set: Fix Mac Android build Created 3 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
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 declare_args() { 5 declare_args() {
6 # The optimization level to use for debug builds. 6 # The optimization level to use for debug builds.
7 if (is_android) { 7 if (is_android) {
8 # On Android we kind of optimize some things that don't affect debugging 8 # On Android we kind of optimize some things that don't affect debugging
9 # much even when optimization is disabled to get the binary size down. 9 # much even when optimization is disabled to get the binary size down.
10 debug_optimization_level = "s" 10 debug_optimization_level = "s"
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 # well-defined C/C++ and Clang can optimize such checks away in 123 # well-defined C/C++ and Clang can optimize such checks away in
124 # release builds, but they may be used in asserts in debug builds. 124 # release builds, but they may be used in asserts in debug builds.
125 extra_flags = [ 125 extra_flags = [
126 "-Wno-undefined-bool-conversion", 126 "-Wno-undefined-bool-conversion",
127 "-Wno-tautological-undefined-compare", 127 "-Wno-tautological-undefined-compare",
128 ] 128 ]
129 cflags_cc += extra_flags 129 cflags_cc += extra_flags
130 cflags_objcc += extra_flags 130 cflags_objcc += extra_flags
131 } 131 }
132 132
133 if (is_clang) {
134 # This is here so that all files get recompiled after a clang roll and
135 # when turning clang on or off. (defines are passed via the command line,
136 # and build system rebuild things when their commandline changes). Nothing
137 # should ever read this define.
138 defines +=
139 [ "CR_CLANG_REVISION=" + exec_script("//tools/clang/scripts/update.py",
140 [ "--print-revision" ],
141 "trim string") ]
142 }
143
144 # Mac-specific compiler flags setup. 133 # Mac-specific compiler flags setup.
145 # ---------------------------------- 134 # ----------------------------------
146 if (is_mac) { 135 if (is_mac) {
147 # These flags are shared between the C compiler and linker. 136 # These flags are shared between the C compiler and linker.
148 common_mac_flags = [ "-fno-exceptions" ] 137 common_mac_flags = [ "-fno-exceptions" ]
149 138
150 # CPU architecture. 139 # CPU architecture.
151 if (current_cpu == "x64") { 140 if (current_cpu == "x64") {
152 common_mac_flags += [ 141 common_mac_flags += [
153 "-arch", 142 "-arch",
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 cflags += [ "-mllvm -asan-globals=0" ] 347 cflags += [ "-mllvm -asan-globals=0" ]
359 } 348 }
360 349
361 defines += [ "ANDROID" ] 350 defines += [ "ANDROID" ]
362 351
363 # The NDK has these things, but doesn't define the constants 352 # The NDK has these things, but doesn't define the constants
364 # to say that it does. Define them here instead. 353 # to say that it does. Define them here instead.
365 defines += [ "HAVE_SYS_UIO_H" ] 354 defines += [ "HAVE_SYS_UIO_H" ]
366 355
367 # Use gold for Android for most CPU architectures. 356 # Use gold for Android for most CPU architectures.
368 if (current_cpu == "x86" || current_cpu == "x64" || current_cpu == "arm") { 357 if (current_cpu == "x86" || current_cpu == "x64" || current_cpu == "arm" ||
358 current_cpu == "arm64") {
369 ldflags += [ "-fuse-ld=gold" ] 359 ldflags += [ "-fuse-ld=gold" ]
370 if (is_clang) { 360 if (is_clang) {
371 # Let clang find the ld.gold in the NDK. 361 # Let clang find the ld.gold in the NDK.
372 ldflags += [ "--gcc-toolchain=" + 362 toolchain_root = rebase_path(android_toolchain_root, root_build_dir)
373 rebase_path(android_toolchain_root, root_build_dir) ] 363 ldflags += [ "--gcc-toolchain=$toolchain_root" ]
364 ldflags += [ "-B${toolchain_root}/bin" ]
374 } 365 }
375 } 366 }
376 367
377 ldflags += [ 368 ldflags += [
378 # Don't allow visible symbols from libgcc or libc++ to be 369 # Don't allow visible symbols from libgcc or libc++ to be
379 # re-exported. 370 # re-exported.
380 "-Wl,--exclude-libs=libgcc.a", 371 "-Wl,--exclude-libs=libgcc.a",
381 "-Wl,--exclude-libs=libc++_static.a", 372 "-Wl,--exclude-libs=libc++_static.a",
382 ] 373 ]
383 if (current_cpu == "arm") { 374 if (current_cpu == "arm") {
384 ldflags += [ 375 ldflags += [
385 # Enable identical code folding to reduce size. 376 # Enable identical code folding to reduce size.
386 "-Wl,--icf=safe", 377 "-Wl,--icf=safe",
387 ] 378 ]
388 } 379 }
389 380
390 if (is_clang) { 381 if (is_clang) {
391 if (current_cpu == "arm") { 382 if (current_cpu == "arm") {
392 cflags += [ "--target=arm-linux-androideabi" ] 383 cflags += [ "--target=arm-linux-androideabi" ]
393 ldflags += [ "--target=arm-linux-androideabi" ] 384 ldflags += [ "--target=arm-linux-androideabi" ]
385 } else if (current_cpu == "arm64") {
386 cflags += [ "--target=aarch64-linux-android" ]
387 ldflags += [ "--target=aarch64-linux-android" ]
394 } else if (current_cpu == "x86") { 388 } else if (current_cpu == "x86") {
395 cflags += [ "--target=x86-linux-androideabi" ] 389 cflags += [ "--target=i686-linux-androideabi" ]
396 ldflags += [ "--target=x86-linux-androideabi" ] 390 ldflags += [ "--target=i686-linux-androideabi" ]
391 } else if (current_cpu == "x64") {
392 cflags += [ "--target=x86_64-linux-androideabi" ]
393 ldflags += [ "--target=x86_64-linux-androideabi" ]
397 } 394 }
398 } 395 }
399 } 396 }
400 397
401 # Assign any flags set for the C compiler to asmflags so that they are sent 398 # Assign any flags set for the C compiler to asmflags so that they are sent
402 # to the assembler. The Windows assembler takes different types of flags 399 # to the assembler. The Windows assembler takes different types of flags
403 # so only do so for posix platforms. 400 # so only do so for posix platforms.
404 if (is_posix) { 401 if (is_posix) {
405 asmflags += cflags 402 asmflags += cflags
406 asmflags += cflags_c 403 asmflags += cflags_c
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 "_SCL_SECURE_NO_DEPRECATE", 442 "_SCL_SECURE_NO_DEPRECATE",
446 ] 443 ]
447 } 444 }
448 445
449 # Android standard library setup. 446 # Android standard library setup.
450 if (is_android) { 447 if (is_android) {
451 if (is_clang) { 448 if (is_clang) {
452 # Work around incompatibilities between bionic and clang headers. 449 # Work around incompatibilities between bionic and clang headers.
453 defines += [ 450 defines += [
454 "__compiler_offsetof=__builtin_offsetof", 451 "__compiler_offsetof=__builtin_offsetof",
455 "nan=__builtin_nan",
456 ] 452 ]
457 } 453 }
458 454
459 defines += [ "__GNU_SOURCE=1" ] # Necessary for clone(). 455 defines += [ "__GNU_SOURCE=1" ] # Necessary for clone().
460 456
461 # TODO(jdduke) Re-enable on mips after resolving linking 457 # TODO(jdduke) Re-enable on mips after resolving linking
462 # issues with libc++ (crbug.com/456380). 458 # issues with libc++ (crbug.com/456380).
463 if (current_cpu != "mipsel" && current_cpu != "mips64el") { 459 if (current_cpu != "mipsel" && current_cpu != "mips64el") {
464 ldflags += [ "-Wl,--warn-shared-textrel" ] 460 ldflags += [ "-Wl,--warn-shared-textrel" ]
465 } 461 }
(...skipping 10 matching lines...) Expand all
476 rebase_path("$android_libcpp_root/libcxx/include", root_build_dir), 472 rebase_path("$android_libcpp_root/libcxx/include", root_build_dir),
477 "-isystem" + rebase_path( 473 "-isystem" + rebase_path(
478 "$android_ndk_root/sources/cxx-stl/llvm-libc++abi/libcxxabi/includ e", 474 "$android_ndk_root/sources/cxx-stl/llvm-libc++abi/libcxxabi/includ e",
479 root_build_dir), 475 root_build_dir),
480 "-isystem" + 476 "-isystem" +
481 rebase_path("$android_ndk_root/sources/android/support/include", 477 rebase_path("$android_ndk_root/sources/android/support/include",
482 root_build_dir), 478 root_build_dir),
483 ] 479 ]
484 480
485 lib_dirs += [ "$android_libcpp_root/libs/$android_app_abi" ] 481 lib_dirs += [ "$android_libcpp_root/libs/$android_app_abi" ]
486 libs += [ "$android_libcpp_library" ]
487 482
488 if (current_cpu == "mipsel") { 483 libs += [
489 libs += [ 484 "$android_libcpp_library",
490 # ld linker is used for mips Android, and ld does not accept library 485 "c++abi",
491 # absolute path prefixed by "-l"; Since libgcc does not exist in mips 486 "android_support",
492 # sysroot the proper library will be linked. 487 ]
493 # TODO(gordanac): Remove once gold linker is used for mips Android. 488
494 "gcc", 489 if (current_cpu == "arm") {
495 ] 490 libs += [ "unwind" ]
496 } else {
497 libs += [
498 # Manually link the libgcc.a that the cross compiler uses. This is
499 # absolute because the linker will look inside the sysroot if it's not.
500 rebase_path(android_libgcc_file),
501 ]
502 } 491 }
503 492
504 libs += [ 493 libs += [
494 "gcc",
505 "c", 495 "c",
506 "dl", 496 "dl",
507 "m", 497 "m",
508 ] 498 ]
509 499
510 # Clang with libc++ does not require an explicit atomic library reference. 500 # Clang with libc++ does not require an explicit atomic library reference.
511 if (!is_clang) { 501 if (!is_clang) {
512 libs += [ "atomic" ] 502 libs += [ "atomic" ]
513 } 503 }
514 } 504 }
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
786 cflags = [ "/Zi" ] # Produce PDB file, no edit and continue. 776 cflags = [ "/Zi" ] # Produce PDB file, no edit and continue.
787 } 777 }
788 ldflags = [ "/DEBUG" ] 778 ldflags = [ "/DEBUG" ]
789 } else { 779 } else {
790 cflags = [ 780 cflags = [
791 "-g3", 781 "-g3",
792 "-ggdb3", 782 "-ggdb3",
793 ] 783 ]
794 } 784 }
795 } 785 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698