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

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

Issue 1598523002: GN: Move x86 Clang -mstackrealign workaround to its own config, elide it where problematic (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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') | components/crash/content/app/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 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/ccache.gni") 9 import("//build/toolchain/ccache.gni")
10 10
(...skipping 557 matching lines...) Expand 10 before | Expand all | Expand 10 after
568 568
569 if (is_nacl) { 569 if (is_nacl) {
570 configs += [ "//build/config/nacl:compiler_codegen" ] 570 configs += [ "//build/config/nacl:compiler_codegen" ]
571 } else if (is_posix && !is_mac && !is_ios) { 571 } else if (is_posix && !is_mac && !is_ios) {
572 if (current_cpu == "x86") { 572 if (current_cpu == "x86") {
573 if (is_clang) { 573 if (is_clang) {
574 cflags += [ 574 cflags += [
575 # Else building libyuv gives clang's register allocator issues, 575 # Else building libyuv gives clang's register allocator issues,
576 # see llvm.org/PR15798 / crbug.com/233709 576 # see llvm.org/PR15798 / crbug.com/233709
577 "-momit-leaf-frame-pointer", 577 "-momit-leaf-frame-pointer",
578
579 # Align the stack on 16-byte boundaries, http://crbug.com/418554.
580 "-mstack-alignment=16",
581 "-mstackrealign",
582 ] 578 ]
583 } 579 }
584 } else if (current_cpu == "arm") { 580 } else if (current_cpu == "arm") {
585 if (!is_clang) { 581 if (!is_clang) {
586 # Clang doesn't support these flags. 582 # Clang doesn't support these flags.
587 cflags += [ 583 cflags += [
588 # The tree-sra optimization (scalar replacement for 584 # The tree-sra optimization (scalar replacement for
589 # aggregates enabling subsequent optimizations) leads to 585 # aggregates enabling subsequent optimizations) leads to
590 # invalid code generation when using the Android NDK's 586 # invalid code generation when using the Android NDK's
591 # compiler (r5-r7). This can be verified using 587 # compiler (r5-r7). This can be verified using
592 # webkit_unit_tests' WTF.Checked_int8_t test. 588 # webkit_unit_tests' WTF.Checked_int8_t test.
593 "-fno-tree-sra", 589 "-fno-tree-sra",
594 590
595 # The following option is disabled to improve binary 591 # The following option is disabled to improve binary
596 # size and performance in gcc 4.9. 592 # size and performance in gcc 4.9.
597 "-fno-caller-saves", 593 "-fno-caller-saves",
598 ] 594 ]
599 } 595 }
600 } 596 }
601 } 597 }
602 598
603 asmflags = cflags 599 asmflags = cflags
604 } 600 }
605 601
602 # This is separate from :compiler_codegen (and not even a sub-config there)
603 # so that some targets can remove it from the list with:
604 # configs -= [ "//build/config/compiler:clang_stackrealign" ]
605 # See https://crbug.com/556393 for details of where it must be avoided.
606 config("clang_stackrealign") {
607 if (is_clang && current_cpu == "x86" && !is_nacl) {
608 cflags = [
609 # Align the stack on 16-byte boundaries, http://crbug.com/418554.
610 "-mstack-alignment=16",
611 "-mstackrealign",
612 ]
613 }
614 }
615
606 config("compiler_arm_fpu") { 616 config("compiler_arm_fpu") {
607 if (current_cpu == "arm" && !is_ios && !is_nacl) { 617 if (current_cpu == "arm" && !is_ios && !is_nacl) {
608 cflags = [ "-mfpu=$arm_fpu" ] 618 cflags = [ "-mfpu=$arm_fpu" ]
609 asmflags = cflags 619 asmflags = cflags
610 } 620 }
611 } 621 }
612 622
613 # runtime_library ------------------------------------------------------------- 623 # runtime_library -------------------------------------------------------------
614 # 624 #
615 # Sets the runtime library and associated options. 625 # Sets the runtime library and associated options.
(...skipping 670 matching lines...) Expand 10 before | Expand all | Expand 10 after
1286 if (symbol_level == 0) { 1296 if (symbol_level == 0) {
1287 configs = [ ":no_symbols" ] 1297 configs = [ ":no_symbols" ]
1288 } else if (symbol_level == 1) { 1298 } else if (symbol_level == 1) {
1289 configs = [ ":minimal_symbols" ] 1299 configs = [ ":minimal_symbols" ]
1290 } else if (symbol_level == 2) { 1300 } else if (symbol_level == 2) {
1291 configs = [ ":symbols" ] 1301 configs = [ ":symbols" ]
1292 } else { 1302 } else {
1293 assert(false) 1303 assert(false)
1294 } 1304 }
1295 } 1305 }
OLDNEW
« no previous file with comments | « build/config/BUILDCONFIG.gn ('k') | components/crash/content/app/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698