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

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

Issue 1258923012: GN (Android): Make is_clang work for (at least for arm32) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix nacl build errors Created 5 years, 4 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 | « build/config/BUILDCONFIG.gn ('k') | build/toolchain/android/BUILD.gn » ('j') | 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 if (current_cpu == "arm") { 7 if (current_cpu == "arm") {
8 import("//build/config/arm.gni") 8 import("//build/config/arm.gni")
9 } 9 }
10 if (current_cpu == "mipsel" || current_cpu == "mips64el") { 10 if (current_cpu == "mipsel" || current_cpu == "mips64el") {
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 160
161 # Not exporting C++ inline functions can generally be applied anywhere 161 # Not exporting C++ inline functions can generally be applied anywhere
162 # so we do so here. Normal function visibility is controlled by 162 # so we do so here. Normal function visibility is controlled by
163 # //build/config/gcc:symbol_visibility_hidden. 163 # //build/config/gcc:symbol_visibility_hidden.
164 "-fvisibility-inlines-hidden", 164 "-fvisibility-inlines-hidden",
165 ] 165 ]
166 166
167 # Stack protection. 167 # Stack protection.
168 if (is_mac) { 168 if (is_mac) {
169 cflags += [ "-fstack-protector-all" ] 169 cflags += [ "-fstack-protector-all" ]
170 } else if (is_linux) { 170 } else if (is_posix && !is_chromeos && !is_nacl) {
171 cflags += [ 171 # TODO(phajdan.jr): Use -fstack-protector-strong when our gcc supports it.
172 "-fstack-protector", 172 cflags += [ "--param=ssp-buffer-size=4" ]
173 "--param=ssp-buffer-size=4", 173 if (is_android && (current_cpu == "arm64" || current_cpu == "x86")) {
174 ] 174 cflags += [ "-fno-stack-protector" ]
175 } else {
176 cflags += [ "-fstack-protector" ]
177 }
175 } 178 }
176 179
177 # Linker warnings. 180 # Linker warnings.
178 if (!(is_chromeos && current_cpu == "arm") && !is_mac && !is_ios) { 181 if (!(is_chromeos && current_cpu == "arm") && !is_mac && !is_ios) {
179 # TODO(jochen): Enable this on chromeos on arm. http://crbug.com/356580 182 # TODO(jochen): Enable this on chromeos on arm. http://crbug.com/356580
180 ldflags += [ "-Wl,--fatal-warnings" ] 183 ldflags += [ "-Wl,--fatal-warnings" ]
181 } 184 }
182 185
183 # Common options for AddressSanitizer, LeakSanitizer, ThreadSanitizer and 186 # Common options for AddressSanitizer, LeakSanitizer, ThreadSanitizer and
184 # MemorySanitizer 187 # MemorySanitizer
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 } 518 }
516 519
517 # Android-specific flags setup. 520 # Android-specific flags setup.
518 # ----------------------------- 521 # -----------------------------
519 if (is_android) { 522 if (is_android) {
520 cflags += [ 523 cflags += [
521 "-ffunction-sections", 524 "-ffunction-sections",
522 "-funwind-tables", 525 "-funwind-tables",
523 "-fno-short-enums", 526 "-fno-short-enums",
524 ] 527 ]
525 if (!is_clang) { 528 if (is_clang) {
529 rebased_android_toolchain_root =
530 rebase_path(android_toolchain_root, root_build_dir)
531 cflags += [
532 # TODO(hans) Enable integrated-as (crbug.com/124610).
533 "-no-integrated-as",
534 "-B${rebased_android_toolchain_root}/bin", # Else /usr/bin/as gets pick ed up.
535 ]
536 } else {
526 # Clang doesn't support these flags. 537 # Clang doesn't support these flags.
527 cflags += [ "-finline-limit=64" ] 538 cflags += [ "-finline-limit=64" ]
528 } 539 }
529 if (is_asan) { 540 if (is_asan) {
530 # Android build relies on -Wl,--gc-sections removing unreachable code. 541 # Android build relies on -Wl,--gc-sections removing unreachable code.
531 # ASan instrumentation for globals inhibits this and results in a library 542 # ASan instrumentation for globals inhibits this and results in a library
532 # with unresolvable relocations. 543 # with unresolvable relocations.
533 # TODO(eugenis): find a way to reenable this. 544 # TODO(eugenis): find a way to reenable this.
534 cflags += [ "-mllvm -asan-globals=0" ] 545 cflags += [ "-mllvm -asan-globals=0" ]
535 } 546 }
536 547
537 defines += [ "ANDROID" ] 548 defines += [ "ANDROID" ]
538 549
539 # The NDK has these things, but doesn't define the constants 550 # The NDK has these things, but doesn't define the constants
540 # to say that it does. Define them here instead. 551 # to say that it does. Define them here instead.
541 defines += [ "HAVE_SYS_UIO_H" ] 552 defines += [ "HAVE_SYS_UIO_H" ]
542 553
543 # Use gold for Android for most CPU architectures. 554 # Use gold for Android for most CPU architectures.
544 if (current_cpu == "x86" || current_cpu == "x64" || current_cpu == "arm") { 555 if (current_cpu == "x86" || current_cpu == "x64" || current_cpu == "arm") {
545 ldflags += [ "-fuse-ld=gold" ] 556 ldflags += [ "-fuse-ld=gold" ]
546 if (is_clang) { 557 if (is_clang) {
547 # Let clang find the ld.gold in the NDK. 558 # Let clang find the ld.gold in the NDK.
548 ldflags += [ "--gcc-toolchain=" + 559 ldflags += [ "--gcc-toolchain=$rebased_android_toolchain_root" ]
549 rebase_path(android_toolchain_root, root_build_dir) ]
550 } 560 }
551 } 561 }
552 562
553 ldflags += [ 563 ldflags += [
554 "-Wl,--no-undefined", 564 "-Wl,--no-undefined",
555 565
556 # Don't allow visible symbols from libgcc or libc++ to be 566 # Don't allow visible symbols from libgcc or libc++ to be
557 # re-exported. 567 # re-exported.
558 "-Wl,--exclude-libs=libgcc.a", 568 "-Wl,--exclude-libs=libgcc.a",
559 "-Wl,--exclude-libs=libc++_static.a", 569 "-Wl,--exclude-libs=libc++_static.a",
560 570
561 # Don't allow visible symbols from libraries that contain 571 # Don't allow visible symbols from libraries that contain
562 # assembly code with symbols that aren't hidden properly. 572 # assembly code with symbols that aren't hidden properly.
563 # http://crbug.com/448386 573 # http://crbug.com/448386
564 "-Wl,--exclude-libs=libvpx_assembly_arm.a", 574 "-Wl,--exclude-libs=libvpx_assembly_arm.a",
565 ] 575 ]
566 if (current_cpu == "arm") { 576 if (current_cpu == "arm") {
567 ldflags += [ 577 ldflags += [
568 # Enable identical code folding to reduce size. 578 # Enable identical code folding to reduce size.
569 "-Wl,--icf=safe", 579 "-Wl,--icf=safe",
570 ] 580 ]
571 } 581 }
572 582
573 if (is_clang) { 583 if (is_clang) {
574 if (current_cpu == "arm") { 584 if (current_cpu == "arm") {
575 cflags += [ "-target arm-linux-androideabi" ] 585 cflags += [
576 ldflags += [ "-target arm-linux-androideabi" ] 586 "-target",
587 "arm-linux-androideabi",
588 ]
589 ldflags += [
590 "-target",
591 "arm-linux-androideabi",
592 ]
577 } else if (current_cpu == "x86") { 593 } else if (current_cpu == "x86") {
578 cflags += [ "-target i686-linux-androideabi" ] 594 cflags += [
579 ldflags += [ "-target i686-linux-androideabi" ] 595 "-target",
596 "i686-linux-androideabi",
597 ]
598 ldflags += [
599 "-target",
600 "i686-linux-androideabi",
601 ]
580 } 602 }
581 } 603 }
582 } 604 }
583 605
584 # Pass the same C/C++ flags to the objective C/C++ compiler. 606 # Pass the same C/C++ flags to the objective C/C++ compiler.
585 cflags_objc += cflags_c 607 cflags_objc += cflags_c
586 cflags_objcc += cflags_cc 608 cflags_objcc += cflags_cc
587 } 609 }
588 610
589 config("compiler_arm_fpu") { 611 config("compiler_arm_fpu") {
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
840 # availability is newer than the deployment target. This is not 862 # availability is newer than the deployment target. This is not
841 # required when compiling Chrome for iOS. 863 # required when compiling Chrome for iOS.
842 default_warning_flags += [ "-Wpartial-availability" ] 864 default_warning_flags += [ "-Wpartial-availability" ]
843 } 865 }
844 } 866 }
845 867
846 if (gcc_version >= 48) { 868 if (gcc_version >= 48) {
847 default_warning_flags_cc += [ 869 default_warning_flags_cc += [
848 # See comment for -Wno-c++11-narrowing. 870 # See comment for -Wno-c++11-narrowing.
849 "-Wno-narrowing", 871 "-Wno-narrowing",
850
851 # TODO(thakis): Remove, http://crbug.com/263960
852 "-Wno-literal-suffix",
853 ] 872 ]
873 if (!is_clang) {
874 default_warning_flags_cc += [
875 # TODO(thakis): Remove, http://crbug.com/263960
876 "-Wno-literal-suffix",
877 ]
878 }
854 } 879 }
855 880
856 # Suppress warnings about ABI changes on ARM (Clang doesn't give this 881 # Suppress warnings about ABI changes on ARM (Clang doesn't give this
857 # warning). 882 # warning).
858 if (current_cpu == "arm" && !is_clang) { 883 if (current_cpu == "arm" && !is_clang) {
859 default_warning_flags += [ "-Wno-psabi" ] 884 default_warning_flags += [ "-Wno-psabi" ]
860 } 885 }
861 886
862 if (is_android) { 887 if (is_android) {
863 # Disable any additional warnings enabled by the Android build system but 888 # Disable any additional warnings enabled by the Android build system but
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
1281 cflags += [ "-gsplit-dwarf" ] 1306 cflags += [ "-gsplit-dwarf" ]
1282 } 1307 }
1283 } 1308 }
1284 } 1309 }
1285 1310
1286 config("no_symbols") { 1311 config("no_symbols") {
1287 if (!is_win) { 1312 if (!is_win) {
1288 cflags = [ "-g0" ] 1313 cflags = [ "-g0" ]
1289 } 1314 }
1290 } 1315 }
OLDNEW
« no previous file with comments | « build/config/BUILDCONFIG.gn ('k') | build/toolchain/android/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698