Bug 19059

Summary: Bad symbol table w/ SMP build. Won't boot.
Product: [Retired] Red Hat Linux Reporter: pdelaney
Component: kernelAssignee: Michael K. Johnson <johnsonm>
Status: CLOSED NOTABUG QA Contact: David Lawrence <dkl>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0CC: pdelaney
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2002-12-15 02:31:55 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 pdelaney 2000-10-13 16:21:00 UTC
Fresh install of Red Hat 7.0 to Dell SMP 686 system (scsi boot). Rebuilt 
kernel with SMP enabled. __SMP__ is defined on make of kernel and make of 
modules.  Make modules produces assembler messages:
Warning: Ignoring changed section attributes for .modinfo
On SMP reboot, standard kernel functions are reported, for example, as: 
Unresolved symbol: check_region_R522f4d72
preventing boot. UP boot is successful.

Dumped the symbol table for the compiled driver and compared it to the 
symbol tables generated by the UP and SMP modules built by Red Hat. The 
symbol table for kernel functions was the same as the UP build! That is:
Red Hat UP built:  check_region_R522f4d72
Red Hat SMP built: check_region_Rsmp522f4d72
My SMP build: check_region_R522f4d72

On my build, nm drivers/scsi/*.o | grep "Rsmp" indicates that all of the 
scsi drivers have UP symbol tables - which will prevent boot with a SMP 
kernel.

A fix or help would be appreciated.
Note: Problem 18753 may be related - as was having SMP problems.
Thanks, in advance.

Comment 1 Perry Harrington 2000-12-07 09:05:23 UTC
there is an additional directory in redhat kernel source releases called
'config'.  These are the .config files that the various release kernels are
built from.  Simply copy the appropriate one to .config in the parent directory
and do a 'make oldconfig'.  Proceed to do a standard kernel build after that. 
It would appear that the config file you are using is a UP default file.