Click to See Complete Forum and Search --> : Kernel compilation ... again


bdg1983
11-14-2001, 06:45 AM
I`ve gotten the new 2.4.14 kernel for my slackware 8.
I have done this a thousand way now, and I think I get the first part ok :
make mrproper
make xconfig
make dep
make bzImage ... where the problem comes.
Everything seems to go fine until I get close to the finish line. I get this message a couple of times :
/usr/src/linux-2.4.14/include/asm/checksum.h:72:30: warning: multi-line string literals are deprecated

Then this happens :
drivers/block/block.o: In function `lo_send':
drivers/block/block.o(.text+0xaeaf): undefined reference to `deactivate_page'
drivers/block/block.o(.text+0xaf3f): undefined reference to `deactivate_page'
make: *** [vmlinux] Error 1

And .. I don`t get a bzImage :mad:

bdg1983
11-14-2001, 07:09 AM
There's something in the block device section that it doesn't like. I do know that loopback is broken in the 2.4.14 kernel. If you don't really need loop, try disabling it in make xconfig and try again.

#
# Block devices
#
CONFIG_BLK_DEV_FD=y
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_LOOP is not set *** HERE ***
CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y

I don't know if loop is causing your problem since my kernel compiles with it selected as a module. The loop module is built, but it will not load.

bdg1983
11-14-2001, 12:44 PM
There was something weird with the 2.4.14 kernel, that`s for sure .. just installed 2.4.13 and it worked .. almost great.
I need loopback, but thanks for your help anyways.

bdg1983
11-15-2001, 07:13 AM
You could patch the 2.4.14 kernel with the loop fix.

diff -ru linux/drivers/block/loop.c linux-patched/drivers/block/loop.c
--- linux/drivers/block/loop.c Tue Nov 6 10:41:15 2001
+++ linux-patched/drivers/block/loop.c Tue Nov 6 10:43:51 2001
@@ -218,14 +218,12 @@
index++;
pos += size;
UnlockPage(page);
- deactivate_page(page);
page_cache_release(page);
}
return 0;

unlock:
UnlockPage(page);
- deactivate_page(page);
page_cache_release(page);
fail:
return -1;

Put that in a file and then

cd /usr/src/linux

patch -p1 < /path/to/loop/patch/name_of_patch

And then compile the 2.4.14 kernel.