Linux 1.0.9 ...

Hans-Joachim Baader (
Sat, 13 Sep 1997 18:09:35 +0200 (MET DST)


I have trouble recompiling Linux 1.0.9 on a 2.0.31 machine.
This is what I get:

gcc -b i486-linuxaout -V2.7.2 -D__KERNEL__ -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -pipe -m386 -c -o init/main.o init/main.c
init/main.c: In function `checksetup':
init/main.c:225: 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

Assembler is:
GNU assembler version 2.8.1 (i586-linuxaout)

This is very mysterious to me. The compiler options and the code of the
'checksetup' function are nearly identical to Linux 1.2.13, and I
don't have the problem with this version. I also have verified that
the differences don't matter. Any help is appreciated.

I managed to compile 1.2.13 (the enhanced version from
with only minor adjustments. To my surprise this kernel can replace
a 2.0.pre31 kernel on its target machine (full-blown ELF only system)
without loss of functionality :-) But it seems that it's even tighter
on memory on a 5 Meg machine than 2.0.x ...
If someone's interested, I'll provide a patch with my small changes.


    Uncle Ed's Rule of Thumb:  Never use your thumb for a rule.
    You'll either hit it with a hammer or get a splinter in it.