I can't use svn protocol, because my firewall permits only the standard ports for ftp, http and https, etc. So, I accessed the filo-0.5 URI:
http://openbios.org/viewvc/trunk/filo-0.5/?root=FILO
Next, I clicked the "Download GNU tarball" link with URI:
http://openbios.org/viewvc/trunk/filo-0.5.tar.gz?root=FILO&view=tar
The file downloaded is trunk.tar.gz which extracts fine:
$ tar xvzf trunk.tar.gz
Target directory is trunk/filo-0.5 as expected.
Compilation issues:
Make is run once to create the default Config file and define the include/arch symlink. A second make invocation should build the file.elf target, but fatal compilation errors prevent this.
I'm using gcc v4.1.2 and make v3.81 (Knoppix 5.1.1). Is my toolchain too old?
Here is a log of the two make invocations mentioned above. The Config is not changed from the default generated, but will need to be changed to generate the desired target.
------
The errors that occur using the default Config generated from i386/defconfig without making any changes to Config or the filo-0.5 source files:
$ make rm -f include/arch ln -s ../i386/include include/arch test -f Config && mv Config Config.bak || true cat defconfig i386/defconfig >>Config *** Default Config file is created *** *** Now you examine this file and edit it as you like *** $ make Makefile:64: warning: overriding commands for target `clean' makerules:46: warning: ignoring old commands for target `clean' echo '#define PROGRAM_NAME "FILO"' > main/version.h echo '#define PROGRAM_VERSION "0.5.5 (fuchsk@Knoppix) Mon Jun 9 12:42:45 EDT 2008"' >> main/version.h make -C main make[1]: Entering directory `/mnt/s2u1/atom/cb/trunk/filo-0.5/main' /bin/echo -e '/* GENERATED FILE, DO NOT EDIT */\n' >../config.h sed -e 's/#.*//' -e '/=/!d' -e 's/([^[:space:]]*)[[:space:]]*=[[:space:]]*(.*).*/#define \1 \2/' -e 's/^#define ([^ ]*) 0$/#undef \1/' ../Config >>../config.h gcc -m32 -Wall -Os -fomit-frame-pointer -fno-common -ffreestanding -fno-strict-aliasing -Wno-unused -nostdinc -imacros ../config.h -I../include -I/usr/lib/gcc/i486-linux-gnu/4.1.2/include -MD -c filo.c -o filo.o gcc -m32 -Wall -Os -fomit-frame-pointer -fno-common -ffreestanding -fno-strict-aliasing -Wno-unused -nostdinc -imacros ../config.h -I../include -I/usr/lib/gcc/i486-linux-gnu/4.1.2/include -MD -c linuxbios.c -o linuxbios.o gcc -m32 -Wall -Os -fomit-frame-pointer -fno-common -ffreestanding -fno-strict-aliasing -Wno-unused -nostdinc -imacros ../config.h -I../include -I/usr/lib/gcc/i486-linux-gnu/4.1.2/include -MD -c malloc.c -o malloc.o malloc.c: In function 'allot2': malloc.c:206: warning: assignment makes integer from pointer without a cast gcc -m32 -Wall -Os -fomit-frame-pointer -fno-common -ffreestanding -fno-strict-aliasing -Wno-unused -nostdinc -imacros ../config.h -I../include -I/usr/lib/gcc/i486-linux-gnu/4.1.2/include -MD -c printf.c -o printf.o printf.c: In function 'vtxprintf': printf.c:197: error: 'se' undeclared (first use in this function) printf.c:197: error: (Each undeclared identifier is reported only once printf.c:197: error: for each function it appears in.) printf.c:197: error: 'value' undeclared (first use in this function) printf.c:198: error: 'cp' undeclared (first use in this function) printf.c:199: warning: no return statement in function returning non-void printf.c: At top level: printf.c:200: error: expected identifier or '(' before 'if' printf.c:202: error: expected identifier or '(' before 'return' printf.c:203: error: expected identifier or '(' before '}' token printf.c:206: error: redefinition of 'simple_strtoll' printf.c:60: error: previous definition of 'simple_strtoll' was here printf.c: In function 'simple_strtoll': printf.c:209: error: expected ')' before 'flags' printf.c:214: error: too few arguments to function 'simple_strtoull' printf.c:214: error: expected ';' before '}' token printf.c: At top level: printf.c:217: warning: data definition has no type or storage class printf.c:217: warning: type defaults to 'int' in declaration of 'field_width' printf.c:218: error: expected identifier or '(' before 'if' printf.c:220: error: expected identifier or '(' before 'else' printf.c:231: warning: data definition has no type or storage class printf.c:231: warning: type defaults to 'int' in declaration of 'precision' printf.c:232: error: expected identifier or '(' before 'if' printf.c:246: warning: data definition has no type or storage class printf.c:246: warning: type defaults to 'int' in declaration of 'qualifier' printf.c:247: error: expected identifier or '(' before 'if' printf.c:253: warning: data definition has no type or storage class printf.c:253: warning: type defaults to 'int' in declaration of 'base' printf.c:255: error: expected identifier or '(' before 'switch' printf.c:331: error: expected identifier or '(' before 'if' printf.c:333: error: expected identifier or '(' before 'else' printf.c:335: error: expected identifier or '(' before 'else' printf.c:339: error: expected identifier or '(' before 'else' printf.c:341: error: expected identifier or '(' before 'else' printf.c:343: error: expected '=', ',', ';', 'asm' or '__attribute__' before '+=' token printf.c:344: error: expected identifier or '(' before '}' token printf.c:345: error: expected identifier or '(' before 'return' printf.c:346: error: expected identifier or '(' before '}' token make[1]: *** [printf.o] Error 1 make[1]: Leaving directory `/mnt/s2u1/atom/cb/trunk/filo-0.5/main' make: *** [main/builtin.o] Error 2
Thanks,
Ken Fuchs