Revision: 20605
Author: [email protected]
Date: Wed Apr 9 09:54:49 2014 UTC
Log: Use abstract configurations to switch between opt debug settings
The problem is that conditions are evaluated before configuration
inheritance is resolved, so we can't just define a configuration like this:
'Optdebug': {
'inherits_from': ['Debug'],
'variables': {
'v8_optimized_debug': 2,
}
}
Instead, we have to put the different settings depending on the
optimization level into separate configurations, and use conditions inside
the concrete configurations to inherit from the correct base class.
Common settings go in the base configuration DebugBaseCommon, and
v8_optimized_debug dependent settings go into DebugBase{0,1,2}
The new Debug configuration inherits from DebugBaseCommon and
DebugBase<(v8_optimized_debug), while the new configuration Optdebug
inherits from DebugBaseCommon and DebugBase2.
BUG=v8:3252
[email protected], [email protected]
LOG=n
Review URL: https://codereview.chromium.org/224443003
http://code.google.com/p/v8/source/detail?r=20605
Modified:
/branches/bleeding_edge/build/features.gypi
/branches/bleeding_edge/build/standalone.gypi
/branches/bleeding_edge/build/toolchain.gypi
=======================================
--- /branches/bleeding_edge/build/features.gypi Thu Nov 21 14:07:06 2013 UTC
+++ /branches/bleeding_edge/build/features.gypi Wed Apr 9 09:54:49 2014 UTC
@@ -98,7 +98,8 @@
}],
], # conditions
'configurations': {
- 'Debug': {
+ 'DebugBaseCommon': {
+ 'abstract': 1,
'variables': {
'v8_enable_extra_checks%': 1,
'v8_enable_handle_zapping%': 1,
=======================================
--- /branches/bleeding_edge/build/standalone.gypi Wed Apr 2 12:55:22 2014
UTC
+++ /branches/bleeding_edge/build/standalone.gypi Wed Apr 9 09:54:49 2014
UTC
@@ -135,9 +135,15 @@
},
'default_configuration': 'Debug',
'configurations': {
- 'Debug': {
+ 'DebugBaseCommon': {
'cflags': [ '-g', '-O0' ],
},
+ 'Optdebug': {
+ 'inherit_from': [ 'DebugBaseCommon', 'DebugBase2' ],
+ },
+ 'Debug': {
+ # Xcode insists on this empty entry.
+ },
'Release': {
# Xcode insists on this empty entry.
},
=======================================
--- /branches/bleeding_edge/build/toolchain.gypi Tue Apr 1 12:53:07 2014
UTC
+++ /branches/bleeding_edge/build/toolchain.gypi Wed Apr 9 09:54:49 2014
UTC
@@ -445,135 +445,154 @@
}],
], # conditions
'configurations': {
- 'Debug': {
- 'defines': [
- 'ENABLE_DISASSEMBLER',
- 'V8_ENABLE_CHECKS',
- 'OBJECT_PRINT',
- 'VERIFY_HEAP',
- 'DEBUG'
- ],
+ # Abstract configuration for v8_optimized_debug == 0.
+ 'DebugBase0': {
+ 'abstract': 1,
'msvs_settings': {
'VCCLCompilerTool': {
+ 'Optimization': '0',
'conditions': [
- ['v8_optimized_debug==0', {
- 'Optimization': '0',
- 'conditions': [
- ['component=="shared_library"', {
- 'RuntimeLibrary': '3', # /MDd
- }, {
- 'RuntimeLibrary': '1', # /MTd
- }],
- ],
- }],
- ['v8_optimized_debug==1', {
- 'Optimization': '1',
- 'InlineFunctionExpansion': '2',
- 'EnableIntrinsicFunctions': 'true',
- 'FavorSizeOrSpeed': '0',
- 'StringPooling': 'true',
- 'BasicRuntimeChecks': '0',
- 'conditions': [
- ['component=="shared_library"', {
- 'RuntimeLibrary': '3', # /MDd
- }, {
- 'RuntimeLibrary': '1', # /MTd
- }],
- ],
- }],
- ['v8_optimized_debug==2', {
- 'Optimization': '2',
- 'InlineFunctionExpansion': '2',
- 'EnableIntrinsicFunctions': 'true',
- 'FavorSizeOrSpeed': '0',
- 'StringPooling': 'true',
- 'BasicRuntimeChecks': '0',
- 'conditions': [
- ['component=="shared_library"', {
- 'RuntimeLibrary': '3', #/MDd
- }, {
- 'RuntimeLibrary': '1', #/MTd
- }],
- ['v8_target_arch=="x64"', {
- # TODO(2207): remove this option once the bug is fixed.
- 'WholeProgramOptimization': 'true',
- }],
- ],
+ ['component=="shared_library"', {
+ 'RuntimeLibrary': '3', # /MDd
+ }, {
+ 'RuntimeLibrary': '1', # /MTd
}],
],
},
'VCLinkerTool': {
+ 'LinkIncremental': '2',
+ },
+ },
+ 'conditions': [
+ ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd"
or \
+ OS=="qnx"', {
+ 'cflags!': [
+ '-O0',
+ '-O3',
+ '-O2',
+ '-O1',
+ '-Os',
+ ],
+ 'cflags': [
+ '-fdata-sections',
+ '-ffunction-sections',
+ ],
+ }],
+ ['OS=="mac"', {
+ 'xcode_settings': {
+ 'GCC_OPTIMIZATION_LEVEL': '0', # -O0
+ },
+ }],
+ ],
+ }, # DebugBase0
+ # Abstract configuration for v8_optimized_debug == 1.
+ 'DebugBase1': {
+ 'abstract': 1,
+ 'msvs_settings': {
+ 'VCCLCompilerTool': {
+ 'Optimization': '1',
+ 'InlineFunctionExpansion': '2',
+ 'EnableIntrinsicFunctions': 'true',
+ 'FavorSizeOrSpeed': '0',
+ 'StringPooling': 'true',
+ 'BasicRuntimeChecks': '0',
'conditions': [
- ['v8_optimized_debug==0', {
- 'LinkIncremental': '2',
- }],
- ['v8_optimized_debug==1', {
- 'LinkIncremental': '2',
- }],
- ['v8_optimized_debug==2', {
- 'LinkIncremental': '1',
- 'OptimizeReferences': '2',
- 'EnableCOMDATFolding': '2',
+ ['component=="shared_library"', {
+ 'RuntimeLibrary': '3', # /MDd
+ }, {
+ 'RuntimeLibrary': '1', # /MTd
}],
],
},
+ 'VCLinkerTool': {
+ 'LinkIncremental': '2',
+ },
},
'conditions': [
['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd"
or \
OS=="qnx"', {
- 'cflags': [ '-Woverloaded-virtual', '<(wno_array_bounds)', ],
+ 'cflags!': [
+ '-O0',
+ '-O3', # TODO(2807) should be -O1.
+ '-O2',
+ '-Os',
+ ],
+ 'cflags': [
+ '-fdata-sections',
+ '-ffunction-sections',
+ '-O1', # TODO(2807) should be -O3.
+ ],
'conditions': [
- ['v8_optimized_debug==0', {
- 'cflags!': [
- '-O0',
- '-O3',
- '-O2',
- '-O1',
- '-Os',
- ],
+ ['gcc_version==44 and clang==0', {
'cflags': [
- '-fdata-sections',
- '-ffunction-sections',
+ # Avoid crashes with gcc 4.4 in the v8 test suite.
+ '-fno-tree-vrp',
],
}],
- ['v8_optimized_debug==1', {
- 'cflags!': [
- '-O0',
- '-O3', # TODO(2807) should be -O1.
- '-O2',
- '-Os',
- ],
- 'cflags': [
- '-fdata-sections',
- '-ffunction-sections',
- '-O1', # TODO(2807) should be -O3.
- ],
+ ],
+ }],
+ ['OS=="mac"', {
+ 'xcode_settings': {
+ 'GCC_OPTIMIZATION_LEVEL': '3', # -O3
+ 'GCC_STRICT_ALIASING': 'YES',
+ },
+ }],
+ ],
+ }, # DebugBase1
+ # Abstract configuration for v8_optimized_debug == 2.
+ 'DebugBase2': {
+ 'abstract': 1,
+ 'msvs_settings': {
+ 'VCCLCompilerTool': {
+ 'Optimization': '2',
+ 'InlineFunctionExpansion': '2',
+ 'EnableIntrinsicFunctions': 'true',
+ 'FavorSizeOrSpeed': '0',
+ 'StringPooling': 'true',
+ 'BasicRuntimeChecks': '0',
+ 'conditions': [
+ ['component=="shared_library"', {
+ 'RuntimeLibrary': '3', #/MDd
+ }, {
+ 'RuntimeLibrary': '1', #/MTd
}],
- ['v8_optimized_debug==2', {
- 'cflags!': [
- '-O0',
- '-O1',
- '-Os',
- ],
- 'cflags': [
- '-fdata-sections',
- '-ffunction-sections',
- ],
- 'defines': [
- 'OPTIMIZED_DEBUG'
- ],
- 'conditions': [
- # TODO(crbug.com/272548): Avoid -O3 in NaCl
- ['nacl_target_arch=="none"', {
- 'cflags': ['-O3'],
- 'cflags!': ['-O2'],
- }, {
- 'cflags': ['-O2'],
- 'cflags!': ['-O3'],
- }],
- ],
+ ['v8_target_arch=="x64"', {
+ # TODO(2207): remove this option once the bug is fixed.
+ 'WholeProgramOptimization': 'true',
}],
- ['v8_optimized_debug!=0 and gcc_version==44 and clang==0', {
+ ],
+ },
+ 'VCLinkerTool': {
+ 'LinkIncremental': '1',
+ 'OptimizeReferences': '2',
+ 'EnableCOMDATFolding': '2',
+ },
+ },
+ 'conditions': [
+ ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd"
or \
+ OS=="qnx"', {
+ 'cflags!': [
+ '-O0',
+ '-O1',
+ '-Os',
+ ],
+ 'cflags': [
+ '-fdata-sections',
+ '-ffunction-sections',
+ ],
+ 'defines': [
+ 'OPTIMIZED_DEBUG'
+ ],
+ 'conditions': [
+ # TODO(crbug.com/272548): Avoid -O3 in NaCl
+ ['nacl_target_arch=="none"', {
+ 'cflags': ['-O3'],
+ 'cflags!': ['-O2'],
+ }, {
+ 'cflags': ['-O2'],
+ 'cflags!': ['-O3'],
+ }],
+ ['gcc_version==44 and clang==0', {
'cflags': [
# Avoid crashes with gcc 4.4 in the v8 test suite.
'-fno-tree-vrp',
@@ -581,6 +600,29 @@
}],
],
}],
+ ['OS=="mac"', {
+ 'xcode_settings': {
+ 'GCC_OPTIMIZATION_LEVEL': '3', # -O3
+ 'GCC_STRICT_ALIASING': 'YES',
+ },
+ }],
+ ],
+ }, # DebugBase2
+ # Common settings for the Debug configuration.
+ 'DebugBaseCommon': {
+ 'abstract': 1,
+ 'defines': [
+ 'ENABLE_DISASSEMBLER',
+ 'V8_ENABLE_CHECKS',
+ 'OBJECT_PRINT',
+ 'VERIFY_HEAP',
+ 'DEBUG'
+ ],
+ 'conditions': [
+ ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd"
or \
+ OS=="qnx"', {
+ 'cflags': [ '-Woverloaded-virtual', '<(wno_array_bounds)', ],
+ }],
['OS=="linux" and v8_enable_backtrace==1', {
# Support for backtrace_symbols.
'ldflags': [ '-rdynamic' ],
@@ -599,17 +641,19 @@
}],
],
}],
- ['OS=="mac"', {
- 'xcode_settings': {
- 'conditions': [
- ['v8_optimized_debug==0', {
- 'GCC_OPTIMIZATION_LEVEL': '0', # -O0
- }, {
- 'GCC_OPTIMIZATION_LEVEL': '3', # -O3
- 'GCC_STRICT_ALIASING': 'YES',
- }],
- ],
- },
+ ],
+ }, # DebugBaseCommon
+ 'Debug': {
+ 'inherit_from': ['DebugBaseCommon'],
+ 'conditions': [
+ ['v8_optimized_debug==0', {
+ 'inherit_from': ['DebugBase0'],
+ }],
+ ['v8_optimized_debug==1', {
+ 'inherit_from': ['DebugBase1'],
+ }],
+ ['v8_optimized_debug==2', {
+ 'inherit_from': ['DebugBase2'],
}],
],
}, # Debug
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.