"Maciej W. Rozycki" <macro@xxxxxxxxxxxxxx> 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