This is the mail archive of the
mailing list for the binutils project.
Re: Adding MIPS support to GOLD
Rick Mann <firstname.lastname@example.org> writes:
> On Mar 25, 2008, at 10:22 AM, David Daney wrote:
>> I was thinking about looking at MIPS support, however I think it may
>> be a bit complicated. The Multi-GOT support is something that does
>> not exist for x86, so it would be completely new. The rest (having
>> not looked at the gold source code yet), I think would be mostly
>> straight forward.
> I consider myself a fairly expert programmer, but not in the area of
> language tools, and sadly it gets harder for me when looking at
> something like GCC and binutils (I'm really a Mac programmer, using
> the traditional Mac APIs). Is there someplace I can learn about the
> GOT, why multi-GOT exists for MIPS and not for x86, how it's used,
For details you have to read the MIPS ELF ABI, which you can find in
PDF form off of http://sco.com/developers/devspecs/ .
MIPS uses multi-GOT because it only permits 16 bit offsets from a base
register. That means that if you need a GOT larger than 65536 bytes,
as is true of large programs with lots of global variables, you need
to use more than one GOT. i386 permits 32 bit offsets from a base
register, so a single GOT is always enough.