| Index: build/common.gypi
|
| diff --git a/build/common.gypi b/build/common.gypi
|
| index c41b2b2b626e95ed6a606d19b589615fae0957a0..6d374a654a3b550930ea28a089066b5cbcf19279 100644
|
| --- a/build/common.gypi
|
| +++ b/build/common.gypi
|
| @@ -25,184 +25,247 @@
|
| # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
| +# Shared definitions for all V8-related targets.
|
| +
|
| {
|
| 'variables': {
|
| - 'library%': 'static_library',
|
| - 'component%': 'static_library',
|
| - 'visibility%': 'hidden',
|
| - 'msvs_multi_core_compile%': '1',
|
| - 'variables': {
|
| - 'variables': {
|
| - 'conditions': [
|
| - [ 'OS=="linux" or OS=="freebsd" or OS=="openbsd"', {
|
| - # This handles the Linux platforms we generally deal with. Anything
|
| - # else gets passed through, which probably won't work very well; such
|
| - # hosts should pass an explicit target_arch to gyp.
|
| - 'host_arch%':
|
| - '<!(uname -m | sed -e "s/i.86/ia32/;s/x86_64/x64/;s/amd64/x64/;s/arm.*/arm/")',
|
| - }, { # OS!="linux" and OS!="freebsd" and OS!="openbsd"
|
| - 'host_arch%': 'ia32',
|
| - }],
|
| - ],
|
| - },
|
| - 'host_arch%': '<(host_arch)',
|
| - 'target_arch%': '<(host_arch)',
|
| - 'v8_target_arch%': '<(target_arch)',
|
| - },
|
| - 'host_arch%': '<(host_arch)',
|
| - 'target_arch%': '<(target_arch)',
|
| - 'v8_target_arch%': '<(v8_target_arch)',
|
| + 'use_system_v8%': 0,
|
| + 'msvs_use_common_release': 0,
|
| + 'gcc_version%': 'unknown',
|
| + 'v8_compress_startup_data%': 'off',
|
| + 'v8_target_arch%': '<(target_arch)',
|
| +
|
| + # Setting 'v8_can_use_unaligned_accesses' to 'true' will allow the code
|
| + # generated by V8 to do unaligned memory access, and setting it to 'false'
|
| + # will ensure that the generated code will always do aligned memory
|
| + # accesses. The default value of 'default' will try to determine the correct
|
| + # setting. Note that for Intel architectures (ia32 and x64) unaligned memory
|
| + # access is allowed for all CPUs.
|
| + 'v8_can_use_unaligned_accesses%': 'default',
|
| +
|
| + # Setting 'v8_can_use_vfp_instructions' to 'true' will enable use of ARM VFP
|
| + # instructions in the V8 generated code. VFP instructions will be enabled
|
| + # both for the snapshot and for the ARM target. Leaving the default value
|
| + # of 'false' will avoid VFP instructions in the snapshot and use CPU feature
|
| + # probing when running on the target.
|
| + 'v8_can_use_vfp_instructions%': 'false',
|
| +
|
| + # Setting v8_use_arm_eabi_hardfloat to true will turn on V8 support for ARM
|
| + # EABI calling convention where double arguments are passed in VFP
|
| + # registers. Note that the GCC flag '-mfloat-abi=hard' should be used as
|
| + # well when compiling for the ARM target.
|
| + 'v8_use_arm_eabi_hardfloat%': 'false',
|
| +
|
| 'v8_enable_debugger_support%': 1,
|
| - 'conditions': [
|
| - ['(v8_target_arch=="arm" and host_arch!="arm") or \
|
| - (v8_target_arch=="x64" and host_arch!="x64")', {
|
| - 'want_separate_host_toolset': 1,
|
| - }, {
|
| - 'want_separate_host_toolset': 0,
|
| - }],
|
| - ],
|
| +
|
| + # Chrome needs this definition unconditionally. For standalone V8 builds,
|
| + # it's handled in build/standalone.gypi.
|
| + 'want_separate_host_toolset%': 1,
|
| +
|
| + 'v8_use_snapshot%': 'true',
|
| + 'host_os%': '<(OS)',
|
| + 'v8_use_liveobjectlist%': 'false',
|
| },
|
| 'target_defaults': {
|
| - 'default_configuration': 'Debug',
|
| 'conditions': [
|
| ['v8_enable_debugger_support==1', {
|
| 'defines': ['ENABLE_DEBUGGER_SUPPORT',],
|
| },
|
| ],
|
| - ],
|
| - 'configurations': {
|
| - 'Debug': {
|
| - 'cflags': [ '-g', '-O0' ],
|
| - 'defines': [ 'ENABLE_DISASSEMBLER', 'DEBUG', 'V8_ENABLE_CHECKS',
|
| - 'OBJECT_PRINT' ],
|
| - },
|
| - 'Release': {
|
| - 'cflags': [ '-O3', '-fomit-frame-pointer', '-fdata-sections',
|
| - '-ffunction-sections' ],
|
| - },
|
| - },
|
| - },
|
| - 'conditions': [
|
| - [ 'OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"', {
|
| - 'target_defaults': {
|
| - 'cflags': [ '-Wall', '-Werror', '-W', '-Wno-unused-parameter',
|
| - '-Wnon-virtual-dtor', '-pthread', '-fno-rtti',
|
| - '-fno-exceptions', '-pedantic' ],
|
| - 'ldflags': [ '-pthread', ],
|
| + ['OS!="mac"', {
|
| + # TODO(mark): The OS!="mac" conditional is temporary. It can be
|
| + # removed once the Mac Chromium build stops setting target_arch to
|
| + # ia32 and instead sets it to mac. Other checks in this file for
|
| + # OS=="mac" can be removed at that time as well. This can be cleaned
|
| + # up once http://crbug.com/44205 is fixed.
|
| 'conditions': [
|
| - [ 'target_arch=="ia32"', {
|
| - 'cflags': [ '-m32' ],
|
| - 'ldflags': [ '-m32' ],
|
| + ['v8_target_arch=="arm"', {
|
| + 'defines': [
|
| + 'V8_TARGET_ARCH_ARM',
|
| + ],
|
| + 'conditions': [
|
| + [ 'v8_can_use_unaligned_accesses=="true"', {
|
| + 'defines': [
|
| + 'CAN_USE_UNALIGNED_ACCESSES=1',
|
| + ],
|
| + }],
|
| + [ 'v8_can_use_unaligned_accesses=="false"', {
|
| + 'defines': [
|
| + 'CAN_USE_UNALIGNED_ACCESSES=0',
|
| + ],
|
| + }],
|
| + [ 'v8_can_use_vfp_instructions=="true"', {
|
| + 'defines': [
|
| + 'CAN_USE_VFP_INSTRUCTIONS',
|
| + ],
|
| + }],
|
| + [ 'v8_use_arm_eabi_hardfloat=="true"', {
|
| + 'defines': [
|
| + 'USE_EABI_HARDFLOAT=1',
|
| + 'CAN_USE_VFP_INSTRUCTIONS',
|
| + ],
|
| + 'cflags': [
|
| + '-mfloat-abi=hard',
|
| + ],
|
| + }, {
|
| + 'defines': [
|
| + 'USE_EABI_HARDFLOAT=0',
|
| + ],
|
| + }],
|
| + # The ARM assembler assumes the host is 32 bits,
|
| + # so force building 32-bit host tools.
|
| + ['host_arch=="x64"', {
|
| + 'target_conditions': [
|
| + ['_toolset=="host"', {
|
| + 'cflags': ['-m32'],
|
| + 'ldflags': ['-m32'],
|
| + }],
|
| + ],
|
| + }],
|
| + ],
|
| }],
|
| - [ 'OS=="linux"', {
|
| - 'cflags': [ '-ansi' ],
|
| + ['v8_target_arch=="ia32"', {
|
| + 'defines': [
|
| + 'V8_TARGET_ARCH_IA32',
|
| + ],
|
| }],
|
| - [ 'visibility=="hidden"', {
|
| - 'cflags': [ '-fvisibility=hidden' ],
|
| + ['v8_target_arch=="mips"', {
|
| + 'defines': [
|
| + 'V8_TARGET_ARCH_MIPS',
|
| + ],
|
| }],
|
| - ],
|
| - },
|
| - }], # 'OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris"'
|
| - ['OS=="win"', {
|
| - 'target_defaults': {
|
| - 'defines': [
|
| - 'WIN32',
|
| - '_CRT_SECURE_NO_DEPRECATE',
|
| - '_CRT_NONSTDC_NO_DEPRECATE',
|
| - ],
|
| - 'conditions': [
|
| - ['component=="static_library"', {
|
| + ['v8_target_arch=="x64"', {
|
| 'defines': [
|
| - '_HAS_EXCEPTIONS=0',
|
| + 'V8_TARGET_ARCH_X64',
|
| ],
|
| }],
|
| - ],
|
| - 'msvs_cygwin_dirs': ['<(DEPTH)/third_party/cygwin'],
|
| - 'msvs_disabled_warnings': [4355, 4800],
|
| + ],
|
| + }],
|
| + ['v8_use_liveobjectlist=="true"', {
|
| + 'defines': [
|
| + 'ENABLE_DEBUGGER_SUPPORT',
|
| + 'INSPECTOR',
|
| + 'OBJECT_PRINT',
|
| + 'LIVEOBJECTLIST',
|
| + ],
|
| + }],
|
| + ['v8_compress_startup_data=="bz2"', {
|
| + 'defines': [
|
| + 'COMPRESS_STARTUP_DATA_BZ2',
|
| + ],
|
| + }],
|
| + ],
|
| + 'configurations': {
|
| + 'Debug': {
|
| + 'defines': [
|
| + 'DEBUG',
|
| + 'ENABLE_DISASSEMBLER',
|
| + 'V8_ENABLE_CHECKS',
|
| + 'OBJECT_PRINT',
|
| + ],
|
| 'msvs_settings': {
|
| 'VCCLCompilerTool': {
|
| - 'MinimalRebuild': 'false',
|
| - 'BufferSecurityCheck': 'true',
|
| - 'EnableFunctionLevelLinking': 'true',
|
| - 'RuntimeTypeInfo': 'false',
|
| - 'WarningLevel': '3',
|
| - 'WarnAsError': 'true',
|
| - 'DebugInformationFormat': '3',
|
| - 'Detect64BitPortabilityProblems': 'false',
|
| + 'Optimization': '0',
|
| +
|
| 'conditions': [
|
| - [ 'msvs_multi_core_compile', {
|
| - 'AdditionalOptions': ['/MP'],
|
| - }],
|
| - ['component=="shared_library"', {
|
| - 'ExceptionHandling': '1', # /EHsc
|
| + ['OS=="win" and component=="shared_library"', {
|
| + 'RuntimeLibrary': '3', # /MDd
|
| }, {
|
| - 'ExceptionHandling': '0',
|
| + 'RuntimeLibrary': '1', # /MTd
|
| }],
|
| ],
|
| },
|
| - 'VCLibrarianTool': {
|
| - 'AdditionalOptions': ['/ignore:4221'],
|
| - },
|
| 'VCLinkerTool': {
|
| - 'AdditionalDependencies': [
|
| - 'ws2_32.lib',
|
| - ],
|
| - 'GenerateDebugInformation': 'true',
|
| - 'MapFileName': '$(OutDir)\\$(TargetName).map',
|
| - 'ImportLibrary': '$(OutDir)\\lib\\$(TargetName).lib',
|
| - 'FixedBaseAddress': '1',
|
| - # LinkIncremental values:
|
| - # 0 == default
|
| - # 1 == /INCREMENTAL:NO
|
| - # 2 == /INCREMENTAL
|
| - 'LinkIncremental': '1',
|
| - # SubSystem values:
|
| - # 0 == not set
|
| - # 1 == /SUBSYSTEM:CONSOLE
|
| - # 2 == /SUBSYSTEM:WINDOWS
|
| - 'SubSystem': '1',
|
| + 'LinkIncremental': '2',
|
| + # For future reference, the stack size needs to be increased
|
| + # when building for Windows 64-bit, otherwise some test cases
|
| + # can cause stack overflow.
|
| + # 'StackReserveSize': '297152',
|
| },
|
| },
|
| + 'conditions': [
|
| + ['OS=="freebsd" or OS=="openbsd"', {
|
| + 'cflags': [ '-I/usr/local/include' ],
|
| + }],
|
| + ['OS=="linux" or OS=="freebsd" or OS=="openbsd"', {
|
| + 'cflags': [ '-Wall', '-Werror', '-W', '-Wno-unused-parameter',
|
| + '-Wnon-virtual-dtor' ],
|
| + }],
|
| + ],
|
| },
|
| - }], # OS=="win"
|
| - ['OS=="mac"', {
|
| - 'target_defaults': {
|
| - 'xcode_settings': {
|
| - 'ALWAYS_SEARCH_USER_PATHS': 'NO',
|
| - 'GCC_C_LANGUAGE_STANDARD': 'ansi', # -ansi
|
| - 'GCC_CW_ASM_SYNTAX': 'NO', # No -fasm-blocks
|
| - 'GCC_DYNAMIC_NO_PIC': 'NO', # No -mdynamic-no-pic
|
| - # (Equivalent to -fPIC)
|
| - 'GCC_ENABLE_CPP_EXCEPTIONS': 'NO', # -fno-exceptions
|
| - 'GCC_ENABLE_CPP_RTTI': 'NO', # -fno-rtti
|
| - 'GCC_ENABLE_PASCAL_STRINGS': 'NO', # No -mpascal-strings
|
| - # GCC_INLINES_ARE_PRIVATE_EXTERN maps to -fvisibility-inlines-hidden
|
| - 'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES',
|
| - 'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden
|
| - 'GCC_THREADSAFE_STATICS': 'NO', # -fno-threadsafe-statics
|
| - 'GCC_TREAT_WARNINGS_AS_ERRORS': 'YES', # -Werror
|
| - 'GCC_VERSION': '4.2',
|
| - 'GCC_WARN_ABOUT_MISSING_NEWLINE': 'YES', # -Wnewline-eof
|
| - 'MACOSX_DEPLOYMENT_TARGET': '10.4', # -mmacosx-version-min=10.4
|
| - 'PREBINDING': 'NO', # No -Wl,-prebind
|
| - 'USE_HEADERMAP': 'NO',
|
| - 'OTHER_CFLAGS': [
|
| - '-fno-strict-aliasing',
|
| - ],
|
| - 'WARNING_CFLAGS': [
|
| - '-Wall',
|
| - '-Wendif-labels',
|
| - '-W',
|
| - '-Wno-unused-parameter',
|
| - '-Wnon-virtual-dtor',
|
| - ],
|
| - },
|
| - 'target_conditions': [
|
| - ['_type!="static_library"', {
|
| - 'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-search_paths_first']},
|
| + 'Release': {
|
| + 'conditions': [
|
| + ['OS=="linux" or OS=="freebsd" or OS=="openbsd"', {
|
| + 'cflags!': [
|
| + '-O2',
|
| + '-Os',
|
| + ],
|
| + 'cflags': [
|
| + '-fdata-sections',
|
| + '-ffunction-sections',
|
| + '-fomit-frame-pointer',
|
| + '-O3',
|
| + ],
|
| + 'conditions': [
|
| + [ 'gcc_version==44', {
|
| + 'cflags': [
|
| + # Avoid crashes with gcc 4.4 in the v8 test suite.
|
| + '-fno-tree-vrp',
|
| + ],
|
| + }],
|
| + ],
|
| + }],
|
| + ['OS=="freebsd" or OS=="openbsd"', {
|
| + 'cflags': [ '-I/usr/local/include' ],
|
| + }],
|
| + ['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',
|
| + },
|
| + }],
|
| + ['OS=="win"', {
|
| + 'msvs_configuration_attributes': {
|
| + 'OutputDirectory': '$(SolutionDir)$(ConfigurationName)',
|
| + 'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)',
|
| + 'CharacterSet': '1',
|
| + },
|
| + 'msvs_settings': {
|
| + 'VCCLCompilerTool': {
|
| + 'Optimization': '2',
|
| + 'InlineFunctionExpansion': '2',
|
| + 'EnableIntrinsicFunctions': 'true',
|
| + 'FavorSizeOrSpeed': '0',
|
| + 'OmitFramePointers': 'true',
|
| + 'StringPooling': 'true',
|
| +
|
| + 'conditions': [
|
| + ['OS=="win" and component=="shared_library"', {
|
| + 'RuntimeLibrary': '2', #/MD
|
| + }, {
|
| + 'RuntimeLibrary': '0', #/MT
|
| + }],
|
| + ],
|
| + },
|
| + 'VCLinkerTool': {
|
| + 'LinkIncremental': '1',
|
| + 'OptimizeReferences': '2',
|
| + 'OptimizeForWindows98': '1',
|
| + 'EnableCOMDATFolding': '2',
|
| + # For future reference, the stack size needs to be
|
| + # increased when building for Windows 64-bit, otherwise
|
| + # some test cases can cause stack overflow.
|
| + # 'StackReserveSize': '297152',
|
| + },
|
| + },
|
| }],
|
| - ], # target_conditions
|
| - }, # target_defaults
|
| - }], # OS=="mac"
|
| - ],
|
| + ],
|
| + },
|
| + },
|
| + },
|
| }
|
|
|