Sunday, September 21, 2008

first steps to compile linux 0.0.1 on ubuntu

wget http://draconux.free.fr/download/os-dev/linux0.01/linux-0.01-rm-3.x/linux-0.01-rm-3.3.tgz
tar -zxvf linux-0.01-rm-3.3.tgz
cd linux-0.01-rm-3.3/
make


seems that i miss the as86

sudo apt-get install bin86

make

This is on amd64 hardy box

as -o boot/head.o boot/head.s
gcc -Wall -O -fstrength-reduce -fomit-frame-pointer -fno-stack-protector \
-nostdinc -Iinclude -c -o init/main.o init/main.c
In file included from init/main.c:2:
include/unistd.h:256: warning: ‘struct dirent’ declared inside parameter list
include/unistd.h:256: warning: its scope is only this definition or declaration, which is probably not what you want
include/unistd.h:257: warning: ‘struct dirent64’ declared inside parameter list
In file included from init/main.c:3:
include/time.h:39: warning: conflicting types for built-in function ‘strftime’
/tmp/cceutlRx.s: Assembler messages:
/tmp/cceutlRx.s:315: Error: suffix or operands invalid for `push'
/tmp/cceutlRx.s:316: Error: suffix or operands invalid for `push'
/tmp/cceutlRx.s:317: Error: suffix or operands invalid for `pushf'
/tmp/cceutlRx.s:318: Error: suffix or operands invalid for `push'
/tmp/cceutlRx.s:319: Error: suffix or operands invalid for `push'
make: *** [init/main.o] Error 1

This is the error on athlon i386 box

make
(echo -n "SYSSIZE = (";ls -l tools/system | grep system \
| cut -c31-37 | tr '\012' ' '; echo "+ 15 ) / 16") > tmp.s
cat boot/boot.s >> tmp.s
as86 -0 -o boot/boot.o tmp.s
00001 0000002C SYSSIZE = (44 2008 + 15 ) / 16
***** right parentheses expected..............................^
00286 /*
00287 * This procedure turns off the floppy drive motor, so
00288 * that we enter the kernel in a known state, and
00289 * don't have to worry about it later.
00290 */
00001 0000002C SYSSIZE = (44 2008 + 15 ) / 16
***** right parentheses expected..............................^
00286 /*
00287 * This procedure turns off the floppy drive motor, so
00288 * that we enter the kernel in a known state, and
00289 * don't have to worry about it later.
00290 */

00001 errors
00000 warnings
make: *** [boot/boot] Error 1

UPDATE now is fixed with linux-0.01-rm-3.3.tgz
http://mapopa.blogspot.com/2008/09/linux-0.html

No comments: