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

Side by Side Diff: build/common.gypi

Issue 8966025: 3 additions to common.gypi to control FPO and general cflags for Windows tool builds (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: make it clear win_{release,debug}_OmitFramePointers are both tri-state Created 9 years 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 | Annotate | Revision Log
« 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) 2011 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2011 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 # IMPORTANT: 5 # IMPORTANT:
6 # Please don't directly include this file if you are building via gyp_chromium, 6 # Please don't directly include this file if you are building via gyp_chromium,
7 # since gyp_chromium is automatically forcing its inclusion. 7 # since gyp_chromium is automatically forcing its inclusion.
8 { 8 {
9 # Variables expected to be overriden on the GYP command line (-D) or by 9 # Variables expected to be overriden on the GYP command line (-D) or by
10 # ~/.gyp/include.gypi. 10 # ~/.gyp/include.gypi.
(...skipping 909 matching lines...) Expand 10 before | Expand all | Expand 10 after
920 920
921 # See http://gcc.gnu.org/onlinedocs/gcc-4.4.2/gcc/Optimize-Options.html 921 # See http://gcc.gnu.org/onlinedocs/gcc-4.4.2/gcc/Optimize-Options.html
922 'mac_release_optimization%': '3', # Use -O3 unless overridden 922 'mac_release_optimization%': '3', # Use -O3 unless overridden
923 'mac_debug_optimization%': '0', # Use -O0 unless overridden 923 'mac_debug_optimization%': '0', # Use -O0 unless overridden
924 924
925 # See http://msdn.microsoft.com/en-us/library/aa652360(VS.71).aspx 925 # See http://msdn.microsoft.com/en-us/library/aa652360(VS.71).aspx
926 'win_release_Optimization%': '2', # 2 = /Os 926 'win_release_Optimization%': '2', # 2 = /Os
927 'win_debug_Optimization%': '0', # 0 = /Od 927 'win_debug_Optimization%': '0', # 0 = /Od
928 928
929 # See http://msdn.microsoft.com/en-us/library/2kxx5t2c(v=vs.80).aspx 929 # See http://msdn.microsoft.com/en-us/library/2kxx5t2c(v=vs.80).aspx
930 # Tri-state: blank is default, 1 on, 0 off
930 'win_release_OmitFramePointers%': '1', 931 'win_release_OmitFramePointers%': '1',
932 # Tri-state: blank is default, 1 on, 0 off
933 'win_debug_OmitFramePointers%': '',
931 934
932 # See http://msdn.microsoft.com/en-us/library/8wtf2dfz(VS.71).aspx 935 # See http://msdn.microsoft.com/en-us/library/8wtf2dfz(VS.71).aspx
933 'win_debug_RuntimeChecks%': '3', # 3 = all checks enabled, 0 = off 936 'win_debug_RuntimeChecks%': '3', # 3 = all checks enabled, 0 = off
934 937
935 # See http://msdn.microsoft.com/en-us/library/47238hez(VS.71).aspx 938 # See http://msdn.microsoft.com/en-us/library/47238hez(VS.71).aspx
936 'win_debug_InlineFunctionExpansion%': '', # empty = default, 0 = off, 939 'win_debug_InlineFunctionExpansion%': '', # empty = default, 0 = off,
937 'win_release_InlineFunctionExpansion%': '2', # 1 = only __inline, 2 = max 940 'win_release_InlineFunctionExpansion%': '2', # 1 = only __inline, 2 = max
938 941
939 # VS inserts quite a lot of extra checks to algorithms like 942 # VS inserts quite a lot of extra checks to algorithms like
940 # std::partial_sort in Debug build which make them O(N^2) 943 # std::partial_sort in Debug build which make them O(N^2)
941 # instead of O(N*logN). This is particularly slow under memory 944 # instead of O(N*logN). This is particularly slow under memory
942 # tools like ThreadSanitizer so we want it to be disablable. 945 # tools like ThreadSanitizer so we want it to be disablable.
943 # See http://msdn.microsoft.com/en-us/library/aa985982(v=VS.80).aspx 946 # See http://msdn.microsoft.com/en-us/library/aa985982(v=VS.80).aspx
944 'win_debug_disable_iterator_debugging%': '0', 947 'win_debug_disable_iterator_debugging%': '0',
945 948
946 'release_extra_cflags%': '', 949 'release_extra_cflags%': '',
947 'debug_extra_cflags%': '', 950 'debug_extra_cflags%': '',
948 'release_valgrind_build%': 0, 951 'release_valgrind_build%': 0,
949 952
953 # the non-qualified versions are widely assumed to be *nix-only
954 'win_release_extra_cflags%': '',
955 'win_debug_extra_cflags%': '',
956
950 # TODO(thakis): Make this a blacklist instead, http://crbug.com/101600 957 # TODO(thakis): Make this a blacklist instead, http://crbug.com/101600
951 'enable_wexit_time_destructors%': '<(enable_wexit_time_destructors)', 958 'enable_wexit_time_destructors%': '<(enable_wexit_time_destructors)',
952 959
953 # Only used by Windows build for now. Can be used to build into a 960 # Only used by Windows build for now. Can be used to build into a
954 # differet output directory, e.g., a build_dir_prefix of VS2010_ would 961 # differet output directory, e.g., a build_dir_prefix of VS2010_ would
955 # output files in src/build/VS2010_{Debug,Release}. 962 # output files in src/build/VS2010_{Debug,Release}.
956 'build_dir_prefix%': '', 963 'build_dir_prefix%': '',
957 964
958 'conditions': [ 965 'conditions': [
959 ['OS=="win" and component=="shared_library"', { 966 ['OS=="win" and component=="shared_library"', {
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after
1432 ['win_debug_InlineFunctionExpansion==0', { 1439 ['win_debug_InlineFunctionExpansion==0', {
1433 'AdditionalOptions': ['/Ob0'], 1440 'AdditionalOptions': ['/Ob0'],
1434 }], 1441 }],
1435 ['win_debug_InlineFunctionExpansion!=""', { 1442 ['win_debug_InlineFunctionExpansion!=""', {
1436 'InlineFunctionExpansion': 1443 'InlineFunctionExpansion':
1437 '<(win_debug_InlineFunctionExpansion)', 1444 '<(win_debug_InlineFunctionExpansion)',
1438 }], 1445 }],
1439 ['win_debug_disable_iterator_debugging==1', { 1446 ['win_debug_disable_iterator_debugging==1', {
1440 'PreprocessorDefinitions': ['_HAS_ITERATOR_DEBUGGING=0'], 1447 'PreprocessorDefinitions': ['_HAS_ITERATOR_DEBUGGING=0'],
1441 }], 1448 }],
1449
1450 # if win_debug_OmitFramePointers is blank, leave as default
M-A Ruel 2011/12/16 21:33:01 There are cases where we enable optimizations in d
Derek Bruening 2011/12/16 22:01:14 We are now building Debug chrome with /O1 when we
M-A Ruel 2011/12/16 22:44:32 This is a bit sad, I would have preferred to assum
1451 ['win_debug_OmitFramePointers==1', {
1452 'OmitFramePointers': 'true',
1453 }],
1454 ['win_debug_OmitFramePointers==0', {
1455 'OmitFramePointers': 'false',
brettw 2011/12/16 21:32:42 Just curious: would it be better to change OmitFra
Derek Bruening 2011/12/16 22:01:14 Yes, if we could, but we don't control that: Micro
1456 # The above is not sufficient (http://crbug.com/106711): it
1457 # simply eliminates an explicit "/Oy", but both /O2 and /Ox
1458 # perform FPO regardless, so we must explicitly disable.
1459 # We still want the false setting above to avoid having
1460 # "/Oy /Oy-" and warnings about overriding.
1461 'AdditionalOptions': ['/Oy-'],
1462 }],
1442 ], 1463 ],
1464 'AdditionalOptions': [ '<@(win_debug_extra_cflags)', ],
1443 }, 1465 },
1444 'VCLinkerTool': { 1466 'VCLinkerTool': {
1445 'LinkIncremental': '<(msvs_debug_link_incremental)', 1467 'LinkIncremental': '<(msvs_debug_link_incremental)',
1446 # ASLR makes debugging with windbg difficult because Chrome.exe and 1468 # ASLR makes debugging with windbg difficult because Chrome.exe and
1447 # Chrome.dll share the same base name. As result, windbg will 1469 # Chrome.dll share the same base name. As result, windbg will
1448 # name the Chrome.dll module like chrome_<base address>, where 1470 # name the Chrome.dll module like chrome_<base address>, where
1449 # <base address> typically changes with each launch. This in turn 1471 # <base address> typically changes with each launch. This in turn
1450 # means that breakpoints in Chrome.dll don't stick from one launch 1472 # means that breakpoints in Chrome.dll don't stick from one launch
1451 # to the next. For this reason, we turn ASLR off in debug builds. 1473 # to the next. For this reason, we turn ASLR off in debug builds.
1452 # Note that this is a three-way bool, where 0 means to pick up 1474 # Note that this is a three-way bool, where 0 means to pick up
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1491 # "default inlining", not "/Ob0". 1513 # "default inlining", not "/Ob0".
1492 # Thus, we have to handle InlineFunctionExpansion==0 separately. 1514 # Thus, we have to handle InlineFunctionExpansion==0 separately.
1493 ['win_release_InlineFunctionExpansion==0', { 1515 ['win_release_InlineFunctionExpansion==0', {
1494 'AdditionalOptions': ['/Ob0'], 1516 'AdditionalOptions': ['/Ob0'],
1495 }], 1517 }],
1496 ['win_release_InlineFunctionExpansion!=""', { 1518 ['win_release_InlineFunctionExpansion!=""', {
1497 'InlineFunctionExpansion': 1519 'InlineFunctionExpansion':
1498 '<(win_release_InlineFunctionExpansion)', 1520 '<(win_release_InlineFunctionExpansion)',
1499 }], 1521 }],
1500 1522
1523 # if win_release_OmitFramePointers is blank, leave as default
1501 ['win_release_OmitFramePointers==1', { 1524 ['win_release_OmitFramePointers==1', {
1502 'OmitFramePointers': 'true', 1525 'OmitFramePointers': 'true',
1503 }], 1526 }],
1504 ['win_release_OmitFramePointers==0', { 1527 ['win_release_OmitFramePointers==0', {
1505 'OmitFramePointers': 'false', 1528 'OmitFramePointers': 'false',
1529 # The above is not sufficient (http://crbug.com/106711): it
1530 # simply eliminates an explicit "/Oy", but both /O2 and /Ox
1531 # perform FPO regardless, so we must explicitly disable.
1532 # We still want the false setting above to avoid having
1533 # "/Oy /Oy-" and warnings about overriding.
1534 'AdditionalOptions': ['/Oy-'],
1506 }], 1535 }],
1507 ], 1536 ],
1537 'AdditionalOptions': [ '<@(win_release_extra_cflags)', ],
1508 }, 1538 },
1509 'VCLinkerTool': { 1539 'VCLinkerTool': {
1510 # LinkIncremental is a tri-state boolean, where 0 means default 1540 # LinkIncremental is a tri-state boolean, where 0 means default
1511 # (i.e., inherit from parent solution), 1 means false, and 1541 # (i.e., inherit from parent solution), 1 means false, and
1512 # 2 means true. 1542 # 2 means true.
1513 'LinkIncremental': '1', 1543 'LinkIncremental': '1',
1514 # This corresponds to the /PROFILE flag which ensures the PDB 1544 # This corresponds to the /PROFILE flag which ensures the PDB
1515 # file contains FIXUP information (growing the PDB file by about 1545 # file contains FIXUP information (growing the PDB file by about
1516 # 5%) but does not otherwise alter the output binary. This 1546 # 5%) but does not otherwise alter the output binary. This
1517 # information is used by the Syzygy optimization tool when 1547 # information is used by the Syzygy optimization tool when
(...skipping 1154 matching lines...) Expand 10 before | Expand all | Expand 10 after
2672 # settings in target dicts. SYMROOT is a special case, because many other 2702 # settings in target dicts. SYMROOT is a special case, because many other
2673 # Xcode variables depend on it, including variables such as 2703 # Xcode variables depend on it, including variables such as
2674 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something 2704 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something
2675 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the 2705 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the
2676 # files to appear (when present) in the UI as actual files and not red 2706 # files to appear (when present) in the UI as actual files and not red
2677 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR, 2707 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR,
2678 # and therefore SYMROOT, needs to be set at the project level. 2708 # and therefore SYMROOT, needs to be set at the project level.
2679 'SYMROOT': '<(DEPTH)/xcodebuild', 2709 'SYMROOT': '<(DEPTH)/xcodebuild',
2680 }, 2710 },
2681 } 2711 }
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