On Mon, Jul 21, 2003 at 10:32:55AM -0400, David Kesselring wrote: > I'm trying to build linux for Sead in 64 bit. I found that it would not > compile without the change at the end of this note. After this fix, I got > the following link error. Does anyone have an idea why? > mips64el-linux-ld --oformat elf32-tradlittlemips -G 0 -static -Ttext > 0x80100000 arch/mips64/kernel/head.o > arch/mips64/kernel/init_task.o init/main.o init/version.o init/do_mounts.o > \ > --start-group \ > arch/mips64/kernel/kernel.o arch/mips64/mm/mm.o kernel/kernel.o > mm/mm.o fs/fs.o ipc/ipc.o arch/mips/math-emu/fpu_emulator.o \ > drivers/char/char.o drivers/block/block.o drivers/misc/misc.o > drivers/net/net.o drivers/media/media.o \ > net/network.o \ > arch/mips64/lib/lib.a > /home/dkesselr/MIPS/linux-mips-cvs/2003Jul18/linux-build-mips64b/lib/lib.a > arch/mips/mips-boards/sead/sead.o > arch/mips/mips-boards/generic/mipsboards.o \ > --end-group \ > -o vmlinux > mips64el-linux-ld: warning: cannot find entry symbol __start; defaulting > to 0000000080100000 > mips64el-linux-ld: vmlinux: Not enough room for program headers (allocated > 3, need 4) It may not be obvious but this is ld's way of telling you it doesn't feel happy with the options and input files; in some case it could also be considered an insufficiency of ld ... In this particular case the bug is that the kernel configuration doesn't set CONFIG_BOOT_ELF32. I'm a bit surprised to see somebody's actually using a 64-bit kernel on a SEAD. Ralf