This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Where is the splitting of MIPS %hi and %lo relocations handled?
- From: Ian Lance Taylor <iant at google dot com>
- To: David Daney <ddaney at avtrex dot com>
- Cc: gcc mailing list <gcc at gcc dot gnu dot org>
- Date: 06 Nov 2006 11:12:44 -0800
- Subject: Re: Where is the splitting of MIPS %hi and %lo relocations handled?
- References: <454EB8E9.4010001@avtrex.com>
David Daney <ddaney@avtrex.com> writes:
> I am going to try to fix:
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29721
>
> Which is a problem where a %lo relocation gets separated from its
> corresponding %hi.
>
> What is the mechanism that tries to prevent this from happening? And
> where is it implemented?
This implemented by having the assembler sort the relocations so that
each %lo relocations follows the appropriate set of %hi relocations.
It is implemented in gas/config/tc-mips.c in append_insn. Look for
reloc_needs_lo_p and mips_frob_file.
At first glance the assembler does appear to handle %got correctly, so
I'm not sure why it is failing for you.
Ian