Closed Bug 1359142 Opened 8 years ago Closed 8 years ago

js/src/wasm/WasmSignalHandlers.cpp:366:41: error: use of undeclared identifier 'EPC_sig'

Categories

(Core :: JavaScript Engine: JIT, defect)

Other
FreeBSD
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla55
Tracking Status
firefox-esr45 --- wontfix
firefox-esr52 --- fixed
firefox53 --- wontfix
firefox54 + fixed
firefox55 + fixed

People

(Reporter: jbeich, Assigned: jbeich)

References

Details

(Keywords: regression, Whiteboard: [npotb])

Attachments

(2 files)

+++ This bug was initially created as a clone of Bug #1359051 +++ Bug 1323115 turned on JS_CODEGEN_ARM64 which leads to In file included from obj-aarch64-unknown-freebsd11.0/js/src/Unified_cpp_js_src40.cpp:38: js/src/wasm/WasmSignalHandlers.cpp:366:41: error: use of undeclared identifier 'EPC_sig' return reinterpret_cast<uint8_t**>(&PC_sig(context)); ^ js/src/wasm/WasmSignalHandlers.cpp:355:20: note: expanded from macro 'PC_sig' # define PC_sig(p) EPC_sig(p) ^ http://searchfox.org/mozilla-central/rev/313e5199bf58/js/src/wasm/WasmSignalHandlers.cpp#369
Summary: js/src/jit/Ion.cpp:3528:30: error: no member named 'cacheFlush' in 'js::jit::ExecutableAllocator' → js/src/wasm/WasmSignalHandlers.cpp:366:41: error: use of undeclared identifier 'EPC_sig'
Comment on attachment 8861164 [details] Bug 1359142 - Define EPC_sig and RFP_sig for JS_CODEGEN_(ARM64|MIPS) on BSDs. Does this make any sense? Not sure if the crash at the end is related, see bug 1359215. $ pkg install git python27 gmake autoconf213 $ git clone https://github.com/mozilla/gecko-dev firefox $ (cd firefox/js/src; autoconf-2.13) $ (mkdir objdir; cd objdir; ../firefox/js/src/configure --disable-jemalloc; gmake) $ obj*/dist/bin/jsapi-tests # on ref11-aarch64.freebsd.org (Cavium ThunderX) testXDR_sourceMap TEST-PASS | testXDR_sourceMap | ok testXDR_source TEST-PASS | testXDR_source | ok testXDR_bug516827 TEST-PASS | testXDR_bug516827 | ok testXDR_bug506491 TEST-PASS | testXDR_bug506491 | ok testWeakMap_keyDelegates TEST-PASS | testWeakMap_keyDelegates | ok testWeakMap_basicOperations TEST-PASS | testWeakMap_basicOperations | ok testWasmLEB128_invalid_decoding TEST-PASS | testWasmLEB128_invalid_decoding | ok testWasmLEB128_valid_decoding TEST-PASS | testWasmLEB128_valid_decoding | ok testWasmLEB128_encoding TEST-PASS | testWasmLEB128_encoding | ok testUncaughtSymbol TEST-PASS | testUncaughtSymbol | ok test_JS_ubi_ShortestPaths_multiple_edges_to_target path[0]->predecessor() = 'a' Edge name = 'x' path[0]->predecessor() = 'a' Edge name = 'y' path[0]->predecessor() = 'a' Edge name = 'z' numPathsFound = 3 TEST-PASS | test_JS_ubi_ShortestPaths_multiple_edges_to_target | ok test_JS_ubi_ShortestPaths_more_paths_than_max path[0]->predecessor() = 'a' numPathsFound = 1 TEST-PASS | test_JS_ubi_ShortestPaths_more_paths_than_max | ok test_JS_ubi_ShortestPaths_multiple_paths path[0]->predecessor() = 'a' path[0]->predecessor() = 'a' path[1]->predecessor() = 'b' path[2]->predecessor() = 'c' path[0]->predecessor() = 'a' path[1]->predecessor() = 'd' path[2]->predecessor() = 'e' numPathsFound = 3 TEST-PASS | test_JS_ubi_ShortestPaths_multiple_paths | ok test_JS_ubi_ShortestPaths_one_path path[0]->predecessor() = 'a' path[1]->predecessor() = 'c' TEST-PASS | test_JS_ubi_ShortestPaths_one_path | ok test_JS_ubi_ShortestPaths_no_path TEST-PASS | test_JS_ubi_ShortestPaths_no_path | ok test_JS_ubi_Node_scriptFilename TEST-PASS | test_JS_ubi_Node_scriptFilename | ok test_JS_ubi_DominatorTree r's immediate dominator is r Checking r's dominated set: Expecting r Expecting a Expecting b Expecting c Expecting d Expecting e Expecting h Expecting i Expecting k Found r Found b Found a Found d Found e Found h Found c Found i Found k Done checking r's dominated set. a's immediate dominator is r Checking a's dominated set: Done checking a's dominated set. b's immediate dominator is r Checking b's dominated set: Done checking b's dominated set. c's immediate dominator is r Checking c's dominated set: Expecting f Expecting g Found f Found g Done checking c's dominated set. d's immediate dominator is r Checking d's dominated set: Expecting l Found l Done checking d's dominated set. e's immediate dominator is r Checking e's dominated set: Done checking e's dominated set. f's immediate dominator is r Checking f's dominated set: Done checking f's dominated set. g's immediate dominator is r Checking g's dominated set: Expecting j Found j Done checking g's dominated set. h's immediate dominator is r Checking h's dominated set: Done checking h's dominated set. i's immediate dominator is r Checking i's dominated set: Done checking i's dominated set. j's immediate dominator is c Checking j's dominated set: Done checking j's dominated set. k's immediate dominator is r Checking k's dominated set: Done checking k's dominated set. l's immediate dominator is r Checking l's dominated set: Done checking l's dominated set. TEST-PASS | test_JS_ubi_DominatorTree | ok test_ubiPostOrder visited.length() = 8 visited[0] = 'g' visited[1] = 'f' visited[2] = 'e' visited[3] = 'd' visited[4] = 'c' visited[5] = 'b' visited[6] = 'a' visited[7] = 'r' TEST-PASS | test_ubiPostOrder | ok test_ubiCoarseType TEST-PASS | test_ubiCoarseType | ok test_ubiStackFrame TEST-PASS | test_ubiStackFrame | ok test_ubiNodeJSObjectConstructorName TEST-PASS | test_ubiNodeJSObjectConstructorName | ok test_ubiNodeCompartment TEST-PASS | test_ubiNodeCompartment | ok test_ubiNodeZone TEST-PASS | test_ubiNodeZone | ok testUTF8_badSurrogate TEST-PASS | testUTF8_badSurrogate | ok testUTF8_bigUTF8 TEST-PASS | testUTF8_bigUTF8 | ok testUTF8_badUTF8 TEST-PASS | testUTF8_badUTF8 | ok testTypedArrays TEST-PASS | testTypedArrays | ok testToUint64Large TEST-PASS | testToUint64Large | ok testToUint32Large TEST-PASS | testToUint32Large | ok testToInt8 TEST-PASS | testToInt8 | ok testToUint8TwiceUint8Range TEST-PASS | testToUint8TwiceUint8Range | ok testThreadingThreadArgCopy TEST-PASS | testThreadingThreadArgCopy | ok testThreadingThreadVectorMoveConstruct TEST-PASS | testThreadingThreadVectorMoveConstruct | ok testThreadingThreadId TEST-PASS | testThreadingThreadId | ok testThreadingThreadSetName TEST-PASS | testThreadingThreadSetName | ok testThreadingThreadDetach TEST-PASS | testThreadingThreadDetach | ok testThreadingThreadJoin TEST-PASS | testThreadingThreadJoin | ok testThreadingUnlockGuard TEST-PASS | testThreadingUnlockGuard | ok testThreadingLockGuard TEST-PASS | testThreadingLockGuard | ok testThreadingMutex TEST-PASS | testThreadingMutex | ok testExclusiveData TEST-PASS | testExclusiveData | ok testThreadingConditionVariableForTimeoutPredicate TEST-PASS | testThreadingConditionVariableForTimeoutPredicate | ok testThreadingConditionVariableForOkayPredicate TEST-PASS | testThreadingConditionVariableForOkayPredicate | ok testThreadingConditionVariableForTimeout TEST-PASS | testThreadingConditionVariableForTimeout | ok testThreadingConditionVariableForOkay TEST-PASS | testThreadingConditionVariableForOkay | ok testThreadingConditionVariableUntilTimeoutPredicate TEST-PASS | testThreadingConditionVariableUntilTimeoutPredicate | ok testThreadingConditionVariableUntilOkayPredicate TEST-PASS | testThreadingConditionVariableUntilOkayPredicate | ok testThreadingConditionVariableUntilTimeout TEST-PASS | testThreadingConditionVariableUntilTimeout | ok testThreadingConditionVariableUntilOkay TEST-PASS | testThreadingConditionVariableUntilOkay | ok testThreadingConditionVariablePredicate TEST-PASS | testThreadingConditionVariablePredicate | ok testThreadingConditionVariable TEST-PASS | testThreadingConditionVariable | ok testSymbol_GetWellKnownSymbol TEST-PASS | testSymbol_GetWellKnownSymbol | ok testSymbol_GetSymbolFor TEST-PASS | testSymbol_GetSymbolFor | ok testSymbol_New TEST-PASS | testSymbol_New | ok testStructuredClone_SavedFrame Testing with principals 'IsSystem' Testing with principals 'IsNotSystem' Testing with principals 'testPrincipals' Testing with principals 'nullptr principals' TEST-PASS | testStructuredClone_SavedFrame | ok testStructuredClone_string TEST-PASS | testStructuredClone_string | ok testStructuredClone_object TEST-PASS | testStructuredClone_object | ok testStringBuffer_finishString TEST-PASS | testStringBuffer_finishString | ok testBug795104 TEST-PASS | testBug795104 | ok testSharedImmutableStringsCache TEST-PASS | testSharedImmutableStringsCache | ok testSetPropertyIgnoringNamedGetter_direct TEST-PASS | testSetPropertyIgnoringNamedGetter_direct | ok testSetProperty_InheritedGlobalSetter TEST-PASS | testSetProperty_InheritedGlobalSetter | ok testSetProperty_NativeGetterStubSetter TEST-PASS | testSetProperty_NativeGetterStubSetter | ok CloneAndExecuteScript TEST-PASS | CloneAndExecuteScript | ok bug438633_JS_CompileFileHandleForPrincipals TEST-PASS | bug438633_JS_CompileFileHandleForPrincipals | ok bug438633_JS_CompileFileHandle_empty TEST-PASS | bug438633_JS_CompileFileHandle_empty | ok bug438633_JS_CompileFileHandle TEST-PASS | bug438633_JS_CompileFileHandle | ok bug438633_JS_CompileFile_empty TEST-PASS | bug438633_JS_CompileFile_empty | ok bug438633_JS_CompileFile TEST-PASS | bug438633_JS_CompileFile | ok bug438633_JS_CompileUCScriptForPrincipals TEST-PASS | bug438633_JS_CompileUCScriptForPrincipals | ok bug438633_JS_CompileUCScript_empty TEST-PASS | bug438633_JS_CompileUCScript_empty | ok bug438633_JS_CompileUCScript TEST-PASS | bug438633_JS_CompileUCScript | ok bug438633_CompileScriptForPrincipals TEST-PASS | bug438633_CompileScriptForPrincipals | ok bug438633_CompileScript_empty TEST-PASS | bug438633_CompileScript_empty | ok bug438633_CompileScript TEST-PASS | bug438633_CompileScript | ok testScriptInfo js/src/jsapi-tests/testScriptInfo.cpp:1011:Using //@ to indicate sourceMappingURL pragmas is deprecated. Use //# instead TEST-PASS | testScriptInfo | ok testSavedStacks_selfHostedFrames TEST-PASS | testSavedStacks_selfHostedFrames | ok testSavedStacks_ErrorStackV8 TEST-PASS | testSavedStacks_ErrorStackV8 | ok testSavedStacks_ErrorStackSpiderMonkey TEST-PASS | testSavedStacks_ErrorStackSpiderMonkey | ok testSavedStacks_RangeBasedForLoops TEST-PASS | testSavedStacks_RangeBasedForLoops | ok testSavedStacks_ApiDefaultValues TEST-PASS | testSavedStacks_ApiDefaultValues | ok testSavedStacks_withNoStack TEST-PASS | testSavedStacks_withNoStack | ok testSameValue TEST-PASS | testSameValue | ok testResolveRecursion_InitStandardClasses TEST-PASS | testResolveRecursion_InitStandardClasses | ok testResolveRecursion TEST-PASS | testResolveRecursion | ok testGetRegExpSource TEST-PASS | testGetRegExpSource | ok testGetRegExpFlags TEST-PASS | testGetRegExpFlags | ok testObjectIsRegExp TEST-PASS | testObjectIsRegExp | ok testPropCache_bug505798 TEST-PASS | testPropCache_bug505798 | ok testPromise_RejectPromise TEST-PASS | testPromise_RejectPromise | ok testPromise_ResolvePromise TEST-PASS | testPromise_ResolvePromise | ok testPromise_GetPromiseState TEST-PASS | testPromise_GetPromiseState | ok testPromise_NewPromise TEST-PASS | testPromise_NewPromise | ok testProfileStrings_worksWhenEnabledOnTheFly TEST-PASS | testProfileStrings_worksWhenEnabledOnTheFly | ok testProfileStrings_isCalledWhenError TEST-PASS | testProfileStrings_isCalledWhenError | ok testProfileStrings_isCalledWithJIT TEST-PASS | testProfileStrings_isCalledWithJIT | ok testProfileStrings_isCalledWithInterpreter TEST-PASS | testProfileStrings_isCalledWithInterpreter | ok testPrivateGCThingValue TEST-PASS | testPrivateGCThingValue | ok testPrintf TEST-PASS | testPrintf | ok test_PreserveJitCode js/src/jsapi-tests/testPreserveJitCode.cpp:78:CHECK_EQUAL failed: expected (1u) = 1, got (countIonScripts(global)) = 0 js/src/jsapi-tests/testPreserveJitCode.cpp:22:CHECK failed: testPreserveJitCode(false, 0) TEST-KNOWN-FAIL | test_PreserveJitCode | js/src/jsapi-tests/testPreserveJitCode.cpp:78:CHECK_EQUAL failed: expected (1u) = 1, got (countIonScripts(global)) = 0 | js/src/jsapi-tests/testPreserveJitCode.cpp:22:CHECK failed: testPreserveJitCode(false, 0) test_GlobalPersistentRooted TEST-PASS | test_GlobalPersistentRooted | ok test_PersistentRootedAssign TEST-PASS | test_PersistentRootedAssign | ok test_PersistentRootedCopy TEST-PASS | test_PersistentRootedCopy | ok test_PersistentRootedNull TEST-PASS | test_PersistentRootedNull | ok test_PersistentRooted TEST-PASS | test_PersistentRooted | ok testParseJSON_reviver TEST-PASS | testParseJSON_reviver | ok testParseJSON_error TEST-PASS | testParseJSON_error | ok testParseJSON_success TEST-PASS | testParseJSON_success | ok testObjectEmulatingUndefined_equal TEST-PASS | testObjectEmulatingUndefined_equal | ok testObjectEmulatingUndefined_truthy TEST-PASS | testObjectEmulatingUndefined_truthy | ok testOOM TEST-PASS | testOOM | ok testNullRoot TEST-PASS | testNullRoot | ok testNewTargetInvokeConstructor TEST-PASS | testNewTargetInvokeConstructor | ok testNewObject_1 TEST-PASS | testNewObject_1 | ok testMutedErrors TEST-PASS | testMutedErrors | ok testMappedArrayBuffer_bug945152 TEST-PASS | testMappedArrayBuffer_bug945152 | ok test_undef_leq_null TEST-PASS | test_undef_leq_null | ok test_null_leq_undef TEST-PASS | test_null_leq_undef | ok test_nz_leq_pz TEST-PASS | test_nz_leq_pz | ok test_pz_leq_nz TEST-PASS | test_pz_leq_nz | ok test_leq_same_nums TEST-PASS | test_leq_same_nums | ok test_all_nleq_nan TEST-PASS | test_all_nleq_nan | ok test_nan_nleq_all TEST-PASS | test_nan_nleq_all | ok test_null_leq_null TEST-PASS | test_null_leq_null | ok test_undef_leq_undef TEST-PASS | test_undef_leq_undef | ok testLookup_bug570195 TEST-PASS | testLookup_bug570195 | ok testLookup_bug522590 TEST-PASS | testLookup_bug522590 | ok testJitRegisterSet_FPU_Aliases TEST-PASS | testJitRegisterSet_FPU_Aliases | ok testJitRegisterSet_FPU TEST-PASS | testJitRegisterSet_FPU | ok testJitRegisterSet_GPR TEST-PASS | testJitRegisterSet_GPR | ok testJitRangeAnalysis_shiftRight TEST-PASS | testJitRangeAnalysis_shiftRight | ok testJitRangeAnalysis_StrictCompareBeta TEST-PASS | testJitRangeAnalysis_StrictCompareBeta | ok testJitRangeAnalysis_MathSignBeta TEST-PASS | testJitRangeAnalysis_MathSignBeta | ok testJitRangeAnalysis_MathSign TEST-PASS | testJitRangeAnalysis_MathSign | ok testJitRValueAlloc_ConstantPool TEST-PASS | testJitRValueAlloc_ConstantPool | ok testJitRValueAlloc_UndefinedAndNull TEST-PASS | testJitRValueAlloc_UndefinedAndNull | ok testJitRValueAlloc_UntypedStack TEST-PASS | testJitRValueAlloc_UntypedStack | ok testJitRValueAlloc_UntypedReg TEST-PASS | testJitRValueAlloc_UntypedReg | ok testJitRValueAlloc_TypedStack TEST-PASS | testJitRValueAlloc_TypedStack | ok testJitRValueAlloc_TypedReg TEST-PASS | testJitRValueAlloc_TypedReg | ok testJitRValueAlloc_FloatStack TEST-PASS | testJitRValueAlloc_FloatStack | ok testJitRValueAlloc_FloatReg TEST-PASS | testJitRValueAlloc_FloatReg | ok testJitRValueAlloc_Double TEST-PASS | testJitRValueAlloc_Double | ok testJitGVN_PinnedPhis TEST-PASS | testJitGVN_PinnedPhis | ok testJitGVN_FixupOSROnlyLoopNested TEST-PASS | testJitGVN_FixupOSROnlyLoopNested | ok testJitGVN_FixupOSROnlyLoop TEST-PASS | testJitGVN_FixupOSROnlyLoop | ok testJitFoldsTo_UnsignedMod TEST-PASS | testJitFoldsTo_UnsignedMod | ok testJitFoldsTo_UnsignedDiv TEST-PASS | testJitFoldsTo_UnsignedDiv | ok testJitNotNotTest TEST-PASS | testJitNotNotTest | ok testJitNotTest TEST-PASS | testJitNotTest | ok testJitNotNotNot TEST-PASS | testJitNotNotNot | ok testJitNotNot TEST-PASS | testJitNotNot | ok testJitFoldsTo_NoDivReciprocal TEST-PASS | testJitFoldsTo_NoDivReciprocal | ok testJitFoldsTo_DivReciprocal TEST-PASS | testJitFoldsTo_DivReciprocal | ok testJitDCEinGVN_phi TEST-PASS | testJitDCEinGVN_phi | ok testJitDCEinGVN_ins TEST-PASS | testJitDCEinGVN_ins | ok testJSEvaluateScript TEST-PASS | testJSEvaluateScript | ok testIteratorObject TEST-PASS | testIteratorObject | ok testIsInsideNursery TEST-PASS | testIsInsideNursery | ok testIntlAvailableLocales TEST-PASS | testIntlAvailableLocales | ok testPinAcrossGC TEST-PASS | testPinAcrossGC | ok testAtomizedIsNotPinned TEST-PASS | testAtomizedIsNotPinned | ok testIntTypesABI TEST-PASS | testIntTypesABI | ok testIntString_bug515273 TEST-PASS | testIntString_bug515273 | ok testStringToPropertyName TEST-PASS | testStringToPropertyName | ok testStringIsIndex TEST-PASS | testStringIsIndex | ok testIndexToString TEST-PASS | testIndexToString | ok testHashSetOfMoveOnlyType TEST-PASS | testHashSetOfMoveOnlyType | ok testHashRekeyManualRemoval TEST-PASS | testHashRekeyManualRemoval | ok testHashRekeyManual TEST-PASS | testHashRekeyManual | ok test_GetPropertyDescriptor TEST-PASS | test_GetPropertyDescriptor | ok testGCWeakRef TEST-PASS | testGCWeakRef | ok testWeakCacheGCVector TEST-PASS | testWeakCacheGCVector | ok testWeakCacheMap TEST-PASS | testWeakCacheMap | ok testWeakCacheSet TEST-PASS | testWeakCacheSet | ok testGCUID TEST-PASS | testGCUID | ok testGCStoreBufferRemoval TEST-PASS | testGCStoreBufferRemoval | ok testGCOutOfMemory TEST-PASS | testGCOutOfMemory | ok testIncrementalRoots TEST-PASS | testIncrementalRoots | ok testLiveNurseryWrappeeCCW TEST-PASS | testLiveNurseryWrappeeCCW | ok testLiveNurseryWrapperCCW TEST-PASS | testLiveNurseryWrapperCCW | ok testLiveNurseryCCW TEST-PASS | testLiveNurseryCCW | ok testDeadNurseryCCW TEST-PASS | testDeadNurseryCCW | ok testTracingIncomingCCWs *thingp = 0x7000b7aa080 *expectedThingp = 0x7000b7aa080 kind = 0 expectedKind = 0 TEST-PASS | testTracingIncomingCCWs | ok testGCSliceCallback TEST-PASS | testGCSliceCallback | ok testUnbarrieredEquality TEST-PASS | testUnbarrieredEquality | ok testGCHeapPostBarriers TEST-PASS | testGCHeapPostBarriers | ok testGCGrayMarking TEST-PASS | testGCGrayMarking | ok testGCFinalizeCallback TEST-PASS | testGCFinalizeCallback | ok testGCHandleVector TEST-PASS | testGCHandleVector | ok testTraceableFifo TEST-PASS | testTraceableFifo | ok testGCRootedVector TEST-PASS | testGCRootedVector | ok testGCHandleHashMap TEST-PASS | testGCHandleHashMap | ok testGCRootedHashMap TEST-PASS | testGCRootedHashMap | ok testGCPersistentRootedTraceableCannotOutliveRuntime TEST-PASS | testGCPersistentRootedTraceableCannotOutliveRuntime | ok testGCPersistentRootedOutlivesRuntime TEST-PASS | testGCPersistentRootedOutlivesRuntime | ok testGCRootedStaticStructInternalStackStorageAugmented TEST-PASS | testGCRootedStaticStructInternalStackStorageAugmented | ok testGCSuppressions TEST-PASS | testGCSuppressions | ok testGCExactRooting TEST-PASS | testGCExactRooting | ok testGCChunkPool TEST-PASS | testGCChunkPool | ok testGCCellPtr TEST-PASS | testGCCellPtr | ok testGCAllocator Segmentation fault
Attachment #8861164 - Flags: feedback?(martin)
Attachment #8861164 - Flags: feedback?(landry)
Attachment #8861164 - Flags: feedback?(andrew)
Comment on attachment 8861164 [details] Bug 1359142 - Define EPC_sig and RFP_sig for JS_CODEGEN_(ARM64|MIPS) on BSDs. https://reviewboard.mozilla.org/r/133116/#review135958 Thanks!
Attachment #8861164 - Flags: review?(luke) → review+
Comment on attachment 8861164 [details] Bug 1359142 - Define EPC_sig and RFP_sig for JS_CODEGEN_(ARM64|MIPS) on BSDs. I have zero knowledge in, nor time to devote to arm*
Attachment #8861164 - Flags: feedback?(landry)
Assignee: nobody → jbeich
Too late for 53, but we can track this for 54 onwards and make sure to uplift a fix once we have it.
Comment on attachment 8861164 [details] Bug 1359142 - Define EPC_sig and RFP_sig for JS_CODEGEN_(ARM64|MIPS) on BSDs. https://reviewboard.mozilla.org/r/133116/#review138662 ::: js/src/wasm/WasmSignalHandlers.cpp:110 (Diff revision 1) > # define R10_sig(p) ((p)->sc_r10) > # define R11_sig(p) ((p)->sc_r11) > # define R12_sig(p) ((p)->sc_r12) > # define R13_sig(p) ((p)->sc_r13) > # define R14_sig(p) ((p)->sc_r14) > # define R15_sig(p) ((p)->sc_r15) OpenBSD arm has `sc_pc` but not `sc_r15`. https://github.com/openbsd/src/blob/8dbfa91322fa/sys/arch/arm/include/signal.h#L84 ::: js/src/wasm/WasmSignalHandlers.cpp:177 (Diff revision 1) > # define R11_sig(p) ((p)->uc_mcontext.__gregs[_REG_R11]) > # define R12_sig(p) ((p)->uc_mcontext.__gregs[_REG_R12]) > # define R13_sig(p) ((p)->uc_mcontext.__gregs[_REG_R13]) > # define R14_sig(p) ((p)->uc_mcontext.__gregs[_REG_R14]) > # define R15_sig(p) ((p)->uc_mcontext.__gregs[_REG_R15]) > +# define EPC_sig(p) ((p)->uc_mcontext.__gregs[_REG_PC]) NetBSD mips doesn't have `_REG_PC` but there is `_REG_EPC`. https://github.com/jsonn/src/blob/105a2837c72d/lib/libc/arch/mips/gen/makecontext.c#L71 https://github.com/jsonn/src/blob/105a2837c72d/sys/arch/mips/include/mcontext.h#L77 ::: js/src/wasm/WasmSignalHandlers.cpp:210 (Diff revision 1) > # define R12_sig(p) ((p)->uc_mcontext.mc_r12) > # define R13_sig(p) ((p)->uc_mcontext.mc_r13) > # define R14_sig(p) ((p)->uc_mcontext.mc_r14) > +# if defined(__FreeBSD__) && defined(__aarch64__) > +# define EPC_sig(p) ((p)->uc_mcontext.mc_gpregs.gp_elr) > +# define RFP_sig(p) ((p)->uc_mcontext.mc_gpregs.gp_x[19]) FreeBSD aarch64 stores frame pointer in X29 (like on Linux). Not sure why libc uses X19. https://github.com/freebsd/freebsd/blob/39f39609ab65/sys/cddl/dev/dtrace/aarch64/dtrace_isa.c#L208 https://github.com/freebsd/freebsd/blob/39f39609ab65/sys/arm64/arm64/stack_machdep.c#L69 https://github.com/freebsd/freebsd/blob/39f39609ab65/lib/libc/aarch64/gen/makecontext.c#L84
Whiteboard: [npotb]
Pushed by ryanvm@gmail.com: https://hg.mozilla.org/integration/autoland/rev/604acb6a6aec Define EPC_sig and RFP_sig for JS_CODEGEN_(ARM64|MIPS) on BSDs. r=luke
Keywords: checkin-needed
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla55
Comment on attachment 8861164 [details] Bug 1359142 - Define EPC_sig and RFP_sig for JS_CODEGEN_(ARM64|MIPS) on BSDs. Approval Request Comment [ESR consideration]: Better support for opt-in JIT on aarch64 and opt-out JIT on mips. [Feature/Bug causing the regression]: bug 1323115 regression for aarch64, bug 969375 + bug 1213752 regression for mips* [User impact if declined]: Broken build on BSD systems on aarch64/mips* unless --disable-ion is added to .mozconfig. [Is this code covered by automated tests?]: BSDs are NPOTB, aarch64/mips* are NPOTB. [Has the fix been verified in Nightly?]: Yes but only on FreeBSD 11.0 aarch64. [Needs manual test from QE? If yes, steps to reproduce]: No [List of other uplifts needed for the feature/fix]: None [Is the change risky?]: No [Why is the change risky/not risky?]: Can only break build due to mismerge or a wild typo. [String changes made/needed]: None
Attachment #8861164 - Flags: approval-mozilla-esr52?
Attachment #8861164 - Flags: approval-mozilla-aurora?
Patch conflicts in context lines are due to bug 1338217 and bug 1353050.
Attachment #8861164 - Flags: approval-mozilla-aurora? → approval-mozilla-beta?
Comment on attachment 8861164 [details] Bug 1359142 - Define EPC_sig and RFP_sig for JS_CODEGEN_(ARM64|MIPS) on BSDs. Fix a broken build on BSD systems on aarch64/mips. Beta54+. Should be in 54 beta 6.
Attachment #8861164 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
(In reply to Jan Beich from comment #11) > [Is this code covered by automated tests?]: BSDs are NPOTB, aarch64/mips* > are NPOTB. > [Has the fix been verified in Nightly?]: Yes but only on FreeBSD 11.0 > aarch64. > [Needs manual test from QE? If yes, steps to reproduce]: No Setting qe-verify- based on Jan's assessment on manual testing needs.
Flags: qe-verify-
Comment on attachment 8864045 [details] [diff] [review] rebased for esr52 (and ff54) build fix for (tier-3) bsd on arm64
Attachment #8864045 - Flags: approval-mozilla-esr52+
Comment on attachment 8861164 [details] Bug 1359142 - Define EPC_sig and RFP_sig for JS_CODEGEN_(ARM64|MIPS) on BSDs. moved esr52 approval to the other patch
Attachment #8861164 - Flags: approval-mozilla-esr52?
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: