v8: reapply floating patches
Reapply floating patches. Special mention: also reapplies 017009f but with the extra change of removing DescriptorArray::kTransitionsIndex from the postmortem metadata generator because said field no longer exists in V8 3.14.
This commit is contained in:
parent
b15a10e7a0
commit
03fe7fb55c
9
deps/v8/build/common.gypi
vendored
9
deps/v8/build/common.gypi
vendored
@ -378,15 +378,6 @@
|
|||||||
'conditions': [
|
'conditions': [
|
||||||
['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" \
|
['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" \
|
||||||
or OS=="android"', {
|
or OS=="android"', {
|
||||||
'cflags!': [
|
|
||||||
'-O2',
|
|
||||||
'-Os',
|
|
||||||
],
|
|
||||||
'cflags': [
|
|
||||||
'-fdata-sections',
|
|
||||||
'-ffunction-sections',
|
|
||||||
'-O3',
|
|
||||||
],
|
|
||||||
'conditions': [
|
'conditions': [
|
||||||
[ 'gcc_version==44 and clang==0', {
|
[ 'gcc_version==44 and clang==0', {
|
||||||
'cflags': [
|
'cflags': [
|
||||||
|
17
deps/v8/src/platform-posix.cc
vendored
17
deps/v8/src/platform-posix.cc
vendored
@ -109,11 +109,20 @@ void* OS::GetRandomMmapAddr() {
|
|||||||
raw_addr &= V8_UINT64_C(0x3ffffffff000);
|
raw_addr &= V8_UINT64_C(0x3ffffffff000);
|
||||||
#else
|
#else
|
||||||
uint32_t raw_addr = V8::RandomPrivate(isolate);
|
uint32_t raw_addr = V8::RandomPrivate(isolate);
|
||||||
// The range 0x20000000 - 0x60000000 is relatively unpopulated across a
|
|
||||||
// variety of ASLR modes (PAE kernel, NX compat mode, etc) and on macos
|
// For our 32-bit mmap() hint, we pick a random address in the bottom
|
||||||
// 10.6 and 10.7.
|
// half of the top half of the address space (that is, the third quarter).
|
||||||
|
// Because we do not MAP_FIXED, this will be treated only as a hint -- the
|
||||||
|
// system will not fail to mmap() because something else happens to already
|
||||||
|
// be mapped at our random address. We deliberately set the hint high enough
|
||||||
|
// to get well above the system's break (that is, the heap); systems will
|
||||||
|
// either try the hint and if that fails move higher (MacOS and other BSD
|
||||||
|
// derivatives) or try the hint and if that fails allocate as if there were
|
||||||
|
// no hint at all (Linux, Solaris, illumos and derivatives). The high hint
|
||||||
|
// prevents the break from getting hemmed in at low values, ceding half of
|
||||||
|
// the address space to the system heap.
|
||||||
raw_addr &= 0x3ffff000;
|
raw_addr &= 0x3ffff000;
|
||||||
raw_addr += 0x20000000;
|
raw_addr += 0x80000000;
|
||||||
#endif
|
#endif
|
||||||
return reinterpret_cast<void*>(raw_addr);
|
return reinterpret_cast<void*>(raw_addr);
|
||||||
}
|
}
|
||||||
|
14
deps/v8/tools/gen-postmortem-metadata.py
vendored
14
deps/v8/tools/gen-postmortem-metadata.py
vendored
@ -78,14 +78,20 @@ consts_misc = [
|
|||||||
{ 'name': 'SmiValueShift', 'value': 'kSmiTagSize' },
|
{ 'name': 'SmiValueShift', 'value': 'kSmiTagSize' },
|
||||||
{ 'name': 'PointerSizeLog2', 'value': 'kPointerSizeLog2' },
|
{ 'name': 'PointerSizeLog2', 'value': 'kPointerSizeLog2' },
|
||||||
|
|
||||||
{ 'name': 'prop_idx_transitions',
|
{ 'name': 'prop_desc_key',
|
||||||
'value': 'DescriptorArray::kTransitionsIndex' },
|
'value': 'DescriptorArray::kDescriptorKey' },
|
||||||
|
{ 'name': 'prop_desc_details',
|
||||||
|
'value': 'DescriptorArray::kDescriptorDetails' },
|
||||||
|
{ 'name': 'prop_desc_value',
|
||||||
|
'value': 'DescriptorArray::kDescriptorValue' },
|
||||||
|
{ 'name': 'prop_desc_size',
|
||||||
|
'value': 'DescriptorArray::kDescriptorSize' },
|
||||||
{ 'name': 'prop_idx_first',
|
{ 'name': 'prop_idx_first',
|
||||||
'value': 'DescriptorArray::kFirstIndex' },
|
'value': 'DescriptorArray::kFirstIndex' },
|
||||||
{ 'name': 'prop_type_field',
|
{ 'name': 'prop_type_field',
|
||||||
'value': 'FIELD' },
|
'value': 'FIELD' },
|
||||||
{ 'name': 'prop_type_first_phantom',
|
{ 'name': 'prop_type_first_phantom',
|
||||||
'value': 'MAP_TRANSITION' },
|
'value': 'Code::MAP_TRANSITION' },
|
||||||
{ 'name': 'prop_type_mask',
|
{ 'name': 'prop_type_mask',
|
||||||
'value': 'PropertyDetails::TypeField::kMask' },
|
'value': 'PropertyDetails::TypeField::kMask' },
|
||||||
|
|
||||||
@ -107,7 +113,7 @@ extras_accessors = [
|
|||||||
'JSObject, elements, Object, kElementsOffset',
|
'JSObject, elements, Object, kElementsOffset',
|
||||||
'FixedArray, data, uintptr_t, kHeaderSize',
|
'FixedArray, data, uintptr_t, kHeaderSize',
|
||||||
'Map, instance_attributes, int, kInstanceAttributesOffset',
|
'Map, instance_attributes, int, kInstanceAttributesOffset',
|
||||||
'Map, instance_descriptors, int, kInstanceDescriptorsOrBitField3Offset',
|
'Map, transitions, uintptr_t, kTransitionsOrBackPointerOffset',
|
||||||
'Map, inobject_properties, int, kInObjectPropertiesOffset',
|
'Map, inobject_properties, int, kInObjectPropertiesOffset',
|
||||||
'Map, instance_size, int, kInstanceSizeOffset',
|
'Map, instance_size, int, kInstanceSizeOffset',
|
||||||
'HeapNumber, value, double, kValueOffset',
|
'HeapNumber, value, double, kValueOffset',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user