egcs-2.90.18 971122 does not compile Linux kernel 2.1.66 for me.
I get the following :
gcc -D__KERNEL__ -I/users/stefan/kernel/linux/include -Wall -Wno-sign-compare -Wstrict-prototypes -O2 -fno-exceptions -fomit-frame-pointer -pipe -m486 -DCPU=486 -c -o process.o process.c
process.c: In function `flush_thread':
process.c:469: fixed or forbidden register was spilled.
This may be due to a compiler bug or to impossible asm
statements or clauses.
make[1]: *** [process.o] Error 1
make[1]: Leaving directory `/usr/src/kernel/linux/arch/i386/kernel'
make: *** [linuxsubdirs] Error 2
gcc -v
Reading specs from /usr/lib/gcc-lib/i486-pc-linux-gnulibc1/egcs-2.90.18/specs
gcc version egcs-2.90.18 971122 (gcc2-970802 experimental)
/lib/libc.so.5.4.40
ldd: version 1.9.6
GNU ld version cygnus-2.8.1 (with BFD linux-2.8.1.0.15)
GNU assembler version 970731 (i586-linux), using BFD version linux-2.8.1.0.15
With an older egcs snapshot
Reading specs from /usr/lib/gcc-lib/i486-pc-linux-gnulibc1/egcs-2.90.10/specs
gcc version egcs-2.90.10 970924 (gcc2-970802 experimental)
the kernel seems to compile flawlessly.
Stefan
m: Jeffrey A Law <law@cygnus.com>
In message <199711270808.JAA16610@emskopp.a.shuttle.de>you write:
>
> Hi,
>
> egcs-2.90.18 971122 does not compile Linux kernel 2.1.66 for me.
> I get the following :
>
> gcc -D__KERNEL__ -I/users/stefan/kernel/linux/include -Wall -Wno-sign-compa
> re -Wstrict-prototypes -O2 -fno-exceptions -fomit-frame-pointer -pipe -m4
> 86 -DCPU=486 -c -o process.o process.c
This is a bug in an asm inside process.c. It is not a bug in egcs.
It worked with gcc-2.7 and older versions of egcs because they did not do a
good job at discovering loop invariants. Newer versions of egcs find more
loop invariants and as a result expose problems with the asm in process.c
jeff
----- End of forwarded message from Jeffrey A Law -----