[PATCH] Only warn when missing MIPS LO16 are encountered

H. J. Lu hjl@lucon.org
Mon Mar 26 16:51:00 GMT 2007


On Mon, Mar 26, 2007 at 04:53:56PM +0100, Thiemo Seufer wrote:
> Paul Koning wrote:
> > >>>>> "Thiemo" == Thiemo Seufer <ths@networkno.de> writes:
> > 
> >  Thiemo> Hello All, I applied the appended patch, it downgrades
> >  Thiemo> missing LO16 relocations from an error to a warning. This
> >  Thiemo> unbreaks builds with existing compilers but still gives gcc
> >  Thiemo> developers a better chance to find and fix the problematic
> >  Thiemo> bits in the optimizer.
> > 
> > Warnings are still a problem when you're using the "warnings are
> > errors" principle, as we and others do.
> > 
> > Does this "missing" LO16 relocation cause any problem?
> 
> It is a long-standing violation of the MIPS O32 ABI rules. It causes
> unexpected cornercases for linker implementations (as seen here again)
> but the resulting binaries run ok.
> 
> > If not, why
> > should there be a warning, and for that matter, why should this be
> > called "problematic bits in the optimizer"?
> 
> The optimizer should eliminate the whole HI/LO relocation pair.
> Currently it doesn't do that in all cases.

Can gas turn instruction with HI relocation without matching LO
relocation into no-op?


H.J.



More information about the Binutils mailing list