Closed Bug 703842 Opened 13 years ago Closed 13 years ago

Binary ends up with a R_SPARC_WDISP22 relocation that ld.so doesn't support

Categories

(Core :: JavaScript Engine, defect)

Sun
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla11

People

(Reporter: glandium, Assigned: glandium)

Details

(Whiteboard: [inbound])

Attachments

(1 file)

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.
Attachment #575633 - Flags: review?(bhackett1024)
Attachment #575633 - Flags: review?(bhackett1024) → review+
http://hg.mozilla.org/integration/mozilla-inbound/rev/69791b4d7519
Whiteboard: [inbound]
https://hg.mozilla.org/mozilla-central/rev/69791b4d7519
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla11
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: