This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: Another MIPS multigot patch
- From: Richard Sandiford <rsandifo at redhat dot com>
- To: Daniel Jacobowitz <drow at mvista dot com>
- Cc: binutils at sources dot redhat dot com
- Date: 22 Nov 2003 16:31:10 +0000
- Subject: Re: Another MIPS multigot patch
- References: <20031121221758.GA2371@nevyn.them.org>
Daniel Jacobowitz <drow@mvista.com> writes:
> Currently I can't build an n64 GCC (with my other patches applied to the
> linker). The error is an R_MIPS_GOT_PAGE overflow for a common variable
> (flag_dump_unnumbered?).
Ouch. An R_MIPS_GOT_PAGE against a global symbol? OK, so it's supposed
to work, but gcc shouldn't really be generating that. Can you send me
the .i file?
> Here's the problem:
>
> if (1)
> {
> gg->assigned_gotno = gg->global_gotno - g->global_gotno;
> g->global_gotno = gg->global_gotno;
> set_got_offset_arg.value = 2;
> }
>
> With this, global_gotno increases by a substantial amount. If the primary
> GOT was full, then the odds are good that there is now a 16-bit relocation
> in the primary GOT that can no longer be resolved.
Not sure I understand. We're supposed to order the master GOT so that
the symbols in the primary GOT come first. Is that not happening for
some reason?
Richard