Bug 62575

Summary: rhconfig.h needs __module__bigmem added
Product: [Retired] Red Hat Linux Reporter: Matt Domsch <matt_domsch>
Component: kernelAssignee: Arjan van de Ven <arjanv>
Status: CLOSED CURRENTRELEASE QA Contact: Brian Brock <bbrock>
Severity: high Docs Contact:
Priority: high    
Version: 7.3CC: dale_kaisner, john_hull
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2002-04-09 12:32:24 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Matt Domsch 2002-04-02 17:35:45 UTC
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.

/usr/src/linux-2.4/include/linux/rhconfig.h

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)
#define __module__bigmem
#endif

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:

#if defined(__module__bigmem)
#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.

Comment 1 Arjan van de Ven 2002-04-02 17:42:16 UTC
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

Comment 2 Matt Domsch 2002-04-02 18:02:58 UTC
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 
should add
 || defined(__module__bigmem)
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.


Comment 3 Arjan van de Ven 2002-04-09 12:32:19 UTC
0.13 and later have it for sure