This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: [Gcl-devel] Re: relocation overflow
> Cc: Daniel Jacobowitz <drow@mvista.com>, Alan Modra <amodra@bigpond.net.au>,
> gcl-devel@gnu.org, binutils@sources.redhat.com
> From: Camm Maguire <camm@enhanced.com>
> Date: 20 Nov 2002 21:45:23 -0500
> Greetings, and thanks for your reply!
>
> Geoff Keating <geoffk@geoffk.org> writes:
>
> > Daniel Jacobowitz <drow@mvista.com> writes:
> >
> > > On Wed, Nov 20, 2002 at 12:01:59PM -0500, Camm Maguire wrote:
> > > 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.
>
> OK, when I first read this, I thought that -fPIC would eliminate 24bit
> relocs. I was mistaken, and have just verified that the reloc
> overflows are different, but still present, when adding -fPIC. On
> rereading this, it appears as though the dlym code has trampolines to
> handle long calls on 24bit relocs. Maybe I should look here.
Perhaps you are trying to load .o files, not .so files? There should
be no *24 relocs in a .so file if all its contents are built with
-fpic or -fPIC.
--
- Geoffrey Keating <geoffk@geoffk.org>