Converted to ELF, cannot compile a kernel ELF or a.out....

Michael Brennen (mbrennen@fni.com)
Sat, 2 Sep 1995 09:01:36 -0500 (CDT)


Very sorry to have to post this, but I haven't been able to figure this
out. I just converted to ELF yesterday; that is operational, though the
conversion notes are very rough (move_to_elf). I can successfully
compile standalone utilities as either elf or a.out (using
"-b i486-linuxaout" as indicated in the move_to_elf notes.

However, I cannot compile a kernel successfully. I am presently running a
stable 1.2.13 a.out kernel. Trying to compile 1.3.21 as either elf or
a.out fails.

The logs posted below the sig are configured to NOT compile the kernel as
ELF from "make config", then "make clean", then "make zImage"; these errors
are at the end of the "make zImage" run. The kernel is configured for
module support also.

I tried adding "-b i486-linuxaout" to the Makefile to make the a.out
kernel, but that did not work either.

I figure there is a library reference confused somewhere, but I don' know
where. The move_to_elf notes speak of a kernel patch to compile the
kernel as ELF, but I don't know what that is referring to.

Any help is appreciated, including things I may have blindly overlooked or
not read.

Michael
---------------------------------------------------------------------
Michael Brennen mbrennen@fni.com
FishNet, Inc. http://www.fni.com/
P.O. Box 940451 (214) 783-2553 (vox/fax)
Plano, TX 75074-0451 finger me for PGP public key

*******************************************************************
make[1]: Leaving directory `/usr/src/linux-1.3.21/arch/i386/lib'
ld -qmagic -Ttext 0xfffe0 arch/i386/kernel/head.o init/main.o
init/version.o \
arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o
mm/mm.o fs/fs.o ipc/ipc.o net/network.a \
fs/filesystems.a \
drivers/block/block.a drivers/char/char.a drivers/net/net.a
drivers/scsi/scsi.a \
/usr/src/linux-1.3.21/arch/i386/lib/lib.a
/usr/src/linux-1.3.21/lib/lib.a /usr/src/linux-1.3.21/arch/i386/lib/lib.a
-o vmlinux
ld: warning: cannot find entry symbol _start; defaulting to 000fffe0
nm vmlinux | grep -v '\(compiled\)\|\(\.o$\)\|\( a \)' | sort > System.map
make[1]: Entering directory `/usr/src/linux-1.3.21/arch/i386/boot'
make[2]: Entering directory `/usr/src/linux-1.3.21/arch/i386/boot/compressed'
./xtract /usr/src/linux-1.3.21/vmlinux | gzip -9 | ./piggyback > piggy.o
Non-GCC header of 'system'
Compressed size 20.
ld -qmagic -Ttext 0xfe0 -o vmlinux head.o inflate.o unzip.o misc.o piggy.o
ld: warning: cannot find entry symbol _start; defaulting to 00000fe0
misc.o(.text+0x66): undefined reference to `input_data'
misc.o(.text+0x76): undefined reference to `input_data'
misc.o(.text+0x2bc): undefined reference to `input_len'
misc.o(.text+0x2ed): undefined reference to `input_data'
make[2]: *** [vmlinux] Error 1
make[2]: Leaving directory `/usr/src/linux-1.3.21/arch/i386/boot/compressed'
make[1]: *** [compressed/vmlinux] Error 2
make[1]: Leaving directory `/usr/src/linux-1.3.21/arch/i386/boot'
make: *** [zImage] Error 2
root:/usr/src/linux ->