This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Another MIPS multigot patch


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]