From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20030225 Description of problem: When using CONFIG_MODVERSIONS=y make modules fails, because rhconfig.h is not #included. As a result, the macro _ver_str is not defined and all symbols (using loops_per_jiffy as example) get the form loops_per_jiffy_R_ver_str(ba497f13) in the preprocessed source, instead of the intended loops_per_jiffy_Rba497f13 I was able to fix this by adding #include <linux/rhconfig.h> at the top of include/linux/modversions.h #ifndef _LINUX_MODVERSIONS_H #define _LINUX_MODVERSIONS_H #include <linux/rhconfig.h> /* This was missing */ #include <linux/modsetver.h> #include <linux/modules/53c700.ver> ...etc Regards, Carlo Wood Version-Release number of selected component (if applicable): kernel-2.4.20-8 How reproducible: Always Steps to Reproduce: 1.See description 2. 3. Additional info:
I assume your steps are 1) make mrproper 2) copy configs/>whatever> .config 3) make oldconfig / make menuconfig / make xconfig 4) make bzImage 5) make modules
No, I did a 'make dep' and not the 'make mrproper'. I just tried: rpm -i kernel-source-2.4.20-8.i386.rpm cd /usr/src/linux-2.4.20-8 make mrproper cp ../linux-2.4.20-tcore-akpm-preempt/.config . make oldconfig (default (N) to all NEW questions) make dep make bzImage make modules and that doesn't reproduce the problem. Next I did: cd /usr/src mv linux-2.4.20-8 linux-2.4.20-8-mrproper rpm -e kernel-source rpm -i kernel-source-2.4.20-8.i386.rpm cd linux-2.4.20-8 cp ../linux-2.4.20-tcore-akpm-preempt/.config . make oldconfig make dep make clean make bzImage make modules and this reproduces the problem: make[2]: Entering directory `/usr/src/linux-2.4.20-8/drivers/block' gcc -D__KERNEL__ -I/usr/src/linux-2.4.20-8/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -falign-functions=4 -DMODULE -DMODVERSIONS -include /usr/src/linux-2.4.20-8/include/linux/modversions.h -nostdinc -iwithprefix include -DKBUILD_BASENAME=loop -DEXPORT_SYMTAB -c loop.c In file included from /usr/src/linux-2.4.20-8/include/linux/prefetch.h:13, from /usr/src/linux-2.4.20-8/include/linux/list.h:6, from /usr/src/linux-2.4.20-8/include/linux/module.h:12, from loop.c:62: /usr/src/linux-2.4.20-8/include/asm/processor.h:60: warning: parameter names (without types) in function declaration /usr/src/linux-2.4.20-8/include/asm/processor.h:60: field `loops_per_jiffy_R_ver_str' declared as a function I assumed that with a fresh rpm install a 'make mrproper' wasn't needed. I'd still call this a bug, you might want to find out why it happens before you simply decide that a 'make mrproper' is needed :)
The tree is set up for building 3rd party modules rather than for rebuilding without cleaning up. Some of this is a kernel build system weakness but thats fixed in 2.5 and backporting is infeasible