diff --git a/build/features.gypi b/build/features.gypi index 85b8a38465..113822f6a1 100644 --- a/build/features.gypi +++ b/build/features.gypi @@ -98,7 +98,8 @@ }], ], # conditions 'configurations': { - 'Debug': { + 'DebugBaseCommon': { + 'abstract': 1, 'variables': { 'v8_enable_extra_checks%': 1, 'v8_enable_handle_zapping%': 1, diff --git a/build/standalone.gypi b/build/standalone.gypi index e6f22cc24e..279d5ae110 100644 --- a/build/standalone.gypi +++ b/build/standalone.gypi @@ -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. }, diff --git a/build/toolchain.gypi b/build/toolchain.gypi index dc25036daa..154ee99796 100644 --- a/build/toolchain.gypi +++ b/build/toolchain.gypi @@ -445,7 +445,172 @@ }], ], # conditions 'configurations': { - 'Debug': { + # Abstract configuration for v8_optimized_debug == 0. + 'DebugBase0': { + 'abstract': 1, + 'msvs_settings': { + 'VCCLCompilerTool': { + 'Optimization': '0', + 'conditions': [ + ['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': [ + ['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', # TODO(2807) should be -O1. + '-O2', + '-Os', + ], + 'cflags': [ + '-fdata-sections', + '-ffunction-sections', + '-O1', # TODO(2807) should be -O3. + ], + 'conditions': [ + ['gcc_version==44 and clang==0', { + 'cflags': [ + # Avoid crashes with gcc 4.4 in the v8 test suite. + '-fno-tree-vrp', + ], + }], + ], + }], + ['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_target_arch=="x64"', { + # TODO(2207): remove this option once the bug is fixed. + 'WholeProgramOptimization': 'true', + }], + ], + }, + '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', + ], + }], + ], + }], + ['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', @@ -453,133 +618,10 @@ 'VERIFY_HEAP', 'DEBUG' ], - 'msvs_settings': { - 'VCCLCompilerTool': { - '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', - }], - ], - }], - ], - }, - 'VCLinkerTool': { - 'conditions': [ - ['v8_optimized_debug==0', { - 'LinkIncremental': '2', - }], - ['v8_optimized_debug==1', { - 'LinkIncremental': '2', - }], - ['v8_optimized_debug==2', { - 'LinkIncremental': '1', - 'OptimizeReferences': '2', - 'EnableCOMDATFolding': '2', - }], - ], - }, - }, 'conditions': [ ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" or \ OS=="qnx"', { 'cflags': [ '-Woverloaded-virtual', '<(wno_array_bounds)', ], - 'conditions': [ - ['v8_optimized_debug==0', { - 'cflags!': [ - '-O0', - '-O3', - '-O2', - '-O1', - '-Os', - ], - 'cflags': [ - '-fdata-sections', - '-ffunction-sections', - ], - }], - ['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. - ], - }], - ['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_optimized_debug!=0 and gcc_version==44 and clang==0', { - 'cflags': [ - # Avoid crashes with gcc 4.4 in the v8 test suite. - '-fno-tree-vrp', - ], - }], - ], }], ['OS=="linux" and v8_enable_backtrace==1', { # Support for backtrace_symbols. @@ -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