Description of Problem:
Kernel 2.4.18-0.12 and earlier linux/include/rhconfig.h never define
__module__bigmem, as it does __module__enterprise and others. This causes
third party modules to build improperly.
Add the following lines, otherwise the compiling will pick up the wrong
symbols for the BIGMEM kernel.
#if defined(__BOOT_KERNEL_BIGMEM) && ( __BOOT_KERNEL_BIGMEM ==1)
Note: The reason that you need to define the "__module__bigmem" is that
the "/usr/src/linux-2.4/include/linux/modules/ksyms.ver" is checking the
flag "__module__bigmem" for the kernel.
Search for the string "register_chrdev" and you will find the following lines:
#define __ver__register_chrdev _ver_str(515ed577)
#define register_chrdev _set_ver(register_chrdev)
If you don't have the __module__bigmem defined for the BIGMEM kernel, then
the compiling will pick the wrong symbols and the driver won't load.
Version-Release number of selected component (if applicable):
2.4.18-0.12 and earlier
This is considered a MUST-FIX for Hampton by Dell.
This is fixed; I thought it was fixed in 0.12 already
(but you need a recent initscripts to go with it though)
/me wonders idly if we missed to include a useful module
I installed kernel-source-2.4.18-0.12 just to make sure - rhconfig.h has no
references to bigmem at all. I also installed initscripts-6.60-1, which Bill
says is doing the right thing by *not* definig __module__smp. rhconfig.h
to its list for determining whether or not to add the smp_ decoration to
_ver_str(), and should define __module__bigmem in the i686 section above.
0.13 and later have it for sure