The ld.so message looks like the following: error while loading shared libraries: libmozjs.so: unexpected reloc type 0x08 Reloc type 0x08 is R_SPARC_WDISP22 This relocation comes from the ba instruction in the following assembly from methodjit/TrampolineSparc.s: .global JaegerInterpolineScripted .type JaegerInterpolineScripted, #function JaegerInterpolineScripted: ld [%l0 + 0x10], %l0 /* Load f->prev_ */ st %l0, [%fp - 36] /* Update f->regs->fp_ */ ba JaegerInterpoline nop Replacing ba with call works, but then it goes through the PLT, which is silly. Another solution that works is to replace JaegerInterpoline with a new label at the same location, but which is not defined as a function.
Created attachment 575633 [details] [diff] [review] Avoid R_SPARC_WDISP22 relocation in TrampolineSparc.s
Attachment #575633 - Flags: review?(bhackett1024)
Attachment #575633 - Flags: review?(bhackett1024) → review+
Status: NEW → RESOLVED
Last Resolved: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla11
You need to log in before you can comment on or make changes to this bug.