I've just spent some time trying to build Fiasco from the CVS source.
(1) It would be nice if the build instructions and FAQ could be put with the source in CVS for the benefit of people who have to dial up.
(2) The build instructions don't tell you to build oskit10 first.
(3) I found I needed gcc-2.7.2.3 to build oskit10, and I had to make the following changes to make it compile:
- remove HAVE_CODE16 from oskit/config.h - remove have_code16 from Makeconf - remove in2000 from oskit/dev/linux_scsi.h
Which assember are other people using to build this? I'm using: GNU assembler version 2.9.5 (i386-linux) using BFD version 2.9.5.0.37
(4) I used egcs-1.1.1 to build l4, and had a series of makefile problems which might be very easy for someone else to fix. A complete log of the errors I got and how I worked around them is given below.
(5) The build instructions then tell you to cd to kernel/fiasco/src and make again, but this was already done by make in l4/.
(I'll tell you about my run-time problems when I try it ...)
Edmund
make[4]: *** No rule to make target `../../../../include/l4/log/l4log.h', needed by `.p6.c.d'. Stop. make[4]: Leaving directory `/home/ege/aferoj/l4-cvs/l4/pkg/l4util/examples/perf'
$ mkdir include/l4/log ; cp -i pkg/log/include/l4/log/l4log.h include/l4/log
ld -N -Ttext 0x430000 -o perf_p6 p6.o crt0.o -L../../../../lib -L../../../../../oskit/lib -L/home/drops/lib -llog -ll4util -lpci -lmc -lnames -loskit_support -lkern -lmc -lrmgr -llmm ld: cannot find -llog make[4]: *** [perf_p6] Error 1 make[4]: Leaving directory `/home/ege/aferoj/l4-cvs/l4/pkg/l4util/examples/perf'
$ ( cd lib ; ln -s ../pkg/log/lib/src/liblogserver.a ../pkg/log/lib/src/liblog.a .)
ld -N -Ttext 0x430000 -o perf_p6 p6.o crt0.o -L../../../../lib -L../../../../../oskit/lib -L/home/drops/lib -llog -ll4util -lpci -lmc -lnames -loskit_support -lkern -lmc -lrmgr -llmm ld: cannot find -lpci make[4]: *** [perf_p6] Error 1 make[4]: Leaving directory `/home/ege/aferoj/l4-cvs/l4/pkg/l4util/examples/perf'
$ touch pkg/l4util/examples/perf/perf_p6
# It finishes building now, but we don't have perf_p6, so:
$ rm pkg/l4util/examples/perf/perf_p6
ld -N -Ttext 0x430000 -o perf_p6 p6.o crt0.o -L../../../../lib -L../../../../../oskit/lib -L/home/drops/lib -llog -ll4util -lpci -lmc -lnames -loskit_support -lkern -lmc -lrmgr -llmm ld: cannot find -lpci make[4]: *** [perf_p6] Error 1 make[4]: Leaving directory `/home/ege/aferoj/l4-cvs/l4/pkg/l4util/examples/perf'
# cd to that directory and do the link without -lpci # now everything is built, I think
(2) The build instructions don't tell you to build oskit10 first.
Really, I wish some FAQ notices it!
(3) I found I needed gcc-2.7.2.3 to build oskit10, and I had to make the following changes to make it compile:
- remove HAVE_CODE16 from oskit/config.h
- remove have_code16 from Makeconf
- remove in2000 from oskit/dev/linux_scsi.h
This modification is after running configure script?
Which assember are other people using to build this? I'm using: GNU assembler version 2.9.5 (i386-linux) using BFD version 2.9.5.0.37
I suppose, some 16bit assembler code in oskit10 (and oskit) is written in a syntax which is older than binutils-2.9.5 expects. I'm using binutils-2.9.1.0.25.
However, the latest version of OSkit (of Utah Univ.) seems to prefer binutils-2.9.5, rather to binutils-2.9.1.
The version of gcc to compile oskit10 (and oskit) should be compiled by gcc-2.7.2.x, I think. The OSkit web page tells as:
Note: OSKit releases and snapshots prior to Snapshot 19991124 cannot be built with gcc-2.95 or egcs 1.x, but require gcc 2.7.x. See the README.
On the other hand, the C++ sources for Fiasco kernel seem to prefer egcs (/or some newer gcc), rather to gcc-2.7.2.x. Taking a glance on Makefile, it seems to be expected: gcc - gcc-2.7.2.x egcc - egcs aslike a bit old Debian GNU/Linux (hamm /or slink?). In recent Linux distributions, /usr/bin/gcc is egcs-1.1.2 - gcc-2.7.2.3 is not installed by default. Any patches to check binutils/gcc versions is expected?
suzuki
I wrote:
(4) I used egcs-1.1.1 to build l4, and had a series of makefile problems which might be very easy for someone else to fix. A complete log of the errors I got and how I worked around them is given below.
In fact I was using egcs-1.1.1 as "gcc" and gcc-2.95.2 as "egcc". But I also tried it with gcc-2.7.2.3 as "gcc". I had no compilation problems in either case, but plenty of Makefile problems.
(5) The build instructions then tell you to cd to kernel/fiasco/src and make again, but this was already done by make in l4/.
But I couldn't build the "hello" server due to Makefile problems. (I find the trouble with other people's Makefiles is that I can't repair them because I can't see how they are supposed to work. I tried building "hello" by hand, but I couldn't locate the appropriate libraries.)
(I'll tell you about my run-time problems when I try it ...)
And here's what happened when I tried to run linux22.
On my 486 machine, it got quite a long way towards booting:
Partition check: hda:root: rcvd 4bf5c8, 4bf5c8, src: a.0 unknown request from a.0 root: rcvd 4bf5c8, 4bf5c8, src: a.0 unknown request from a.0 root: rcvd 4bf5c8, 4bf5c8, src: a.0 unknown re hda1 hda2 hda3 VFS: Cannot open root device 08:05
On my 686 (Cyrix) machine it didn't get very far:
RMGR: running on L4/Pentium space.cc:182: failed assertion `size === PAGE_SIZE'
Do either of these problems mean anything to anyone?
I think I managed to run L4-Linux on both machines last year. Definitely on the 484 machine: I still have some binaries that work.
I'm still using the same menu.lst and rmgr.cfg.linux as last year. Has there been a change there I should know about?
Edmund
l4-hackers@os.inf.tu-dresden.de