gyp: fix post-mortem in v0.11
Expose missing constants and keep symbols on OSX.
This commit is contained in:
parent
857975d5e7
commit
4c48df5a35
@ -24,7 +24,7 @@
|
|||||||
'os_posix': 1,
|
'os_posix': 1,
|
||||||
'v8_postmortem_support': 'true'
|
'v8_postmortem_support': 'true'
|
||||||
}],
|
}],
|
||||||
['GENERATOR == "ninja"', {
|
['GENERATOR == "ninja" or OS== "mac"', {
|
||||||
'OBJ_DIR': '<(PRODUCT_DIR)/obj',
|
'OBJ_DIR': '<(PRODUCT_DIR)/obj',
|
||||||
'V8_BASE': '<(PRODUCT_DIR)/libv8_base.<(target_arch).a',
|
'V8_BASE': '<(PRODUCT_DIR)/libv8_base.<(target_arch).a',
|
||||||
}, {
|
}, {
|
||||||
|
43
deps/v8/tools/gen-postmortem-metadata.py
vendored
43
deps/v8/tools/gen-postmortem-metadata.py
vendored
@ -80,6 +80,16 @@ consts_misc = [
|
|||||||
{ 'name': 'SmiShiftSize', 'value': 'kSmiShiftSize' },
|
{ 'name': 'SmiShiftSize', 'value': 'kSmiShiftSize' },
|
||||||
{ 'name': 'PointerSizeLog2', 'value': 'kPointerSizeLog2' },
|
{ 'name': 'PointerSizeLog2', 'value': 'kPointerSizeLog2' },
|
||||||
|
|
||||||
|
{ 'name': 'OddballFalse', 'value': 'Oddball::kFalse' },
|
||||||
|
{ 'name': 'OddballTrue', 'value': 'Oddball::kTrue' },
|
||||||
|
{ 'name': 'OddballTheHole', 'value': 'Oddball::kTheHole' },
|
||||||
|
{ 'name': 'OddballNull', 'value': 'Oddball::kNull' },
|
||||||
|
{ 'name': 'OddballArgumentMarker', 'value': 'Oddball::kArgumentMarker' },
|
||||||
|
{ 'name': 'OddballUndefined', 'value': 'Oddball::kUndefined' },
|
||||||
|
{ 'name': 'OddballUninitialized', 'value': 'Oddball::kUninitialized' },
|
||||||
|
{ 'name': 'OddballOther', 'value': 'Oddball::kOther' },
|
||||||
|
{ 'name': 'OddballException', 'value': 'Oddball::kException' },
|
||||||
|
|
||||||
{ 'name': 'prop_idx_first',
|
{ 'name': 'prop_idx_first',
|
||||||
'value': 'DescriptorArray::kFirstIndex' },
|
'value': 'DescriptorArray::kFirstIndex' },
|
||||||
{ 'name': 'prop_type_field',
|
{ 'name': 'prop_type_field',
|
||||||
@ -88,6 +98,10 @@ consts_misc = [
|
|||||||
'value': 'INTERCEPTOR' },
|
'value': 'INTERCEPTOR' },
|
||||||
{ 'name': 'prop_type_mask',
|
{ 'name': 'prop_type_mask',
|
||||||
'value': 'PropertyDetails::TypeField::kMask' },
|
'value': 'PropertyDetails::TypeField::kMask' },
|
||||||
|
{ 'name': 'prop_index_mask',
|
||||||
|
'value': 'PropertyDetails::FieldIndexField::kMask' },
|
||||||
|
{ 'name': 'prop_index_shift',
|
||||||
|
'value': 'PropertyDetails::FieldIndexField::kShift' },
|
||||||
|
|
||||||
{ 'name': 'prop_desc_key',
|
{ 'name': 'prop_desc_key',
|
||||||
'value': 'DescriptorArray::kDescriptorKey' },
|
'value': 'DescriptorArray::kDescriptorKey' },
|
||||||
@ -98,6 +112,20 @@ consts_misc = [
|
|||||||
{ 'name': 'prop_desc_size',
|
{ 'name': 'prop_desc_size',
|
||||||
'value': 'DescriptorArray::kDescriptorSize' },
|
'value': 'DescriptorArray::kDescriptorSize' },
|
||||||
|
|
||||||
|
{ 'name': 'bit_field2_elements_kind_mask',
|
||||||
|
'value': 'Map::kElementsKindMask' },
|
||||||
|
{ 'name': 'bit_field2_elements_kind_shift',
|
||||||
|
'value': 'Map::kElementsKindShift' },
|
||||||
|
{ 'name': 'bit_field3_dictionary_map_shift',
|
||||||
|
'value': 'Map::DictionaryMap::kShift' },
|
||||||
|
|
||||||
|
{ 'name': 'elements_fast_holey_elements',
|
||||||
|
'value': 'FAST_HOLEY_ELEMENTS' },
|
||||||
|
{ 'name': 'elements_fast_elements',
|
||||||
|
'value': 'FAST_ELEMENTS' },
|
||||||
|
{ 'name': 'elements_dictionary_elements',
|
||||||
|
'value': 'DICTIONARY_ELEMENTS' },
|
||||||
|
|
||||||
{ 'name': 'off_fp_context',
|
{ 'name': 'off_fp_context',
|
||||||
'value': 'StandardFrameConstants::kContextOffset' },
|
'value': 'StandardFrameConstants::kContextOffset' },
|
||||||
{ 'name': 'off_fp_constant_pool',
|
{ 'name': 'off_fp_constant_pool',
|
||||||
@ -120,6 +148,16 @@ extras_accessors = [
|
|||||||
'Map, instance_attributes, int, kInstanceAttributesOffset',
|
'Map, instance_attributes, int, kInstanceAttributesOffset',
|
||||||
'Map, inobject_properties, int, kInObjectPropertiesOffset',
|
'Map, inobject_properties, int, kInObjectPropertiesOffset',
|
||||||
'Map, instance_size, int, kInstanceSizeOffset',
|
'Map, instance_size, int, kInstanceSizeOffset',
|
||||||
|
'Map, bit_field, char, kBitFieldOffset',
|
||||||
|
'Map, bit_field2, char, kBitField2Offset',
|
||||||
|
'Map, bit_field3, SMI, kBitField3Offset',
|
||||||
|
'Map, prototype, Object, kPrototypeOffset',
|
||||||
|
'NameDictionaryShape, prefix_size, int, kPrefixSize',
|
||||||
|
'NameDictionaryShape, entry_size, int, kEntrySize',
|
||||||
|
'SeededNumberDictionaryShape, prefix_size, int, kPrefixSize',
|
||||||
|
'UnseededNumberDictionaryShape, prefix_size, int, kPrefixSize',
|
||||||
|
'NumberDictionaryShape, entry_size, int, kEntrySize',
|
||||||
|
'Oddball, kind_offset, int, kKindOffset',
|
||||||
'HeapNumber, value, double, kValueOffset',
|
'HeapNumber, value, double, kValueOffset',
|
||||||
'ConsString, first, String, kFirstOffset',
|
'ConsString, first, String, kFirstOffset',
|
||||||
'ConsString, second, String, kSecondOffset',
|
'ConsString, second, String, kSecondOffset',
|
||||||
@ -361,7 +399,7 @@ def parse_field(call):
|
|||||||
'value': '%s::%s' % (klass, offset)
|
'value': '%s::%s' % (klass, offset)
|
||||||
});
|
});
|
||||||
|
|
||||||
assert(kind == 'SMI_ACCESSORS');
|
assert(kind == 'SMI_ACCESSORS' or kind == 'ACCESSORS_TO_SMI');
|
||||||
klass = args[0];
|
klass = args[0];
|
||||||
field = args[1];
|
field = args[1];
|
||||||
offset = args[2];
|
offset = args[2];
|
||||||
@ -385,7 +423,8 @@ def load_fields():
|
|||||||
# may span multiple lines and may contain nested parentheses. We also
|
# may span multiple lines and may contain nested parentheses. We also
|
||||||
# call parse_field() to pick apart the invocation.
|
# call parse_field() to pick apart the invocation.
|
||||||
#
|
#
|
||||||
prefixes = [ 'ACCESSORS', 'ACCESSORS_GCSAFE', 'SMI_ACCESSORS' ];
|
prefixes = [ 'ACCESSORS', 'ACCESSORS_GCSAFE',
|
||||||
|
'SMI_ACCESSORS', 'ACCESSORS_TO_SMI' ];
|
||||||
current = '';
|
current = '';
|
||||||
opens = 0;
|
opens = 0;
|
||||||
|
|
||||||
|
5
node.gyp
5
node.gyp
@ -261,6 +261,11 @@
|
|||||||
} ],
|
} ],
|
||||||
[ 'v8_postmortem_support=="true"', {
|
[ 'v8_postmortem_support=="true"', {
|
||||||
'dependencies': [ 'deps/v8/tools/gyp/v8.gyp:postmortem-metadata' ],
|
'dependencies': [ 'deps/v8/tools/gyp/v8.gyp:postmortem-metadata' ],
|
||||||
|
'xcode_settings': {
|
||||||
|
'OTHER_LDFLAGS': [
|
||||||
|
'-Wl,-force_load,<(V8_BASE)',
|
||||||
|
],
|
||||||
|
},
|
||||||
}],
|
}],
|
||||||
[ 'node_shared_v8=="false"', {
|
[ 'node_shared_v8=="false"', {
|
||||||
'sources': [
|
'sources': [
|
||||||
|
Loading…
x
Reference in New Issue
Block a user