compile fails without BLK_DEV_INITRD
Bug #193507 reported by
James Troup
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
Medium
|
Tim Gardner |
Bug Description
Binary package hint: linux-source-2.6.24
If you try to compile without BLK_DEV_INITRD, you get this:
LD .tmp_vmlinux1
init/built-in.o: In function `start_kernel':
(.init.text+0x8d7): undefined reference to `early_
make[1]: *** [.tmp_vmlinux1] Error 1
make[1]: Leaving directory `/home/
make: *** [debian/
To post a comment you must log in.
Hi James,
One workaround is to also disable CONFIG_ACPI which will allow the build to finish, just not sure if that's something you want disabled or not.
If you take a peek at the Makefile:
ogasawara@yoji:~$ head linux-2. 6.24/init/ Makefile
#
# Makefile for the linux kernel.
#
obj-y := main.o version.o mounts.o BLK_DEV_ INITRD) ,y) BLK_DEV_ INITRD) += initramfs.o
ifneq ($(CONFIG_
obj-y += noinitramfs.o
else
obj-$(CONFIG_
endif
You can see that since you've disabled BLK_DEV_INITRD, initramfs.o is not being built and thus "early_ populate_ rootfs" is not defined. As a hack to get the compile to finish, you can comment out the "early_ populate_ rootfs" call from linux-2. 6.24/init/ main.c with something like:
ogasawara@yoji:~$ diff -Naur ubuntu- hardy/init/ main.c linux-2. 6.24/init/ main.c hardy/init/ main.c 2007-12-09 15:11:22.000000000 -0800 6.24/init/ main.c 2008-02-19 21:47:33.000000000 -0800
--- ubuntu-
+++ linux-2.
@@ -644,7 +644,9 @@
check_bugs();
+#ifdef CONFIG_ BLK_DEV_ INITRD populate_ rootfs( ); /* For DSDT override from initramfs */ early_init( ); /* before LAPIC and SMP init */
early_
+#endif
acpi_
/* Do the rest non-__init'ed, we're now alive */
Since BLK_DEV_INITRD is enabled by default for the Ubuntu kernels, you're really building your own custom kernel by disabling this option. I'm not sure how much attention the kernel team will devote to this bug because of that fact but I'll ask them to take a peek anyways. Thanks.