Update V8 to version 4.1.0.21
This is a cherry-pick of all commits up to and including the
4.1.0.21 cherry-pick in Chromium.
Original commit message:
Version 4.1.0.21 (cherry-pick)
Merged 206e9136bde0f2b5ae8cb77afbb1e7833e5bd412
Unlink pages from the space page list after evacuation.
BUG=430201
LOG=N
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/953813002
Cr-Commit-Position: refs/branch-heads/4.1@{#22}
Cr-Branched-From: 2e08d2a7aa9d65d269d8c57aba82eb38a8cb0a18-refs/heads/candidates@{#25353}
---
FPIIM-449
Change-Id: I8c23c7bbb70772b4858fe8a47b64fa97ee0d1f8c
diff --git a/build/all.gyp b/build/all.gyp
index 1e420fa..4aeb507 100644
--- a/build/all.gyp
+++ b/build/all.gyp
@@ -9,18 +9,14 @@
'type': 'none',
'dependencies': [
'../samples/samples.gyp:*',
- '../src/base/base.gyp:base-unittests',
- '../src/compiler/compiler.gyp:compiler-unittests',
'../src/d8.gyp:d8',
- '../src/heap/heap.gyp:heap-unittests',
- '../src/libplatform/libplatform.gyp:libplatform-unittests',
'../test/cctest/cctest.gyp:*',
+ '../test/unittests/unittests.gyp:*',
],
'conditions': [
['component!="shared_library"', {
'dependencies': [
- '../tools/lexer-shell.gyp:lexer-shell',
- '../tools/lexer-shell.gyp:parser-shell',
+ '../tools/parser-shell.gyp:parser-shell',
],
}],
]
diff --git a/build/android.gypi b/build/android.gypi
index f984ea3..5d3b25a 100644
--- a/build/android.gypi
+++ b/build/android.gypi
@@ -74,13 +74,13 @@
],
}, # Release
}, # configurations
- 'cflags': [ '-Wno-abi', '-Wall', '-W', '-Wno-unused-parameter',
- '-Wnon-virtual-dtor', '-fno-rtti', '-fno-exceptions',
- # Note: Using -std=c++0x will define __STRICT_ANSI__, which in
- # turn will leave out some template stuff for 'long long'. What
- # we want is -std=c++11, but this is not supported by GCC 4.6 or
- # Xcode 4.2
- '-std=gnu++0x' ],
+ 'cflags': [ '-Wno-abi', '-Wall', '-W', '-Wno-unused-parameter'],
+ 'cflags_cc': [ '-Wnon-virtual-dtor', '-fno-rtti', '-fno-exceptions',
+ # Note: Using -std=c++0x will define __STRICT_ANSI__, which
+ # in turn will leave out some template stuff for 'long
+ # long'. What we want is -std=c++11, but this is not
+ # supported by GCC 4.6 or Xcode 4.2
+ '-std=gnu++0x' ],
'target_conditions': [
['_toolset=="target"', {
'cflags!': [
@@ -93,11 +93,13 @@
'-fno-short-enums',
'-finline-limit=64',
'-Wa,--noexecstack',
- '-Wno-error=non-virtual-dtor', # TODO(michaelbai): Fix warnings.
# Note: This include is in cflags to ensure that it comes after
# all of the includes.
'-I<(android_include)',
],
+ 'cflags_cc': [
+ '-Wno-error=non-virtual-dtor', # TODO(michaelbai): Fix warnings.
+ ],
'defines': [
'ANDROID',
#'__GNU_SOURCE=1', # Necessary for clone()
@@ -213,8 +215,7 @@
'-fno-stack-protector',
],
}],
- ['target_arch=="arm64" or target_arch=="x64"', {
- # TODO(ulan): Enable PIE for other architectures (crbug.com/373219).
+ ['(target_arch=="arm" or target_arch=="arm64" or target_arch=="x64") and component!="shared_library"', {
'cflags': [
'-fPIE',
],
diff --git a/build/features.gypi b/build/features.gypi
index 8201ea9..465eba9 100644
--- a/build/features.gypi
+++ b/build/features.gypi
@@ -29,8 +29,6 @@
{
'variables': {
- 'v8_compress_startup_data%': 'off',
-
'v8_enable_disassembler%': 0,
'v8_enable_gdbjit%': 0,
@@ -39,6 +37,8 @@
'v8_enable_verify_heap%': 0,
+ 'v8_trace_maps%': 0,
+
'v8_use_snapshot%': 'true',
'v8_enable_verify_predictable%': 0,
@@ -59,9 +59,8 @@
# Enable compiler warnings when using V8_DEPRECATED apis.
'v8_deprecation_warnings%': 0,
- # Use external files for startup data blobs:
- # the JS builtins sources and the start snapshot.
- 'v8_use_external_startup_data%': 0,
+ # Set to 1 to enable DCHECKs in release builds.
+ 'dcheck_always_on%': 0,
},
'target_defaults': {
'conditions': [
@@ -77,6 +76,9 @@
['v8_enable_verify_heap==1', {
'defines': ['VERIFY_HEAP',],
}],
+ ['v8_trace_maps==1', {
+ 'defines': ['TRACE_MAPS',],
+ }],
['v8_enable_verify_predictable==1', {
'defines': ['VERIFY_PREDICTABLE',],
}],
@@ -89,12 +91,12 @@
['v8_enable_i18n_support==1', {
'defines': ['V8_I18N_SUPPORT',],
}],
- ['v8_compress_startup_data=="bz2"', {
- 'defines': ['COMPRESS_STARTUP_DATA_BZ2',],
- }],
['v8_use_external_startup_data==1', {
'defines': ['V8_USE_EXTERNAL_STARTUP_DATA',],
}],
+ ['dcheck_always_on!=0', {
+ 'defines': ['DEBUG',],
+ }],
], # conditions
'configurations': {
'DebugBaseCommon': {
diff --git a/build/standalone.gypi b/build/standalone.gypi
index 32ad028..ee91e78 100644
--- a/build/standalone.gypi
+++ b/build/standalone.gypi
@@ -33,6 +33,8 @@
'includes': ['toolchain.gypi'],
'variables': {
'component%': 'static_library',
+ 'make_clang_dir%': '../third_party/llvm-build/Release+Asserts',
+ 'clang_xcode%': 0,
'asan%': 0,
'tsan%': 0,
'visibility%': 'hidden',
@@ -91,6 +93,12 @@
# near-release speeds.
'v8_optimized_debug%': 0,
+ # Use external files for startup data blobs:
+ # the JS builtins sources and the start snapshot.
+ # Embedders that don't use standalone.gypi will need to add
+ # their own default value.
+ 'v8_use_external_startup_data%': 0,
+
# Relative path to icu.gyp from this file.
'icu_gyp_path': '../third_party/icu/icu.gyp',
@@ -146,6 +154,14 @@
'configurations': {
'DebugBaseCommon': {
'cflags': [ '-g', '-O0' ],
+ 'conditions': [
+ ['(v8_target_arch=="ia32" or v8_target_arch=="x87") and \
+ OS=="linux"', {
+ 'defines': [
+ '_GLIBCXX_DEBUG'
+ ],
+ }],
+ ],
},
'Optdebug': {
'inherit_from': [ 'DebugBaseCommon', 'DebugBase2' ],
@@ -323,9 +339,15 @@
},
'VCLibrarianTool': {
'AdditionalOptions': ['/ignore:4221'],
+ 'conditions': [
+ ['v8_target_arch=="x64"', {
+ 'TargetMachine': '17', # x64
+ }, {
+ 'TargetMachine': '1', # ia32
+ }],
+ ],
},
'VCLinkerTool': {
- 'MinimumRequiredVersion': '5.01', # XP.
'AdditionalDependencies': [
'ws2_32.lib',
],
@@ -350,6 +372,13 @@
'advapi32.lib',
],
}],
+ ['v8_target_arch=="x64"', {
+ 'MinimumRequiredVersion': '5.02', # Server 2003.
+ 'TargetMachine': '17', # x64
+ }, {
+ 'MinimumRequiredVersion': '5.01', # XP.
+ 'TargetMachine': '1', # ia32
+ }],
],
},
},
@@ -357,6 +386,7 @@
}], # OS=="win"
['OS=="mac"', {
'xcode_settings': {
+ 'SDKROOT': 'macosx',
'SYMROOT': '<(DEPTH)/xcodebuild',
},
'target_defaults': {
@@ -411,5 +441,20 @@
], # target_conditions
}, # target_defaults
}], # OS=="mac"
+ ['clang==1 and ((OS!="mac" and OS!="ios") or clang_xcode==0) '
+ 'and OS!="win"', {
+ 'make_global_settings': [
+ ['CC', '<(make_clang_dir)/bin/clang'],
+ ['CXX', '<(make_clang_dir)/bin/clang++'],
+ ['CC.host', '$(CC)'],
+ ['CXX.host', '$(CXX)'],
+ ],
+ }],
+ ['clang==1 and OS=="win"', {
+ 'make_global_settings': [
+ # On Windows, gyp's ninja generator only looks at CC.
+ ['CC', '<(make_clang_dir)/bin/clang-cl'],
+ ],
+ }],
],
}
diff --git a/build/toolchain.gypi b/build/toolchain.gypi
index 38c9aee..ac10065 100644
--- a/build/toolchain.gypi
+++ b/build/toolchain.gypi
@@ -30,7 +30,6 @@
{
'variables': {
'msvs_use_common_release': 0,
- 'gcc_version%': 'unknown',
'clang%': 0,
'v8_target_arch%': '<(target_arch)',
# Native Client builds currently use the V8 ARM JIT and
@@ -888,7 +887,6 @@
['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" or \
OS=="qnx"', {
'cflags!': [
- '-O0',
'-O3',
'-O2',
'-O1',
@@ -905,6 +903,9 @@
},
}],
],
+ 'defines': [
+ 'ENABLE_SLOW_DCHECKS',
+ ],
}, # DebugBase0
# Abstract configuration for v8_optimized_debug == 1.
'DebugBase1': {
@@ -929,6 +930,9 @@
'LinkIncremental': '2',
},
},
+ 'defines': [
+ 'ENABLE_SLOW_DCHECKS',
+ ],
'conditions': [
['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" or \
OS=="qnx"', {
@@ -943,14 +947,6 @@
'-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': {
@@ -977,10 +973,6 @@
}, {
'RuntimeLibrary': '1', #/MTd
}],
- ['v8_target_arch=="x64"', {
- # TODO(2207): remove this option once the bug is fixed.
- 'WholeProgramOptimization': 'true',
- }],
],
},
'VCLinkerTool': {
@@ -1001,9 +993,6 @@
'-fdata-sections',
'-ffunction-sections',
],
- 'defines': [
- 'OPTIMIZED_DEBUG'
- ],
'conditions': [
# TODO(crbug.com/272548): Avoid -O3 in NaCl
['nacl_target_arch=="none"', {
@@ -1013,12 +1002,6 @@
'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"', {
@@ -1037,7 +1020,8 @@
'V8_ENABLE_CHECKS',
'OBJECT_PRINT',
'VERIFY_HEAP',
- 'DEBUG'
+ 'DEBUG',
+ 'TRACE_MAPS'
],
'conditions': [
['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" or \
@@ -1058,6 +1042,7 @@
# TODO(2304): pass DISABLE_DEBUG_ASSERT instead of hiding DEBUG.
'defines!': [
'DEBUG',
+ 'ENABLE_SLOW_DCHECKS',
],
}],
],
@@ -1090,12 +1075,6 @@
'<(wno_array_bounds)',
],
'conditions': [
- [ 'gcc_version==44 and clang==0', {
- 'cflags': [
- # Avoid crashes with gcc 4.4 in the v8 test suite.
- '-fno-tree-vrp',
- ],
- }],
# TODO(crbug.com/272548): Avoid -O3 in NaCl
['nacl_target_arch=="none"', {
'cflags': ['-O3'],
@@ -1116,14 +1095,6 @@
'-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',
- ],
- }],
- ],
}],
['OS=="mac"', {
'xcode_settings': {
@@ -1150,10 +1121,6 @@
}, {
'RuntimeLibrary': '0', #/MT
}],
- ['v8_target_arch=="x64"', {
- # TODO(2207): remove this option once the bug is fixed.
- 'WholeProgramOptimization': 'true',
- }],
],
},
'VCLinkerTool': {