"Maciej W. Rozycki" <macro@linux-mips.org> writes:
> On Sat, 13 Oct 2007, Richard Sandiford wrote:
>> FWIW, I've added some notes about the underlying cause. I think this
>> could in principle happen with any gcc release.
>
> It has been seen with GCC 3.4 and IIRC SDE has a hack in binutils to
> disable this error as a workaround. I guess the problem has always been
> there since explicit relocs were added to GCC; it is just it hardly ever
> happens.
Agreed. And in options-speak, "explicit relocs" means both -mexplicit-relocs
and -msplit-addresses. The associated gas warning was disabled in the
initial revision of sourceware binutils:
1.1 (rth 03-May-99): #if 0 /* GCC code motion plus incomplete
dead code elimination
1.1 (rth 03-May-99): can leave a %hi without a %lo. */
1.1 (rth 03-May-99): if (pass == 1)
1.1 (rth 03-May-99): as_warn_where (l->fixp->fx_file,
l->fixp->fx_line,
1.1 (rth 03-May-99): _("Unmatched %%hi
reloc"));
1.1 (rth 03-May-99): #endif
so I think this problem has been seen with GCC 2 as well as 3 and 4.
Richard
|