[U-Boot] [PATCH] mpc83xx: Add -fpic relocation support
Joakim Tjernlund
joakim.tjernlund at transmode.se
Tue Oct 12 19:11:11 CEST 2010
Scott Wood <scottwood at freescale.com> wrote on 2010/10/12 17:52:58:
>
> On Tue, 12 Oct 2010 15:04:31 +0200
> Joakim Tjernlund <joakim.tjernlund at transmode.se> wrote:
>
> > _GLOBAL_OFFSET_TABLE_ is a predefined symbol that the linker defines
to
> > be in the middle of the -fpic GOT table. It marks the end of the GOT
table
> > as far as we are concerned(u-boot does not generate so many relocs
that
> > the
> > linker needs to use the space above _GLOBAL_OFFSET_TABLE_)
> >
> > There is no predefined symbol that marks the start of fpic relocs so
> > one is added(_GOT_TABLE_) by me to the linker script.
>
> Maybe call it _GOT_START_ or similar? _GLOBAL_OFFSET_TABLE_ and
> _GOT_TABLE_[1] look like synonyms.
hmm, the other reloc syms are named _GOT2_TABLE_ and
_FIXUP_TABLE_ so I think I should follow that.
>
> -Scott
>
> [1] Global offset table table? :-)
:)
Figured I should mention that I have added -msingle-pic-base(from ARM)
which
works nicely with -fpic(not sure if -fPIC is possible) and reduces size
even more:
size u-boot-before
text data bss dec hex filename
230595 6580 24228 261403 3fd1b u-boot
size u-boot-after
text data bss dec hex filename
222779 6580 24228 253587 3de93 u-boot
If you have 8 KB free DPRAM/cache one can move the GOT tables there
while in flash and create true PIC
Jocke
More information about the U-Boot
mailing list