[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gcl-devel] Re: relocation overflow
From: |
Camm Maguire |
Subject: |
Re: [Gcl-devel] Re: relocation overflow |
Date: |
21 Nov 2002 13:53:07 -0500 |
Greetings, and thanks for your reply!
Geoff Keating <address@hidden> writes:
> > Cc: Daniel Jacobowitz <address@hidden>, Alan Modra <address@hidden>,
> > address@hidden, address@hidden
> > From: Camm Maguire <address@hidden>
> > Date: 20 Nov 2002 21:45:23 -0500
>
> > Greetings, and thanks for your reply!
> >
> > Geoff Keating <address@hidden> writes:
> >
> > > Daniel Jacobowitz <address@hidden> 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.
OK, this is what I thought you meant the first time. Unfortunately,
this does not seem to be the case:
address@hidden:~/gcl-2.5.0.cvs20020625/o$ gcc -c -Wall -DVOL=volatile
-fsigned-char -fwritable-strings -pipe -fPIC main.c -o main.o
address@hidden:~/gcl-2.5.0.cvs20020625/o$ objdump -x main.o |grep 24
00000024 O *COM* 00000004 Cnil_body
00000024 O *COM* 00000004 Dotnil_body
00000024 O *COM* 00000004 Ct_body
00002460 g F .text 00000084 siLinitialization_failure
000024e8 g F .text 00000054 Lidentity
00000048 R_PPC_PLTREL24 setbuf
00000058 R_PPC_PLTREL24 setbuf
...
00000024 R_PPC_ADDR32 system_directory
000000b4 R_PPC_ADDR32 .data+0x00000024
Perhaps I need to pass each module through ld -shared too?
Take care,
>
> --
> - Geoffrey Keating <address@hidden>
>
>
--
Camm Maguire address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah
- [Gcl-devel] relocation overflow, Camm Maguire, 2002/11/19
- Message not available
- [Gcl-devel] Re: relocation overflow, Camm Maguire, 2002/11/20
- [Gcl-devel] Re: relocation overflow, Daniel Jacobowitz, 2002/11/20
- [Gcl-devel] Re: relocation overflow, Geoff Keating, 2002/11/20
- Re: [Gcl-devel] Re: relocation overflow, Camm Maguire, 2002/11/20
- Re: [Gcl-devel] Re: relocation overflow, Geoff Keating, 2002/11/21
- Re: [Gcl-devel] Re: relocation overflow,
Camm Maguire <=
- Re: [Gcl-devel] Re: relocation overflow, Daniel Jacobowitz, 2002/11/21
- Re: [Gcl-devel] Re: relocation overflow, Camm Maguire, 2002/11/21
- Re: [Gcl-devel] Re: relocation overflow, Geoff Keating, 2002/11/21
- Re: [Gcl-devel] Re: relocation overflow, Camm Maguire, 2002/11/20
- Re: [Gcl-devel] Re: relocation overflow, Alan Modra, 2002/11/20
- [Gcl-devel] Re: relocation overflow, Camm Maguire, 2002/11/25