On Tue, Mar 27, 2001 at 03:32:31PM -0800, Michael Durket wrote: > In trying to compile OpenAFS, I've run into an error compiling the > loadable kernel module. It appears to be due to the fact that > rc.sysinit does not setup a correct /boot/kernel.h at startup. > In particular, definitions for __BOOT_KERNEL_ENTERPRISE, > __BOOT_KERNEL_UP, and __BOOT_KERNEL_SMP are missing. Also, it > appears that /usr/include/linux/rhconfig.h does not match > /usr/src/linux-2.2.18/include/linux/rhconfig.h (in the latter, > the s390 defs in the former seem to be left out). > > > The code in rc.sysinit to correctly set these values is bypassed > by a test for the architecture being "s390". Removing this test > wouldn't help, because the next few statements that set KERNEL_TYPE, > etc won't work, because of the peculiar form of the uname string in the > s390 version (with vrdr, SMP instead of smp, etc). > > My questions are these: > > 1) Is there any reason that /usr/include/linux/rhconfig.h and > /usr/src/linux-2.2.18/include/linux/rhconfig.h should not > match exactly? (They do on the Intel version of RedHat 7.0 > except for one statement). > > Would making them match cause problems building the kernel > or other kernel modules? They should match. Are the symlinks in /usr/src/ setup correctly for you? > > 2) Does rc.sysinit need to be corrected to properly detect and > set __BOOT_KERNEL_ENTERPRISE, __BOOT_KERNEL_UP and __BOOT_KERNEL_SMP > or are these being properly set somewhere else? It looks like Those definitions are not used on S390 and normally no software should depend on them. > not setting __BOOT_KERNEL_SMP in particular could generate a > problem. On my system, the kernel's been built for SMP, but > if the __BOOT_KERNEL_SMP define is not set, perhaps modules > are being incorrectly generated for non-SMP operation? I am compiling all kernels as smp kernels. If that is really a major performance problem, we have to think about changing this. You should not use the SMP defined from rhconfig.h, but depend on real kernel defines to have real portable Linux-kernel code. :-) cu, Florian La Roche