|Summary:||Module compilation for kernel-BOOT|
|Product:||[Retired] Red Hat Linux||Reporter:||Peter Bowen <pzbowen+rhbeta>|
|Component:||kernel||Assignee:||Arjan van de Ven <arjanv>|
|Status:||CLOSED NOTABUG||QA Contact:||Brock Organ <borgan>|
|Fixed In Version:||Doc Type:||Bug Fix|
|Doc Text:||Story Points:||---|
|Last Closed:||2001-09-27 19:26:39 UTC||Type:||---|
|oVirt Team:||---||RHEL 7.3 requirements from Atomic Host:|
Description Peter Bowen 2001-09-26 17:10:45 UTC
When building a module for the BOOT kernel, a depmod reports a number of unresolved symbols. I tried two different procedures to compile the module: Procedure 1: 1) Install kernel-BOOT and reboot in to it 2) Build the module as normal Procedure 2: 1) Boot into a normal kernel (i686 SMP in this case) 2) When building the module, add the following flags to the compile to override the default build options, as specified in /boot/kernel.h and rhconfig.h: -D__BOOT_KERNEL_UP=0 -D__BOOT_KERNEL_SMP=0 -D__BOOT_KERNEL_BOOT=1 -D__BOOT_KERNEL_BOOTSMP=0 -D__BOOT_KERNEL_ENTERPRISE=0 When using Procedure 2, I get this list of unresolved symbols from depmod: depmod: *** Unresolved symbols in /lib/modules/2.4.7-10BOOT/monte/kmonte.o depmod: rwsem_wake depmod: rwsem_down_read_failed In the past, using RH kernel RPMS for 2.2.x kernels, I haven't had a problem using procedure 2. But, using the 2.4.7-10 kernel RPMS, this doesn't seem to work. I also tried adding -D__MODULE_KERNEL_i386=1 -D__MODULE_KERNEL_i686=0, but this didn't help. I hope that I am simply doing something wrong, but I suspect that something in the Red Hat kernel header magic isn't working properly.
Comment 1 Peter Bowen 2001-09-27 19:26:35 UTC
This bug is caused by the fact that rhconfig.h only checks whether __MODULE_KERNEL_<arch> is defined, rather than also checking whether it is set to 1, as the checks for __BOOT_KERNEL_<type> do.
Comment 2 Peter Bowen 2001-09-28 15:24:36 UTC
Final notes: 1) it would be nice if the rhconfig.h was changed as noted above 2) the portable, proper defines are -D__BOOT_KERNEL_H_ -D__MODULE_KERNEL_i386=1 -D__BOOT_KERNEL_BOOT=1 if you add the __BOOT_KERNEL_H, then everything works correctly As there are appropriate defines, I am going to close this as NOTABUG