The problem is, the loader.o file from BareBones cannot be in a lib -- if it is, I get a linker warning and a 0-byte file. Here's what I'm doing (libArchitecture.a contains video.o, libExecutive.a contains main.o, and libBoot.a contains loader.o):
Code: Select all
21: Bruce_orion$ /usr/cross/bin/i586-elf-ld -L./ -lBoot -lExecutive -lArchitecture -T ../Build/precurnl.ld -o test
/usr/cross/bin/i586-elf-ld: warning: cannot find entry symbol _loader; not setting start address
Any ideas...? One thing I noticed is that if I put -lArchitecture before -lExecutive (and loader.o instead of -lBoot), I get linker errors because of the one-pass manner in which ld searches archives. So, I figured putting -lBoot first would solve it, but no dice. ???
I've tried this with both Cygwin and Linux (Mandrake 9.2), using a cross-compiler I built on each (from the OSFAQ, of course ) and the same problem happens on both (which I would expect).