On Wed, 22 Jun 2005, Kumba wrote: > I've tested to see it break IP30, and Thiemo reported IP27 was also not > booting (no text display after kernel entry). Reversing this patch seems to > allow both systems to boot. Is it possible it breaks ELF64-only builds? I > haven't tested it on IP28 yet, so I can't confirm this (it's also ELF64). Well, could I please ask people to be more specific when writing such reports? Unfortunately "break" can mean anything and my crystal ball is currently away for a service. At least you've mentioned problems at a bootstrap, so I infer it's not a build-time failure. That said, I'm only using ELF64 for my 64-bit builds, so that shouldn't be the cause. But I think there is one possiblity of a problem -- obsolete versions of GCC may rely on gas expanding "ll" and "sc" as macros, i.e. substitute a name of a symbol rather than a valid machine-level address expression (e.g. "0($reg)" or "%lo(sym)($reg)") for memory constraints. Well, by using "m" right now we sort of permit it to. But shouldn't gas actually complain if the ISA or CPU selection forbids it doing the right address calculation for the ABI in use? I think it should, so I consider it a bug in gas. Of course, blaming gas doesn't magically make our code right, but the deficiency makes noticing such problems tougher. As we still strive to support old versions of GCC, I guess a reasonable solution is taking an approach similar to that I already have in include/asm-mips/bitops.h, i.e. defining __SET_MIPS appropriately and using it instead of hardcoded ".set mips2". I'll prepare a fix shortly. Maciej