kernel v2.2.13 register spill on posix_types.h for FD_ZERO()

M Sweger (mikesw@whiterose.net)
Tue, 14 Dec 1999 18:27:39 -0500 (EST)


Hi,
I'm trying to compile sysvinit v2.76 that contains the "/sbin/init"
using linux kernel v2.2.7 or v2.2.13 and gcc v2.95.2. I'm running
into a register spill problem due to the clobbering of registers in
the asm code.

The macro FD_ZERO() which is in /usr/src/linux/include/asm-i386/posix_types.h
is in error and hasn't been modified since Dec 27, 1998. Will need to have
a fix done to correct this so that this sysvinit can be compiled using this
macro and no register spilling occurs.

Can someone post a temporary solution in the meantime while I wait for
linux kernel v2.2.14 to come out (I'm having problems doing the patch
method). I'd like to recompile "init" and determine if this is my
"do_select()" problem when the "init" process is running. Thanks.


cc -c -Wall -O2 -D_GNU_SOURCE init.c
init.c: In function `console_open':
init.c:457: warning: `fd' might be used uninitialized in this function
init.c: In function `check_pipe':
init.c:1693: Invalid `asm' statement:
init.c:1693: fixed or forbidden register 2 (cx) was spilled for class CREG.
init.c: In function `check_init_fifo':
init.c:1893: Invalid `asm' statement:
init.c:1893: fixed or forbidden register 2 (cx) was spilled for class CREG.
make: *** [init.o] Error 1

**** Here is one line of code from the errors above that is causing it.

1693 FD_ZERO(&s);

PS: Everything else in syvsinit compiles.

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/