Re: workaround for: Breakage in arch/i386/kernel/time.c

Mike Galbraith (mikeg@weiden.de)
Tue, 7 Dec 1999 20:18:38 +0100 (CET)


On Tue, 7 Dec 1999, David Dyck wrote:

Hi,

> I noticed the same problem that Richard Gooch had:
>
> time.c: In function `do_gettimeofday':
> time.c:262: fixed or forbidden register was spilled.
> This may be due to a compiler bug or to impossible asm statements or clauses.

IMVHO, this is a bug in older versions of gcc and egcs. These compilers
seem to run into trouble when too much restriction is placed upon their
register selection choices.

The very same thing happens if you use raid-0.90 in 2.3.x for the very
same group of compilers.. xor.c bombs. [matters not to me.. haven't
been able to make raid-5 (hobby) work right in 2.3.>6 anyway.. yet:]

gcc-2.7.2.3 -D__KERNEL__ -I/usr/local/src/tmp/linux-2.3.30-6.ikd.raid.fpumemcpy/include -Wall -Wstrict-prototypes -O2 -fno-omit-frame-pointer -D__SMP__ -pipe
-DCPU=586 -c -o drivers/block/xor.o drivers/block/xor.c
drivers/block/xor.c: In function `xor_block_pII_mmx':
drivers/block/xor.c:586: fixed or forbidden register was spilled.
This may be due to a compiler bug or to impossible asm
statements or clauses.
cpp: output pipe has been closed
make: *** [drivers/block/xor.o] Error 1

This compiles fine with newer compilers. (and works)

<snip>

> What compiler is Linus using?

Dunno.. I suspect that sometimes its grey-cc -fuse-all-wrinkles ;-)

-Mike

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/