[Fwd: Re: [parisc-linux] Re: gcj can't make shared libs on hppa]
Carlos O'Donell
carlos at systemhalted.org
Mon Mar 6 09:47:47 MST 2006
Dave,
Sorry, it appears I've been dropped from various lists when my
mail servers went down due to university problems.
> > Right, it's a linker bug. The following plabel is dropped from the
> > shared library.
> >
> > 0000000c R_PARISC_PLABEL32 .L_ZN2A1C1Ev0
>
> I was too hasty in calling this a linker bug. We end up with the
> following relocations in the shared library as a result of the above
> relocation in the object file:
>
> 00010f34 R_PARISC_PLABEL32 *ABS*+0x00010f46
> 00010f44 R_PARISC_IPLT *ABS*+0x000009a8
>
> The reason for the segmentation fault is the R_PARISC_IPLT isn't
> being handled correctly and the indirect call to the constructor
> for the library branches to the wrong location.
Can you explain what is broken?
Where does it branch to?
> Carlos, do you have an opinion on how plabels that reference local
> symbols in shared libraries should be handled? This is what we have
> in the A1.s file for .L_ZN2A1C1Ev0:
>
> .word P%.L_ZN2A1C1Ev0
> .set .L_ZN2A1C1Ev0,_ZN2A1C1Ev
*ABS* IPLT relocations might be mildly broken in hppa actually.
*ABS* PLABEL's point to the PLT at runtime, this might be a
reason for the breakage. We point them at the PLT because they
are local and thus the PLT is a unique OPD.
It might be possible the IP is correctly set, but the GP is incorrect.
If you could verify this it would be great?
This breakage would have occured around the time that fixup was
changed to incorporate ia64 changes.
c.
More information about the parisc-linux
mailing list