This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: relocation overflow
Daniel Jacobowitz <drow@mvista.com> writes:
> On Wed, Nov 20, 2002 at 12:01:59PM -0500, Camm Maguire wrote:
> > Greetings, and thanks for your reply.
> >
> > The relocation type is R_PPC_REL24. I've got the failure up now in
> > gdb and can backtrace into the bfd library if this would help.
>
> Presumably it won't help - bear in mind, this is a _24-bit_ relocation.
> You have to load modules close enough that that suffices, or else you
> have to insert trampolines for longer jumps... through a GOT or
> whatever.
>
> PowerPC GCC doesn't seem to have a long-calls option, so you're just
> out of luck if you can't fit things in 16MB. Trampolines may be the
> way to go.
The way this is normally done, for programs that load arbitrary
modules, is that each module is a .so file, is built with -fpic, and
is loaded using the dlsym functions. Then the limit is 32Mb per
module, and you can have as many modules as your address space can
fit; cross-module calls happen through a PLT which can perform long
jumps.
I'm not sure how GCL works, but is it possible that you simply haven't
built the modules with -fpic?
--
- Geoffrey Keating <geoffk@geoffk.org>