Bug 109540

Summary: Can't compile UP kernel - undefined symbol
Product: [Fedora] Fedora Reporter: Robert Hancock <hancockrwd>
Component: kernelAssignee: Arjan van de Ven <arjanv>
Status: CLOSED DUPLICATE QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: medium    
Version: 1CC: jwboyer
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-02-21 18:59:53 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 Robert Hancock 2003-11-09 05:26:46 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.1)
Gecko/20031030

Description of problem:
I was not able to compile a custom uniprocessor kernel using the
normal process:

make mrproper
make clean
make xconfig -> then load in configs/kernel-2.4.22-i686.config
make dep
make bzImage

During the compile, there is a warning on sched.c about implicit
declaration of active_load_balance, and the final link process fails,
saying that active_load_balance is an undefined symbol.



Version-Release number of selected component (if applicable):
kernel-source-2.4.22-1.2115.nptl

How reproducible:
Always

Steps to Reproduce:
1. Attempt to compile UP kernel as described above. (Maybe only on P4
machine)?
    

Actual Results:  Compile fails.

Expected Results:  Compile succeeds.

Additional info:

The problem appears to be in the configuration process - the
CONFIG_SHARE_RUNQUEUE option ends up getting set to Y somewhere, even
though CONFIG_SMP is not set. active_load_balance is defined in
sched.c as an empty function if CONFIG_SHARE_RUNQUEUE is not set, and
is defined with a real body if CONFIG_SMP and CONFIG_SHARE_RUNQUEUE
are both set, but if CONFIG_SMP is not set and CONFIG_SHARE_RUNQUEUE
is set, it is never defined.

This is on a Pentium 4 system - maybe it only does this if something
detects that the CPU might support HT (this one doesn't)?

Anyway, the configuration process should make sure
CONFIG_SHARE_RUNQUEUE is not set for a non-SMP kernel.

After manually disabling CONFIG_SHARE_RUNQUEUE in the .config file,
the kernel compiles properly.

Comment 1 Josh Boyer 2003-11-09 19:36:03 UTC
odd, but if you do this in the top level directory, it compiles fine:

make mrproper
cp configs/kernel-2.4.22-i686.config .config
make oldconfig
make oldconfig
make dep
make bzImage

Note the two make oldconfig commands...  haven't figured out why
exactly this works yet.

Comment 2 Dave Jones 2003-11-10 18:03:26 UTC

*** This bug has been marked as a duplicate of 105978 ***

Comment 3 Red Hat Bugzilla 2006-02-21 18:59:53 UTC
Changed to 'CLOSED' state since 'RESOLVED' has been deprecated.