Martin J. Bligh wrote: >>>>Compiling misc.c with -O0 gives a better error message: >>>> >>>><-- snip --> >>>> >>>>... >>>>ld -m elf_i386 -Ttext 0x100000 -e startup_32 -o bvmlinux head.o misc.o >>>>piggy.o >>>>misc.o: In function `outb_quad': >>>>misc.o(.text+0x289c): undefined reference to `__io_virt_debug' >>>>make[2]: *** [bvmlinux] Error 1 >>>>make[2]: Leaving directory >>>>`/home/bunk/linux/kernel-2.5/linux-2.5.14-modular/arch/i386/boot/compressed' >>> >>>Seems like you're not linking in lib/iodebug.c for some reason. >>> >>>outb_quad calls readb, which calls __io_virt, which calls __io_virt_debug, >>>which is defined in iodebug.c >> >>It's in the boot decompression code, before any of that stuff is >>available. I'm working on a patch. > > > Is this arch/i386/boot/compressed/misc.c ? > I can't see how it would be doing outb_quad, and even if it was, it > would be totally pointless, as xquad_portio isn't set yet .... > > M. > This patch fixes the compile problem, but I'm not quite convinced it's the best solution. The decompressor is a completely seperate environment from the kernel, so including kernel headers continues to invite problems like this in the future. -- Brian Gerst