2013-07-10 11:15:16 +00:00
|
|
|
# Copyright 2013 the V8 project authors. All rights reserved.
|
2010-12-14 08:16:39 +00:00
|
|
|
# Redistribution and use in source and binary forms, with or without
|
|
|
|
# modification, are permitted provided that the following conditions are
|
|
|
|
# met:
|
|
|
|
#
|
|
|
|
# * Redistributions of source code must retain the above copyright
|
|
|
|
# notice, this list of conditions and the following disclaimer.
|
|
|
|
# * Redistributions in binary form must reproduce the above
|
|
|
|
# copyright notice, this list of conditions and the following
|
|
|
|
# disclaimer in the documentation and/or other materials provided
|
|
|
|
# with the distribution.
|
|
|
|
# * Neither the name of Google Inc. nor the names of its
|
|
|
|
# contributors may be used to endorse or promote products derived
|
|
|
|
# from this software without specific prior written permission.
|
|
|
|
#
|
|
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
|
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
|
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
|
|
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
|
|
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
|
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
|
|
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
|
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
|
|
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
|
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
|
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
|
2011-08-25 14:50:09 +00:00
|
|
|
# Shared definitions for all V8-related targets.
|
|
|
|
|
2010-12-14 08:16:39 +00:00
|
|
|
{
|
|
|
|
'variables': {
|
2011-08-25 14:50:09 +00:00
|
|
|
'msvs_use_common_release': 0,
|
|
|
|
'gcc_version%': 'unknown',
|
2013-02-19 15:22:12 +00:00
|
|
|
'CXX%': '${CXX:-$(which g++)}', # Used to assemble a shell command.
|
2011-08-25 14:50:09 +00:00
|
|
|
'v8_target_arch%': '<(target_arch)',
|
2013-04-17 08:27:40 +00:00
|
|
|
# Native Client builds currently use the V8 ARM JIT and
|
|
|
|
# arm/simulator-arm.cc to defer the significant effort required
|
|
|
|
# for NaCl JIT support. The nacl_target_arch variable provides
|
|
|
|
# the 'true' target arch for places in this file that need it.
|
|
|
|
# TODO(bradchen): get rid of nacl_target_arch when someday
|
|
|
|
# NaCl V8 builds stop using the ARM simulator
|
|
|
|
'nacl_target_arch%': 'none', # must be set externally
|
2011-08-25 14:50:09 +00:00
|
|
|
|
2013-01-23 16:29:48 +00:00
|
|
|
# Setting 'v8_can_use_vfp32dregs' to 'true' will cause V8 to use the VFP
|
|
|
|
# registers d16-d31 in the generated code, both in the snapshot and for the
|
|
|
|
# ARM target. Leaving the default value of 'false' will avoid the use of
|
|
|
|
# these registers in the snapshot and use CPU feature probing when running
|
|
|
|
# on the target.
|
|
|
|
'v8_can_use_vfp32dregs%': 'false',
|
2013-04-16 15:17:27 +00:00
|
|
|
'arm_test%': 'off',
|
2013-01-23 16:29:48 +00:00
|
|
|
|
2011-11-09 15:31:54 +00:00
|
|
|
# Similar to vfp but on MIPS.
|
|
|
|
'v8_can_use_fpu_instructions%': 'true',
|
|
|
|
|
|
|
|
# Similar to the ARM hard float ABI but on MIPS.
|
|
|
|
'v8_use_mips_abi_hardfloat%': 'true',
|
|
|
|
|
2012-03-13 16:18:30 +00:00
|
|
|
# Default arch variant for MIPS.
|
|
|
|
'mips_arch_variant%': 'mips32r2',
|
|
|
|
|
2012-12-14 14:27:06 +00:00
|
|
|
'v8_enable_backtrace%': 0,
|
2013-07-10 15:21:43 +00:00
|
|
|
|
2011-08-26 11:23:51 +00:00
|
|
|
# Enable profiling support. Only required on Windows.
|
|
|
|
'v8_enable_prof%': 0,
|
|
|
|
|
2012-01-18 10:17:03 +00:00
|
|
|
# Some versions of GCC 4.5 seem to need -fno-strict-aliasing.
|
|
|
|
'v8_no_strict_aliasing%': 0,
|
|
|
|
|
2011-08-25 14:50:09 +00:00
|
|
|
# Chrome needs this definition unconditionally. For standalone V8 builds,
|
|
|
|
# it's handled in build/standalone.gypi.
|
|
|
|
'want_separate_host_toolset%': 1,
|
|
|
|
|
|
|
|
'host_os%': '<(OS)',
|
2011-10-06 11:08:41 +00:00
|
|
|
'werror%': '-Werror',
|
2011-09-08 13:20:49 +00:00
|
|
|
# For a shared library build, results in "libv8-<(soname_version).so".
|
|
|
|
'soname_version%': '',
|
2013-07-10 16:21:17 +00:00
|
|
|
|
|
|
|
# Allow to suppress the array bounds warning (default is no suppression).
|
|
|
|
'wno_array_bounds%': '',
|
2010-12-14 08:16:39 +00:00
|
|
|
},
|
|
|
|
'target_defaults': {
|
2011-08-05 09:44:30 +00:00
|
|
|
'conditions': [
|
2012-05-22 08:10:58 +00:00
|
|
|
['v8_target_arch=="arm"', {
|
|
|
|
'defines': [
|
|
|
|
'V8_TARGET_ARCH_ARM',
|
|
|
|
],
|
2013-06-07 10:02:42 +00:00
|
|
|
'target_conditions': [
|
|
|
|
['_toolset=="host"', {
|
|
|
|
'variables': {
|
|
|
|
'armcompiler': '<!($(echo ${CXX_host:-$(which g++)}) -v 2>&1 | grep -q "^Target: arm" && echo "yes" || echo "no")',
|
|
|
|
},
|
|
|
|
'conditions': [
|
|
|
|
['armcompiler=="yes"', {
|
2013-04-16 14:39:48 +00:00
|
|
|
'conditions': [
|
2013-12-11 11:58:07 +00:00
|
|
|
[ 'arm_version==7', {
|
2013-04-16 14:39:48 +00:00
|
|
|
'cflags': ['-march=armv7-a',],
|
|
|
|
}],
|
2013-12-11 11:58:07 +00:00
|
|
|
[ 'arm_version==7 or arm_version=="default"', {
|
2013-04-16 14:39:48 +00:00
|
|
|
'conditions': [
|
|
|
|
[ 'arm_neon==1', {
|
|
|
|
'cflags': ['-mfpu=neon',],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'conditions': [
|
|
|
|
[ 'arm_fpu!="default"', {
|
|
|
|
'cflags': ['-mfpu=<(arm_fpu)',],
|
|
|
|
}],
|
2013-06-07 10:02:42 +00:00
|
|
|
],
|
2013-04-16 14:39:48 +00:00
|
|
|
}],
|
2013-06-07 10:02:42 +00:00
|
|
|
],
|
2013-04-16 14:39:48 +00:00
|
|
|
}],
|
|
|
|
[ 'arm_float_abi!="default"', {
|
|
|
|
'cflags': ['-mfloat-abi=<(arm_float_abi)',],
|
|
|
|
}],
|
|
|
|
[ 'arm_thumb==1', {
|
|
|
|
'cflags': ['-mthumb',],
|
|
|
|
}],
|
|
|
|
[ 'arm_thumb==0', {
|
|
|
|
'cflags': ['-marm',],
|
|
|
|
}],
|
2013-06-07 10:02:42 +00:00
|
|
|
[ 'arm_test=="on"', {
|
|
|
|
'defines': [
|
|
|
|
'ARM_TEST',
|
|
|
|
],
|
|
|
|
}],
|
|
|
|
],
|
|
|
|
}, {
|
|
|
|
# armcompiler=="no"
|
|
|
|
'conditions': [
|
2013-12-11 11:58:07 +00:00
|
|
|
[ 'arm_version==7 or arm_version=="default"', {
|
2013-06-07 10:02:42 +00:00
|
|
|
'defines': [
|
|
|
|
'CAN_USE_ARMV7_INSTRUCTIONS=1',
|
|
|
|
],
|
|
|
|
'conditions': [
|
|
|
|
[ 'arm_fpu=="default"', {
|
|
|
|
'defines': [
|
|
|
|
'CAN_USE_VFP3_INSTRUCTIONS',
|
|
|
|
],
|
|
|
|
}],
|
|
|
|
[ 'arm_fpu=="vfpv3-d16"', {
|
|
|
|
'defines': [
|
|
|
|
'CAN_USE_VFP3_INSTRUCTIONS',
|
|
|
|
],
|
|
|
|
}],
|
|
|
|
[ 'arm_fpu=="vfpv3"', {
|
|
|
|
'defines': [
|
|
|
|
'CAN_USE_VFP3_INSTRUCTIONS',
|
|
|
|
'CAN_USE_VFP32DREGS',
|
|
|
|
],
|
|
|
|
}],
|
|
|
|
[ 'arm_fpu=="neon" or arm_neon==1', {
|
|
|
|
'defines': [
|
|
|
|
'CAN_USE_VFP3_INSTRUCTIONS',
|
|
|
|
'CAN_USE_VFP32DREGS',
|
|
|
|
],
|
|
|
|
}],
|
|
|
|
],
|
|
|
|
}],
|
|
|
|
[ 'arm_float_abi=="hard"', {
|
|
|
|
'defines': [
|
|
|
|
'USE_EABI_HARDFLOAT=1',
|
|
|
|
],
|
|
|
|
}],
|
|
|
|
[ 'arm_float_abi=="softfp" or arm_float_abi=="default"', {
|
|
|
|
'defines': [
|
|
|
|
'USE_EABI_HARDFLOAT=0',
|
|
|
|
],
|
|
|
|
}],
|
2013-04-16 14:39:48 +00:00
|
|
|
],
|
|
|
|
'defines': [
|
|
|
|
'ARM_TEST',
|
|
|
|
],
|
|
|
|
}],
|
2012-05-22 08:10:58 +00:00
|
|
|
],
|
2013-06-07 10:02:42 +00:00
|
|
|
}], # _toolset=="host"
|
|
|
|
['_toolset=="target"', {
|
|
|
|
'variables': {
|
|
|
|
'armcompiler': '<!($(echo ${CXX_target:-<(CXX)}) -v 2>&1 | grep -q "^Target: arm" && echo "yes" || echo "no")',
|
|
|
|
},
|
2013-04-16 14:39:48 +00:00
|
|
|
'conditions': [
|
2013-06-07 10:02:42 +00:00
|
|
|
['armcompiler=="yes"', {
|
2013-04-16 14:39:48 +00:00
|
|
|
'conditions': [
|
2013-12-11 11:58:07 +00:00
|
|
|
[ 'arm_version==7', {
|
2013-06-07 10:02:42 +00:00
|
|
|
'cflags': ['-march=armv7-a',],
|
|
|
|
}],
|
2013-12-11 11:58:07 +00:00
|
|
|
[ 'arm_version==7 or arm_version=="default"', {
|
2013-06-07 10:02:42 +00:00
|
|
|
'conditions': [
|
|
|
|
[ 'arm_neon==1', {
|
|
|
|
'cflags': ['-mfpu=neon',],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
'conditions': [
|
|
|
|
[ 'arm_fpu!="default"', {
|
|
|
|
'cflags': ['-mfpu=<(arm_fpu)',],
|
|
|
|
}],
|
|
|
|
],
|
|
|
|
}],
|
|
|
|
],
|
|
|
|
}],
|
|
|
|
[ 'arm_float_abi!="default"', {
|
|
|
|
'cflags': ['-mfloat-abi=<(arm_float_abi)',],
|
|
|
|
}],
|
|
|
|
[ 'arm_thumb==1', {
|
|
|
|
'cflags': ['-mthumb',],
|
|
|
|
}],
|
|
|
|
[ 'arm_thumb==0', {
|
|
|
|
'cflags': ['-marm',],
|
|
|
|
}],
|
|
|
|
[ 'arm_test=="on"', {
|
2013-04-16 14:39:48 +00:00
|
|
|
'defines': [
|
2013-06-07 10:02:42 +00:00
|
|
|
'ARM_TEST',
|
2013-04-16 14:39:48 +00:00
|
|
|
],
|
|
|
|
}],
|
2013-06-07 10:02:42 +00:00
|
|
|
],
|
|
|
|
}, {
|
|
|
|
# armcompiler=="no"
|
|
|
|
'conditions': [
|
2013-12-11 11:58:07 +00:00
|
|
|
[ 'arm_version==7 or arm_version=="default"', {
|
2013-04-16 14:39:48 +00:00
|
|
|
'defines': [
|
2013-06-07 10:02:42 +00:00
|
|
|
'CAN_USE_ARMV7_INSTRUCTIONS=1',
|
|
|
|
],
|
|
|
|
'conditions': [
|
|
|
|
[ 'arm_fpu=="default"', {
|
|
|
|
'defines': [
|
|
|
|
'CAN_USE_VFP3_INSTRUCTIONS',
|
|
|
|
],
|
|
|
|
}],
|
|
|
|
[ 'arm_fpu=="vfpv3-d16"', {
|
|
|
|
'defines': [
|
|
|
|
'CAN_USE_VFP3_INSTRUCTIONS',
|
|
|
|
],
|
|
|
|
}],
|
|
|
|
[ 'arm_fpu=="vfpv3"', {
|
|
|
|
'defines': [
|
|
|
|
'CAN_USE_VFP3_INSTRUCTIONS',
|
|
|
|
'CAN_USE_VFP32DREGS',
|
|
|
|
],
|
|
|
|
}],
|
|
|
|
[ 'arm_fpu=="neon" or arm_neon==1', {
|
|
|
|
'defines': [
|
|
|
|
'CAN_USE_VFP3_INSTRUCTIONS',
|
|
|
|
'CAN_USE_VFP32DREGS',
|
|
|
|
],
|
|
|
|
}],
|
2013-04-16 14:39:48 +00:00
|
|
|
],
|
|
|
|
}],
|
2013-06-07 10:02:42 +00:00
|
|
|
[ 'arm_float_abi=="hard"', {
|
2013-04-16 14:39:48 +00:00
|
|
|
'defines': [
|
2013-06-07 10:02:42 +00:00
|
|
|
'USE_EABI_HARDFLOAT=1',
|
2013-04-16 14:39:48 +00:00
|
|
|
],
|
|
|
|
}],
|
2013-06-07 10:02:42 +00:00
|
|
|
[ 'arm_float_abi=="softfp" or arm_float_abi=="default"', {
|
2013-04-16 14:39:48 +00:00
|
|
|
'defines': [
|
2013-06-07 10:02:42 +00:00
|
|
|
'USE_EABI_HARDFLOAT=0',
|
2013-04-16 14:39:48 +00:00
|
|
|
],
|
|
|
|
}],
|
|
|
|
],
|
|
|
|
'defines': [
|
2013-06-07 10:02:42 +00:00
|
|
|
'ARM_TEST',
|
2013-04-16 14:39:48 +00:00
|
|
|
],
|
|
|
|
}],
|
2013-06-07 10:02:42 +00:00
|
|
|
],
|
|
|
|
}], # _toolset=="target"
|
2012-05-22 08:10:58 +00:00
|
|
|
],
|
|
|
|
}], # v8_target_arch=="arm"
|
|
|
|
['v8_target_arch=="ia32"', {
|
|
|
|
'defines': [
|
|
|
|
'V8_TARGET_ARCH_IA32',
|
|
|
|
],
|
|
|
|
}], # v8_target_arch=="ia32"
|
2012-07-11 15:15:04 +00:00
|
|
|
['v8_target_arch=="mipsel"', {
|
2012-05-22 08:10:58 +00:00
|
|
|
'defines': [
|
|
|
|
'V8_TARGET_ARCH_MIPS',
|
|
|
|
],
|
|
|
|
'variables': {
|
2013-02-19 15:22:12 +00:00
|
|
|
'mipscompiler': '<!($(echo <(CXX)) -v 2>&1 | grep -q "^Target: mips" && echo "yes" || echo "no")',
|
2012-05-22 08:10:58 +00:00
|
|
|
},
|
|
|
|
'conditions': [
|
|
|
|
['mipscompiler=="yes"', {
|
|
|
|
'target_conditions': [
|
|
|
|
['_toolset=="target"', {
|
|
|
|
'cflags': ['-EL'],
|
|
|
|
'ldflags': ['-EL'],
|
|
|
|
'conditions': [
|
|
|
|
[ 'v8_use_mips_abi_hardfloat=="true"', {
|
|
|
|
'cflags': ['-mhard-float'],
|
|
|
|
'ldflags': ['-mhard-float'],
|
|
|
|
}, {
|
|
|
|
'cflags': ['-msoft-float'],
|
|
|
|
'ldflags': ['-msoft-float'],
|
|
|
|
}],
|
|
|
|
['mips_arch_variant=="mips32r2"', {
|
|
|
|
'cflags': ['-mips32r2', '-Wa,-mips32r2'],
|
|
|
|
}],
|
2012-10-30 10:54:44 +00:00
|
|
|
['mips_arch_variant=="mips32r1"', {
|
|
|
|
'cflags': ['-mips32', '-Wa,-mips32'],
|
|
|
|
}],
|
2012-05-22 08:10:58 +00:00
|
|
|
['mips_arch_variant=="loongson"', {
|
|
|
|
'cflags': ['-mips3', '-Wa,-mips3'],
|
|
|
|
}],
|
2011-11-09 15:31:54 +00:00
|
|
|
],
|
|
|
|
}],
|
|
|
|
],
|
2010-12-14 08:16:39 +00:00
|
|
|
}],
|
2012-05-22 08:10:58 +00:00
|
|
|
[ 'v8_can_use_fpu_instructions=="true"', {
|
2011-04-27 14:20:21 +00:00
|
|
|
'defines': [
|
2012-05-22 08:10:58 +00:00
|
|
|
'CAN_USE_FPU_INSTRUCTIONS',
|
2011-04-27 14:20:21 +00:00
|
|
|
],
|
|
|
|
}],
|
2012-05-22 08:10:58 +00:00
|
|
|
[ 'v8_use_mips_abi_hardfloat=="true"', {
|
|
|
|
'defines': [
|
|
|
|
'__mips_hard_float=1',
|
|
|
|
'CAN_USE_FPU_INSTRUCTIONS',
|
|
|
|
],
|
|
|
|
}, {
|
|
|
|
'defines': [
|
|
|
|
'__mips_soft_float=1'
|
|
|
|
],
|
2012-03-30 15:01:11 +00:00
|
|
|
}],
|
2012-05-22 08:10:58 +00:00
|
|
|
['mips_arch_variant=="mips32r2"', {
|
|
|
|
'defines': ['_MIPS_ARCH_MIPS32R2',],
|
|
|
|
}],
|
|
|
|
['mips_arch_variant=="loongson"', {
|
|
|
|
'defines': ['_MIPS_ARCH_LOONGSON',],
|
2012-03-30 15:01:11 +00:00
|
|
|
}],
|
|
|
|
],
|
2012-07-11 15:15:04 +00:00
|
|
|
}], # v8_target_arch=="mipsel"
|
2012-05-22 08:10:58 +00:00
|
|
|
['v8_target_arch=="x64"', {
|
|
|
|
'defines': [
|
|
|
|
'V8_TARGET_ARCH_X64',
|
|
|
|
],
|
|
|
|
'xcode_settings': {
|
|
|
|
'ARCHS': [ 'x86_64' ],
|
|
|
|
},
|
|
|
|
'msvs_settings': {
|
|
|
|
'VCLinkerTool': {
|
2012-10-25 12:18:24 +00:00
|
|
|
'StackReserveSize': '2097152',
|
2012-05-22 08:10:58 +00:00
|
|
|
},
|
|
|
|
},
|
2012-06-19 14:20:29 +00:00
|
|
|
'msvs_configuration_platform': 'x64',
|
2012-05-22 08:10:58 +00:00
|
|
|
}], # v8_target_arch=="x64"
|
2012-01-17 14:35:38 +00:00
|
|
|
['OS=="win"', {
|
|
|
|
'defines': [
|
|
|
|
'WIN32',
|
|
|
|
],
|
2012-05-29 10:00:57 +00:00
|
|
|
'msvs_configuration_attributes': {
|
|
|
|
'OutputDirectory': '<(DEPTH)\\build\\$(ConfigurationName)',
|
|
|
|
'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)',
|
|
|
|
'CharacterSet': '1',
|
|
|
|
},
|
2012-01-17 14:35:38 +00:00
|
|
|
}],
|
2011-08-26 11:23:51 +00:00
|
|
|
['OS=="win" and v8_enable_prof==1', {
|
|
|
|
'msvs_settings': {
|
|
|
|
'VCLinkerTool': {
|
|
|
|
'GenerateMapFile': 'true',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}],
|
2012-01-05 12:17:08 +00:00
|
|
|
['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \
|
|
|
|
or OS=="netbsd"', {
|
2011-09-01 11:50:29 +00:00
|
|
|
'conditions': [
|
2012-01-18 10:17:03 +00:00
|
|
|
[ 'v8_no_strict_aliasing==1', {
|
|
|
|
'cflags': [ '-fno-strict-aliasing' ],
|
|
|
|
}],
|
|
|
|
], # conditions
|
2011-09-01 11:50:29 +00:00
|
|
|
}],
|
2011-09-15 08:13:39 +00:00
|
|
|
['OS=="solaris"', {
|
|
|
|
'defines': [ '__C99FEATURES__=1' ], # isinf() etc.
|
|
|
|
}],
|
2012-05-21 09:01:19 +00:00
|
|
|
['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \
|
|
|
|
or OS=="netbsd" or OS=="mac" or OS=="android") and \
|
|
|
|
(v8_target_arch=="arm" or v8_target_arch=="ia32" or \
|
2012-07-11 15:15:04 +00:00
|
|
|
v8_target_arch=="mipsel")', {
|
2012-05-21 09:01:19 +00:00
|
|
|
# Check whether the host compiler and target compiler support the
|
|
|
|
# '-m32' option and set it if so.
|
|
|
|
'target_conditions': [
|
|
|
|
['_toolset=="host"', {
|
|
|
|
'variables': {
|
2013-11-18 14:32:30 +00:00
|
|
|
'm32flag': '<!(($(echo ${CXX_host:-$(which g++)}) -m32 -E - > /dev/null 2>&1 < /dev/null) && echo "-m32" || true)',
|
2012-05-21 09:01:19 +00:00
|
|
|
},
|
|
|
|
'cflags': [ '<(m32flag)' ],
|
|
|
|
'ldflags': [ '<(m32flag)' ],
|
2012-05-22 08:10:58 +00:00
|
|
|
'xcode_settings': {
|
|
|
|
'ARCHS': [ 'i386' ],
|
|
|
|
},
|
2012-05-21 09:01:19 +00:00
|
|
|
}],
|
|
|
|
['_toolset=="target"', {
|
|
|
|
'variables': {
|
2013-11-18 14:32:30 +00:00
|
|
|
'm32flag': '<!(($(echo ${CXX_target:-<(CXX)}) -m32 -E - > /dev/null 2>&1 < /dev/null) && echo "-m32" || true)',
|
2012-09-28 14:38:59 +00:00
|
|
|
'clang%': 0,
|
2012-05-21 09:01:19 +00:00
|
|
|
},
|
2012-09-28 14:38:59 +00:00
|
|
|
'conditions': [
|
2013-04-17 08:27:40 +00:00
|
|
|
['(OS!="android" or clang==1) and \
|
|
|
|
nacl_target_arch!="nacl_x64"', {
|
2012-09-28 14:38:59 +00:00
|
|
|
'cflags': [ '<(m32flag)' ],
|
|
|
|
'ldflags': [ '<(m32flag)' ],
|
|
|
|
}],
|
|
|
|
],
|
2012-05-22 08:10:58 +00:00
|
|
|
'xcode_settings': {
|
|
|
|
'ARCHS': [ 'i386' ],
|
|
|
|
},
|
2012-05-21 09:01:19 +00:00
|
|
|
}],
|
|
|
|
],
|
|
|
|
}],
|
2013-07-02 15:03:54 +00:00
|
|
|
['(OS=="linux") and (v8_target_arch=="x64")', {
|
|
|
|
# Check whether the host compiler and target compiler support the
|
|
|
|
# '-m64' option and set it if so.
|
|
|
|
'target_conditions': [
|
|
|
|
['_toolset=="host"', {
|
|
|
|
'variables': {
|
2013-11-18 14:32:30 +00:00
|
|
|
'm64flag': '<!(($(echo ${CXX_host:-$(which g++)}) -m64 -E - > /dev/null 2>&1 < /dev/null) && echo "-m64" || true)',
|
2013-07-02 15:03:54 +00:00
|
|
|
},
|
|
|
|
'cflags': [ '<(m64flag)' ],
|
|
|
|
'ldflags': [ '<(m64flag)' ],
|
|
|
|
}],
|
|
|
|
['_toolset=="target"', {
|
|
|
|
'variables': {
|
2013-11-18 14:32:30 +00:00
|
|
|
'm64flag': '<!(($(echo ${CXX_target:-<(CXX)}) -m64 -E - > /dev/null 2>&1 < /dev/null) && echo "-m64" || true)',
|
2013-07-02 15:03:54 +00:00
|
|
|
},
|
|
|
|
'cflags': [ '<(m64flag)' ],
|
|
|
|
'ldflags': [ '<(m64flag)' ],
|
|
|
|
}]
|
|
|
|
],
|
|
|
|
}],
|
2012-05-22 08:10:58 +00:00
|
|
|
['OS=="freebsd" or OS=="openbsd"', {
|
|
|
|
'cflags': [ '-I/usr/local/include' ],
|
|
|
|
}],
|
|
|
|
['OS=="netbsd"', {
|
|
|
|
'cflags': [ '-I/usr/pkg/include' ],
|
|
|
|
}],
|
2012-01-17 14:35:38 +00:00
|
|
|
], # conditions
|
2011-08-25 14:50:09 +00:00
|
|
|
'configurations': {
|
|
|
|
'Debug': {
|
|
|
|
'defines': [
|
|
|
|
'ENABLE_DISASSEMBLER',
|
|
|
|
'V8_ENABLE_CHECKS',
|
|
|
|
'OBJECT_PRINT',
|
2012-10-12 11:41:14 +00:00
|
|
|
'VERIFY_HEAP',
|
2013-10-25 11:10:28 +00:00
|
|
|
'DEBUG'
|
2011-08-25 14:50:09 +00:00
|
|
|
],
|
2011-04-27 14:20:21 +00:00
|
|
|
'msvs_settings': {
|
|
|
|
'VCCLCompilerTool': {
|
|
|
|
'conditions': [
|
Revamp v8_optimized_debug options
This patch changes the definition of v8_optimized_debug==1 to match the release-mode compiler optimization settings (generally, going from -O1 to -O3 on Linux, similar switches for Mac/Win). This produces a minor speed up on Linux, but significant speedups on Mac and Win. This may make it much harder to debug, though.
It also adds a v8_optimized_debug==2 that, in addition to the compiler optimizations, undef's DEBUG and defines DEBUG. This leaves V8_ENABLE_CHECKS alone (so that the assertions are still enabled), but otherwise basically matches a release mode build.
Builds with v8_optimized_debug==2 roughly match a Release mode build for speed; the V8_ENABLE_CHECKS checks appear to have minimal performance impact (maybe 5-10%, unlike what was previously thought). In addition, switching from the previous optimization settings makes a significant improvement on Mac and Win (50% or more), and switching from DEBUG to NDEBUG makes a significant improvement (another 50% or more).
Note that using v8_optimized_debug==2 may also cause some v8 tests to fail. This is currently is believed to be acceptable.
R=machenbach@chromium.org
BUG=254188
Review URL: https://codereview.chromium.org/19384011
Patch from Dirk Pranke <dpranke@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 14:00:06 +00:00
|
|
|
['v8_optimized_debug==0', {
|
|
|
|
'Optimization': '0',
|
2013-08-02 07:58:23 +00:00
|
|
|
'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', {
|
Revamp v8_optimized_debug options
This patch changes the definition of v8_optimized_debug==1 to match the release-mode compiler optimization settings (generally, going from -O1 to -O3 on Linux, similar switches for Mac/Win). This produces a minor speed up on Linux, but significant speedups on Mac and Win. This may make it much harder to debug, though.
It also adds a v8_optimized_debug==2 that, in addition to the compiler optimizations, undef's DEBUG and defines DEBUG. This leaves V8_ENABLE_CHECKS alone (so that the assertions are still enabled), but otherwise basically matches a release mode build.
Builds with v8_optimized_debug==2 roughly match a Release mode build for speed; the V8_ENABLE_CHECKS checks appear to have minimal performance impact (maybe 5-10%, unlike what was previously thought). In addition, switching from the previous optimization settings makes a significant improvement on Mac and Win (50% or more), and switching from DEBUG to NDEBUG makes a significant improvement (another 50% or more).
Note that using v8_optimized_debug==2 may also cause some v8 tests to fail. This is currently is believed to be acceptable.
R=machenbach@chromium.org
BUG=254188
Review URL: https://codereview.chromium.org/19384011
Patch from Dirk Pranke <dpranke@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 14:00:06 +00:00
|
|
|
'Optimization': '2',
|
2013-07-10 15:21:43 +00:00
|
|
|
'InlineFunctionExpansion': '2',
|
|
|
|
'EnableIntrinsicFunctions': 'true',
|
|
|
|
'FavorSizeOrSpeed': '0',
|
|
|
|
'StringPooling': 'true',
|
|
|
|
'BasicRuntimeChecks': '0',
|
Revamp v8_optimized_debug options
This patch changes the definition of v8_optimized_debug==1 to match the release-mode compiler optimization settings (generally, going from -O1 to -O3 on Linux, similar switches for Mac/Win). This produces a minor speed up on Linux, but significant speedups on Mac and Win. This may make it much harder to debug, though.
It also adds a v8_optimized_debug==2 that, in addition to the compiler optimizations, undef's DEBUG and defines DEBUG. This leaves V8_ENABLE_CHECKS alone (so that the assertions are still enabled), but otherwise basically matches a release mode build.
Builds with v8_optimized_debug==2 roughly match a Release mode build for speed; the V8_ENABLE_CHECKS checks appear to have minimal performance impact (maybe 5-10%, unlike what was previously thought). In addition, switching from the previous optimization settings makes a significant improvement on Mac and Win (50% or more), and switching from DEBUG to NDEBUG makes a significant improvement (another 50% or more).
Note that using v8_optimized_debug==2 may also cause some v8 tests to fail. This is currently is believed to be acceptable.
R=machenbach@chromium.org
BUG=254188
Review URL: https://codereview.chromium.org/19384011
Patch from Dirk Pranke <dpranke@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 14:00:06 +00:00
|
|
|
'conditions': [
|
|
|
|
['component=="shared_library"', {
|
2013-08-02 10:59:23 +00:00
|
|
|
'RuntimeLibrary': '3', #/MDd
|
Revamp v8_optimized_debug options
This patch changes the definition of v8_optimized_debug==1 to match the release-mode compiler optimization settings (generally, going from -O1 to -O3 on Linux, similar switches for Mac/Win). This produces a minor speed up on Linux, but significant speedups on Mac and Win. This may make it much harder to debug, though.
It also adds a v8_optimized_debug==2 that, in addition to the compiler optimizations, undef's DEBUG and defines DEBUG. This leaves V8_ENABLE_CHECKS alone (so that the assertions are still enabled), but otherwise basically matches a release mode build.
Builds with v8_optimized_debug==2 roughly match a Release mode build for speed; the V8_ENABLE_CHECKS checks appear to have minimal performance impact (maybe 5-10%, unlike what was previously thought). In addition, switching from the previous optimization settings makes a significant improvement on Mac and Win (50% or more), and switching from DEBUG to NDEBUG makes a significant improvement (another 50% or more).
Note that using v8_optimized_debug==2 may also cause some v8 tests to fail. This is currently is believed to be acceptable.
R=machenbach@chromium.org
BUG=254188
Review URL: https://codereview.chromium.org/19384011
Patch from Dirk Pranke <dpranke@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 14:00:06 +00:00
|
|
|
}, {
|
2013-08-02 10:59:23 +00:00
|
|
|
'RuntimeLibrary': '1', #/MTd
|
Revamp v8_optimized_debug options
This patch changes the definition of v8_optimized_debug==1 to match the release-mode compiler optimization settings (generally, going from -O1 to -O3 on Linux, similar switches for Mac/Win). This produces a minor speed up on Linux, but significant speedups on Mac and Win. This may make it much harder to debug, though.
It also adds a v8_optimized_debug==2 that, in addition to the compiler optimizations, undef's DEBUG and defines DEBUG. This leaves V8_ENABLE_CHECKS alone (so that the assertions are still enabled), but otherwise basically matches a release mode build.
Builds with v8_optimized_debug==2 roughly match a Release mode build for speed; the V8_ENABLE_CHECKS checks appear to have minimal performance impact (maybe 5-10%, unlike what was previously thought). In addition, switching from the previous optimization settings makes a significant improvement on Mac and Win (50% or more), and switching from DEBUG to NDEBUG makes a significant improvement (another 50% or more).
Note that using v8_optimized_debug==2 may also cause some v8 tests to fail. This is currently is believed to be acceptable.
R=machenbach@chromium.org
BUG=254188
Review URL: https://codereview.chromium.org/19384011
Patch from Dirk Pranke <dpranke@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 14:00:06 +00:00
|
|
|
}],
|
|
|
|
['v8_target_arch=="x64"', {
|
|
|
|
# TODO(2207): remove this option once the bug is fixed.
|
|
|
|
'WholeProgramOptimization': 'true',
|
|
|
|
}],
|
|
|
|
],
|
2013-07-10 15:21:43 +00:00
|
|
|
}],
|
2011-04-27 14:20:21 +00:00
|
|
|
],
|
|
|
|
},
|
|
|
|
'VCLinkerTool': {
|
Revamp v8_optimized_debug options
This patch changes the definition of v8_optimized_debug==1 to match the release-mode compiler optimization settings (generally, going from -O1 to -O3 on Linux, similar switches for Mac/Win). This produces a minor speed up on Linux, but significant speedups on Mac and Win. This may make it much harder to debug, though.
It also adds a v8_optimized_debug==2 that, in addition to the compiler optimizations, undef's DEBUG and defines DEBUG. This leaves V8_ENABLE_CHECKS alone (so that the assertions are still enabled), but otherwise basically matches a release mode build.
Builds with v8_optimized_debug==2 roughly match a Release mode build for speed; the V8_ENABLE_CHECKS checks appear to have minimal performance impact (maybe 5-10%, unlike what was previously thought). In addition, switching from the previous optimization settings makes a significant improvement on Mac and Win (50% or more), and switching from DEBUG to NDEBUG makes a significant improvement (another 50% or more).
Note that using v8_optimized_debug==2 may also cause some v8 tests to fail. This is currently is believed to be acceptable.
R=machenbach@chromium.org
BUG=254188
Review URL: https://codereview.chromium.org/19384011
Patch from Dirk Pranke <dpranke@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 14:00:06 +00:00
|
|
|
'conditions': [
|
|
|
|
['v8_optimized_debug==0', {
|
|
|
|
'LinkIncremental': '2',
|
2013-08-02 07:58:23 +00:00
|
|
|
}],
|
|
|
|
['v8_optimized_debug==1', {
|
|
|
|
'LinkIncremental': '2',
|
|
|
|
}],
|
|
|
|
['v8_optimized_debug==2', {
|
Revamp v8_optimized_debug options
This patch changes the definition of v8_optimized_debug==1 to match the release-mode compiler optimization settings (generally, going from -O1 to -O3 on Linux, similar switches for Mac/Win). This produces a minor speed up on Linux, but significant speedups on Mac and Win. This may make it much harder to debug, though.
It also adds a v8_optimized_debug==2 that, in addition to the compiler optimizations, undef's DEBUG and defines DEBUG. This leaves V8_ENABLE_CHECKS alone (so that the assertions are still enabled), but otherwise basically matches a release mode build.
Builds with v8_optimized_debug==2 roughly match a Release mode build for speed; the V8_ENABLE_CHECKS checks appear to have minimal performance impact (maybe 5-10%, unlike what was previously thought). In addition, switching from the previous optimization settings makes a significant improvement on Mac and Win (50% or more), and switching from DEBUG to NDEBUG makes a significant improvement (another 50% or more).
Note that using v8_optimized_debug==2 may also cause some v8 tests to fail. This is currently is believed to be acceptable.
R=machenbach@chromium.org
BUG=254188
Review URL: https://codereview.chromium.org/19384011
Patch from Dirk Pranke <dpranke@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 14:00:06 +00:00
|
|
|
'LinkIncremental': '1',
|
|
|
|
'OptimizeReferences': '2',
|
|
|
|
'EnableCOMDATFolding': '2',
|
|
|
|
}],
|
|
|
|
],
|
2011-04-27 14:20:21 +00:00
|
|
|
},
|
|
|
|
},
|
2011-08-25 14:50:09 +00:00
|
|
|
'conditions': [
|
2012-01-05 12:17:08 +00:00
|
|
|
['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd"', {
|
2011-10-06 11:08:41 +00:00
|
|
|
'cflags': [ '-Wall', '<(werror)', '-W', '-Wno-unused-parameter',
|
2013-07-10 16:21:17 +00:00
|
|
|
'-Wnon-virtual-dtor', '-Woverloaded-virtual',
|
|
|
|
'<(wno_array_bounds)' ],
|
2013-07-10 15:21:43 +00:00
|
|
|
'conditions': [
|
Revamp v8_optimized_debug options
This patch changes the definition of v8_optimized_debug==1 to match the release-mode compiler optimization settings (generally, going from -O1 to -O3 on Linux, similar switches for Mac/Win). This produces a minor speed up on Linux, but significant speedups on Mac and Win. This may make it much harder to debug, though.
It also adds a v8_optimized_debug==2 that, in addition to the compiler optimizations, undef's DEBUG and defines DEBUG. This leaves V8_ENABLE_CHECKS alone (so that the assertions are still enabled), but otherwise basically matches a release mode build.
Builds with v8_optimized_debug==2 roughly match a Release mode build for speed; the V8_ENABLE_CHECKS checks appear to have minimal performance impact (maybe 5-10%, unlike what was previously thought). In addition, switching from the previous optimization settings makes a significant improvement on Mac and Win (50% or more), and switching from DEBUG to NDEBUG makes a significant improvement (another 50% or more).
Note that using v8_optimized_debug==2 may also cause some v8 tests to fail. This is currently is believed to be acceptable.
R=machenbach@chromium.org
BUG=254188
Review URL: https://codereview.chromium.org/19384011
Patch from Dirk Pranke <dpranke@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 14:00:06 +00:00
|
|
|
['v8_optimized_debug==0', {
|
|
|
|
'cflags!': [
|
|
|
|
'-O0',
|
|
|
|
'-O3',
|
|
|
|
'-O2',
|
|
|
|
'-O1',
|
|
|
|
'-Os',
|
|
|
|
],
|
|
|
|
'cflags': [
|
|
|
|
'-fdata-sections',
|
|
|
|
'-ffunction-sections',
|
|
|
|
],
|
|
|
|
}],
|
2013-07-10 15:21:43 +00:00
|
|
|
['v8_optimized_debug==1', {
|
|
|
|
'cflags!': [
|
|
|
|
'-O0',
|
Revamp v8_optimized_debug options
This patch changes the definition of v8_optimized_debug==1 to match the release-mode compiler optimization settings (generally, going from -O1 to -O3 on Linux, similar switches for Mac/Win). This produces a minor speed up on Linux, but significant speedups on Mac and Win. This may make it much harder to debug, though.
It also adds a v8_optimized_debug==2 that, in addition to the compiler optimizations, undef's DEBUG and defines DEBUG. This leaves V8_ENABLE_CHECKS alone (so that the assertions are still enabled), but otherwise basically matches a release mode build.
Builds with v8_optimized_debug==2 roughly match a Release mode build for speed; the V8_ENABLE_CHECKS checks appear to have minimal performance impact (maybe 5-10%, unlike what was previously thought). In addition, switching from the previous optimization settings makes a significant improvement on Mac and Win (50% or more), and switching from DEBUG to NDEBUG makes a significant improvement (another 50% or more).
Note that using v8_optimized_debug==2 may also cause some v8 tests to fail. This is currently is believed to be acceptable.
R=machenbach@chromium.org
BUG=254188
Review URL: https://codereview.chromium.org/19384011
Patch from Dirk Pranke <dpranke@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 14:00:06 +00:00
|
|
|
'-O3', # TODO(2807) should be -O1.
|
2013-07-10 15:21:43 +00:00
|
|
|
'-O2',
|
|
|
|
'-Os',
|
|
|
|
],
|
|
|
|
'cflags': [
|
|
|
|
'-fdata-sections',
|
|
|
|
'-ffunction-sections',
|
Revamp v8_optimized_debug options
This patch changes the definition of v8_optimized_debug==1 to match the release-mode compiler optimization settings (generally, going from -O1 to -O3 on Linux, similar switches for Mac/Win). This produces a minor speed up on Linux, but significant speedups on Mac and Win. This may make it much harder to debug, though.
It also adds a v8_optimized_debug==2 that, in addition to the compiler optimizations, undef's DEBUG and defines DEBUG. This leaves V8_ENABLE_CHECKS alone (so that the assertions are still enabled), but otherwise basically matches a release mode build.
Builds with v8_optimized_debug==2 roughly match a Release mode build for speed; the V8_ENABLE_CHECKS checks appear to have minimal performance impact (maybe 5-10%, unlike what was previously thought). In addition, switching from the previous optimization settings makes a significant improvement on Mac and Win (50% or more), and switching from DEBUG to NDEBUG makes a significant improvement (another 50% or more).
Note that using v8_optimized_debug==2 may also cause some v8 tests to fail. This is currently is believed to be acceptable.
R=machenbach@chromium.org
BUG=254188
Review URL: https://codereview.chromium.org/19384011
Patch from Dirk Pranke <dpranke@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 14:00:06 +00:00
|
|
|
'-O1', # TODO(2807) should be -O3.
|
|
|
|
],
|
|
|
|
}],
|
|
|
|
['v8_optimized_debug==2', {
|
|
|
|
'cflags!': [
|
|
|
|
'-O0',
|
2013-07-10 15:21:43 +00:00
|
|
|
'-O1',
|
Revamp v8_optimized_debug options
This patch changes the definition of v8_optimized_debug==1 to match the release-mode compiler optimization settings (generally, going from -O1 to -O3 on Linux, similar switches for Mac/Win). This produces a minor speed up on Linux, but significant speedups on Mac and Win. This may make it much harder to debug, though.
It also adds a v8_optimized_debug==2 that, in addition to the compiler optimizations, undef's DEBUG and defines DEBUG. This leaves V8_ENABLE_CHECKS alone (so that the assertions are still enabled), but otherwise basically matches a release mode build.
Builds with v8_optimized_debug==2 roughly match a Release mode build for speed; the V8_ENABLE_CHECKS checks appear to have minimal performance impact (maybe 5-10%, unlike what was previously thought). In addition, switching from the previous optimization settings makes a significant improvement on Mac and Win (50% or more), and switching from DEBUG to NDEBUG makes a significant improvement (another 50% or more).
Note that using v8_optimized_debug==2 may also cause some v8 tests to fail. This is currently is believed to be acceptable.
R=machenbach@chromium.org
BUG=254188
Review URL: https://codereview.chromium.org/19384011
Patch from Dirk Pranke <dpranke@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 14:00:06 +00:00
|
|
|
'-Os',
|
|
|
|
],
|
|
|
|
'cflags': [
|
|
|
|
'-fdata-sections',
|
|
|
|
'-ffunction-sections',
|
2013-08-20 08:12:19 +00:00
|
|
|
],
|
2013-10-25 11:10:28 +00:00
|
|
|
'defines': [
|
|
|
|
'OPTIMIZED_DEBUG'
|
|
|
|
],
|
2013-08-20 08:12:19 +00:00
|
|
|
'conditions': [
|
|
|
|
# TODO(crbug.com/272548): Avoid -O3 in NaCl
|
|
|
|
['nacl_target_arch=="none"', {
|
|
|
|
'cflags': ['-O3'],
|
|
|
|
'cflags!': ['-O2'],
|
|
|
|
}, {
|
|
|
|
'cflags': ['-O2'],
|
|
|
|
'cflags!': ['-O3'],
|
|
|
|
}],
|
2013-07-10 15:21:43 +00:00
|
|
|
],
|
|
|
|
}],
|
Revamp v8_optimized_debug options
This patch changes the definition of v8_optimized_debug==1 to match the release-mode compiler optimization settings (generally, going from -O1 to -O3 on Linux, similar switches for Mac/Win). This produces a minor speed up on Linux, but significant speedups on Mac and Win. This may make it much harder to debug, though.
It also adds a v8_optimized_debug==2 that, in addition to the compiler optimizations, undef's DEBUG and defines DEBUG. This leaves V8_ENABLE_CHECKS alone (so that the assertions are still enabled), but otherwise basically matches a release mode build.
Builds with v8_optimized_debug==2 roughly match a Release mode build for speed; the V8_ENABLE_CHECKS checks appear to have minimal performance impact (maybe 5-10%, unlike what was previously thought). In addition, switching from the previous optimization settings makes a significant improvement on Mac and Win (50% or more), and switching from DEBUG to NDEBUG makes a significant improvement (another 50% or more).
Note that using v8_optimized_debug==2 may also cause some v8 tests to fail. This is currently is believed to be acceptable.
R=machenbach@chromium.org
BUG=254188
Review URL: https://codereview.chromium.org/19384011
Patch from Dirk Pranke <dpranke@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 14:00:06 +00:00
|
|
|
['v8_optimized_debug!=0 and gcc_version==44 and clang==0', {
|
2013-07-10 15:21:43 +00:00
|
|
|
'cflags': [
|
|
|
|
# Avoid crashes with gcc 4.4 in the v8 test suite.
|
|
|
|
'-fno-tree-vrp',
|
|
|
|
],
|
|
|
|
}],
|
|
|
|
],
|
2011-08-25 14:50:09 +00:00
|
|
|
}],
|
2012-12-14 14:27:06 +00:00
|
|
|
['OS=="linux" and v8_enable_backtrace==1', {
|
|
|
|
# Support for backtrace_symbols.
|
|
|
|
'ldflags': [ '-rdynamic' ],
|
|
|
|
}],
|
2012-08-27 15:25:15 +00:00
|
|
|
['OS=="android"', {
|
|
|
|
'variables': {
|
|
|
|
'android_full_debug%': 1,
|
|
|
|
},
|
|
|
|
'conditions': [
|
|
|
|
['android_full_debug==0', {
|
|
|
|
# Disable full debug if we want a faster v8 in a debug build.
|
|
|
|
# TODO(2304): pass DISABLE_DEBUG_ASSERT instead of hiding DEBUG.
|
|
|
|
'defines!': [
|
|
|
|
'DEBUG',
|
|
|
|
],
|
|
|
|
}],
|
|
|
|
],
|
|
|
|
}],
|
2012-11-30 10:14:21 +00:00
|
|
|
['OS=="mac"', {
|
|
|
|
'xcode_settings': {
|
2013-07-10 15:21:43 +00:00
|
|
|
'conditions': [
|
Revamp v8_optimized_debug options
This patch changes the definition of v8_optimized_debug==1 to match the release-mode compiler optimization settings (generally, going from -O1 to -O3 on Linux, similar switches for Mac/Win). This produces a minor speed up on Linux, but significant speedups on Mac and Win. This may make it much harder to debug, though.
It also adds a v8_optimized_debug==2 that, in addition to the compiler optimizations, undef's DEBUG and defines DEBUG. This leaves V8_ENABLE_CHECKS alone (so that the assertions are still enabled), but otherwise basically matches a release mode build.
Builds with v8_optimized_debug==2 roughly match a Release mode build for speed; the V8_ENABLE_CHECKS checks appear to have minimal performance impact (maybe 5-10%, unlike what was previously thought). In addition, switching from the previous optimization settings makes a significant improvement on Mac and Win (50% or more), and switching from DEBUG to NDEBUG makes a significant improvement (another 50% or more).
Note that using v8_optimized_debug==2 may also cause some v8 tests to fail. This is currently is believed to be acceptable.
R=machenbach@chromium.org
BUG=254188
Review URL: https://codereview.chromium.org/19384011
Patch from Dirk Pranke <dpranke@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 14:00:06 +00:00
|
|
|
['v8_optimized_debug==0', {
|
2013-07-10 15:21:43 +00:00
|
|
|
'GCC_OPTIMIZATION_LEVEL': '0', # -O0
|
Revamp v8_optimized_debug options
This patch changes the definition of v8_optimized_debug==1 to match the release-mode compiler optimization settings (generally, going from -O1 to -O3 on Linux, similar switches for Mac/Win). This produces a minor speed up on Linux, but significant speedups on Mac and Win. This may make it much harder to debug, though.
It also adds a v8_optimized_debug==2 that, in addition to the compiler optimizations, undef's DEBUG and defines DEBUG. This leaves V8_ENABLE_CHECKS alone (so that the assertions are still enabled), but otherwise basically matches a release mode build.
Builds with v8_optimized_debug==2 roughly match a Release mode build for speed; the V8_ENABLE_CHECKS checks appear to have minimal performance impact (maybe 5-10%, unlike what was previously thought). In addition, switching from the previous optimization settings makes a significant improvement on Mac and Win (50% or more), and switching from DEBUG to NDEBUG makes a significant improvement (another 50% or more).
Note that using v8_optimized_debug==2 may also cause some v8 tests to fail. This is currently is believed to be acceptable.
R=machenbach@chromium.org
BUG=254188
Review URL: https://codereview.chromium.org/19384011
Patch from Dirk Pranke <dpranke@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 14:00:06 +00:00
|
|
|
}, {
|
|
|
|
'GCC_OPTIMIZATION_LEVEL': '3', # -O3
|
|
|
|
'GCC_STRICT_ALIASING': 'YES',
|
2013-07-10 15:21:43 +00:00
|
|
|
}],
|
|
|
|
],
|
2012-11-30 10:14:21 +00:00
|
|
|
},
|
|
|
|
}],
|
2011-08-25 14:50:09 +00:00
|
|
|
],
|
2012-01-17 14:35:38 +00:00
|
|
|
}, # Debug
|
2011-08-25 14:50:09 +00:00
|
|
|
'Release': {
|
|
|
|
'conditions': [
|
2013-06-12 08:05:43 +00:00
|
|
|
['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd"', {
|
2011-08-25 14:50:09 +00:00
|
|
|
'cflags!': [
|
|
|
|
'-Os',
|
|
|
|
],
|
|
|
|
'cflags': [
|
|
|
|
'-fdata-sections',
|
|
|
|
'-ffunction-sections',
|
2013-07-10 16:21:17 +00:00
|
|
|
'<(wno_array_bounds)',
|
2011-08-25 14:50:09 +00:00
|
|
|
],
|
|
|
|
'conditions': [
|
2012-01-24 16:36:55 +00:00
|
|
|
[ 'gcc_version==44 and clang==0', {
|
2011-08-25 14:50:09 +00:00
|
|
|
'cflags': [
|
|
|
|
# Avoid crashes with gcc 4.4 in the v8 test suite.
|
|
|
|
'-fno-tree-vrp',
|
|
|
|
],
|
|
|
|
}],
|
2013-08-20 08:12:19 +00:00
|
|
|
# TODO(crbug.com/272548): Avoid -O3 in NaCl
|
|
|
|
['nacl_target_arch=="none"', {
|
|
|
|
'cflags': ['-O3'],
|
|
|
|
'cflags!': ['-O2'],
|
|
|
|
}, {
|
|
|
|
'cflags': ['-O2'],
|
|
|
|
'cflags!': ['-O3'],
|
|
|
|
}],
|
2011-08-25 14:50:09 +00:00
|
|
|
],
|
|
|
|
}],
|
2013-06-12 08:05:43 +00:00
|
|
|
['OS=="android"', {
|
|
|
|
'cflags!': [
|
|
|
|
'-O3',
|
|
|
|
'-Os',
|
|
|
|
],
|
|
|
|
'cflags': [
|
|
|
|
'-fdata-sections',
|
|
|
|
'-ffunction-sections',
|
|
|
|
'-O2',
|
|
|
|
],
|
|
|
|
'conditions': [
|
|
|
|
[ 'gcc_version==44 and clang==0', {
|
|
|
|
'cflags': [
|
|
|
|
# Avoid crashes with gcc 4.4 in the v8 test suite.
|
|
|
|
'-fno-tree-vrp',
|
|
|
|
],
|
|
|
|
}],
|
|
|
|
],
|
|
|
|
}],
|
2011-08-25 14:50:09 +00:00
|
|
|
['OS=="mac"', {
|
|
|
|
'xcode_settings': {
|
|
|
|
'GCC_OPTIMIZATION_LEVEL': '3', # -O3
|
|
|
|
|
|
|
|
# -fstrict-aliasing. Mainline gcc
|
|
|
|
# enables this at -O2 and above,
|
|
|
|
# but Apple gcc does not unless it
|
|
|
|
# is specified explicitly.
|
|
|
|
'GCC_STRICT_ALIASING': 'YES',
|
|
|
|
},
|
2012-01-17 14:35:38 +00:00
|
|
|
}], # OS=="mac"
|
2011-08-25 14:50:09 +00:00
|
|
|
['OS=="win"', {
|
|
|
|
'msvs_settings': {
|
|
|
|
'VCCLCompilerTool': {
|
|
|
|
'Optimization': '2',
|
|
|
|
'InlineFunctionExpansion': '2',
|
|
|
|
'EnableIntrinsicFunctions': 'true',
|
|
|
|
'FavorSizeOrSpeed': '0',
|
|
|
|
'StringPooling': 'true',
|
|
|
|
'conditions': [
|
2013-07-10 15:21:43 +00:00
|
|
|
['component=="shared_library"', {
|
2011-08-25 14:50:09 +00:00
|
|
|
'RuntimeLibrary': '2', #/MD
|
|
|
|
}, {
|
|
|
|
'RuntimeLibrary': '0', #/MT
|
|
|
|
}],
|
2012-06-26 15:27:12 +00:00
|
|
|
['v8_target_arch=="x64"', {
|
|
|
|
# TODO(2207): remove this option once the bug is fixed.
|
|
|
|
'WholeProgramOptimization': 'true',
|
|
|
|
}],
|
2011-08-25 14:50:09 +00:00
|
|
|
],
|
|
|
|
},
|
|
|
|
'VCLinkerTool': {
|
|
|
|
'LinkIncremental': '1',
|
|
|
|
'OptimizeReferences': '2',
|
|
|
|
'EnableCOMDATFolding': '2',
|
|
|
|
},
|
|
|
|
},
|
2012-01-17 14:35:38 +00:00
|
|
|
}], # OS=="win"
|
|
|
|
], # conditions
|
|
|
|
}, # Release
|
|
|
|
}, # configurations
|
|
|
|
}, # target_defaults
|
2010-12-14 08:16:39 +00:00
|
|
|
}
|