OK, I got a little farther in my attempt. It turns out that "make clean" helps a little more than it should. I was hoping that with Andrew's success I could at least get the build to complete. Well, it didn't quite work that way. Any suggestions would be appreciated. It seems as though several people have been successful, so I feel like success is close.
Plus I have a spare PC which is just beggin' to be booted with Eros. :-)
So here are some questions :
make update : does it ? Does it really update the source tree completely, or am I missing bits and pieces which need to be done individually.
libbfd and libiberty, which are currently causing me problems, look like they are built. They just might not be in the right place ?? Of course trying to figure out what the right place might be is not nearly as easy as it sounds...
Anyway, here's the results of my latest attempt for those that might have all sorts of spare time to help me out :
Start from the VERY beginning :
rm -rf eros
for i in *.tgz ; do tar xvzf $i ; done cd eros/src
Try a make clean, just in case there is cruft which might cause problems :
make -k clean
make: Leaving directory `/usr/local/src/eros/eros/src/doc/www' make: Entering directory `/usr/local/src/eros/eros/src/doc/dissertation' make: *** No rule to make target `do-clean'. make: Leaving directory `/usr/local/src/eros/eros/src/doc/dissertation'*** RECURSIVE BUILD STOPS ***
make: *** [recursive-clean] Error 1 make: Target `do-clean' not remade because of errors. make: Leaving directory `/usr/local/src/eros/eros/src/doc'*** RECURSIVE BUILD STOPS ***
make: *** [recursive-clean] Error 1 make: Target `do-clean' not remade because of errors. make: Leaving directory `/usr/local/src/eros/eros/src'make: *** [clean] Error 2
Assume that make clean, made everything clean enough and try
/bin/sh: /usr/local/src/eros/eros/xenv/bin/i386-unknown-linux-gcc: No such file or directory
OK. The cross tools aren't built.
Completes successfully. Go back and try the build again.
Fails again for something which looks really suspicious, i.e. if kern_main doesn't build then basically nobody can build so maybe there's still something wrong with the tree.
/usr/local/src/eros/eros/xenv/bin/i386-unknown-linux-g++ -fdefault-inline -fno-implicit-templates -g -O2 -m486 -malign-functions=4 -fno-rtti -fno-exceptions -I../../include -I../../../../../../base/sys -I. -D__KERNEL__ -DTRACE= -DFAST_IPC_ARG_VALIDATE -DCONFIG_ISA=1 -DCONFIG_PCI=1 -DCONFIG_BASE=1 -DINET=1 -DKERN_TIMING_STATS=1 -DALLOW_USER_RDTSC=1 -DSCSI=1 -DDDB=1 -DFAST_IPC_STATS=1 -DKERN_STATS=1 -DSMALL_SPACES=1 -DKERN_PROFILE=1 -DOB_MOD_CHECK=1 -DKEYREGS_IN_CONTEXT=1 -DCPU_I386=1 -DCPU_I486=1 -DCPU_PENTIUM=1 -DCPU_PPRO=1 -DARCH_X86=1 -DMACHINE_PC=1 -Wall -Winline -Werror -Wno-format -c ../../../../../../base/sys/kernel/kern_main.cxx
../../../../../../base/sys/eros/machine/SaveArea.h: In function `bool sa_IsProcess(const struct fixregs_t *)': In file included from ../../../../../../base/sys/kerninc/Process.hxx:36, from ../../../../../../base/sys/kerninc/Thread.hxx:33, from ../../../../../../base/sys/kernel/kern_main.cxx:41: ../../../../../../base/sys/eros/machine/SaveArea.h:29: `struct fixregs_t' has no member named `CS'
again. Fails at the same place as last time, but again maybe it's "clean enough".
g++ -fdefault-inline -fno-implicit-templates -g -I../ -I/usr/local/src/eros/eros/cross/include -I/usr/local/src/eros/eros/xenv/include -Wall -Winline -Werror -Wno-format -c ExecImageElf.cxx ExecImageElf.cxx: In method `bool ExecImage::InitElf()': ExecImageElf.cxx:75: using typedef-name `elfhdr' after `struct' make: *** [ExecImageElf.o] Error 1
Wow ! It got past the previous point ! This makes me kind of nervous. Is the build process swapping header files around ? Is there some sort of ugly order dependency on the build ? Well, this time we know the correction - from Andrew's e-mail (Any chance it can be put in the cvs tree ?)
Apply the (very minor) fix and try again.
make: *** No rule to make target `-lbfd', needed by `mkimage'. make: *** No rule to make target `-liberty', needed by `mkimage'.
Fails with the same error.