Hi all.
Sorry. Wasn't sure if this short of thing should be raised on bugtracker
or not... Basically I downloaded 2.6.7-mm4 because I found a kernel bug
that was apparently fixed in -mm2 (& hopefully later) where the acpi
button events get 'lost' after a suspend-resume.
It appears that the -=mm4 patch introduces a bug however where it won't
compile unless local apic is defined due to the following
LD arch/i386/lib/built-in.o
CC arch/i386/lib/bitops.o
AS arch/i386/lib/checksum.o
CC arch/i386/lib/dec_and_lock.o
CC arch/i386/lib/delay.o
AS arch/i386/lib/getuser.o
CC arch/i386/lib/memcpy.o
CC arch/i386/lib/strstr.o
CC arch/i386/lib/usercopy.o
AR arch/i386/lib/lib.a
GEN .version
CHK include/linux/compile.h
UPD include/linux/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
drivers/built-in.o(.init.text+0x90ed): In function `do_wrlvtpc':
: undefined reference to `apic_write'
drivers/built-in.o(.init.text+0x90fd): In function `do_wrlvtpc':
: undefined reference to `apic_write'
drivers/built-in.o(.init.text+0x910d): In function `do_wrlvtpc':
: undefined reference to `apic_write'
drivers/built-in.o(.init.text+0x911d): In function `do_wrlvtpc':
: undefined reference to `apic_write'
drivers/built-in.o(.init.text+0x912d): In function `do_wrlvtpc':
: undefined reference to `apic_write'
drivers/built-in.o(.init.text+0x913d): more undefined references to
`apic_write' follow
make: *** [.tmp_vmlinux1] Error 1
ballbreaker:/archive/linux/kernel/linux-2.6.7#
apic_write seems to be defined in apic.h & ifdef'ed out if local apic is
not selected, however there are several calls to it that aren't ifdef'ed
out...
Turning on local apic means the kernel compiles... But in the past this
introduces a power down bug on the thinkpad where a shutdown won't power
off the laptop without a manual off using the power button (Sorry.
Haven't had a chance to test whether this would be fixed in -mm4 or not
yet).
regards
Hamish.
Hamie <[email protected]> wrote:
>
> drivers/built-in.o(.init.text+0x90ed): In function `do_wrlvtpc':
> : undefined reference to `apic_write'
You'll need to disable CONFIG_PERFCTR or apply the below patch.
--- linux-2.6.7-mm4/drivers/perfctr/x86_tests.c.~1~ 2004-06-29 12:43:27.000000000 +0200
+++ linux-2.6.7-mm4/drivers/perfctr/x86_tests.c 2004-06-29 13:26:26.000000000 +0200
@@ -44,6 +44,11 @@
#define CR4MOV "movl"
#endif
+#ifndef PERFCTR_INTERRUPT_SUPPORT
+#undef apic_write
+#define apic_write(reg,vector) do{}while(0)
+#endif
+
static void __init do_rdpmc(unsigned pmc, unsigned unused2)
{
unsigned i;
Andrew Morton wrote:
>Hamie <[email protected]> wrote:
>
>
>>drivers/built-in.o(.init.text+0x90ed): In function `do_wrlvtpc':
>>: undefined reference to `apic_write'
>>
>>
>
>You'll need to disable CONFIG_PERFCTR or apply the below patch.
>
>
>
>
>--- linux-2.6.7-mm4/drivers/perfctr/x86_tests.c.~1~ 2004-06-29 12:43:27.000000000 +0200
>+++ linux-2.6.7-mm4/drivers/perfctr/x86_tests.c 2004-06-29 13:26:26.000000000 +0200
>@@ -44,6 +44,11 @@
> #define CR4MOV "movl"
> #endif
>
>+#ifndef PERFCTR_INTERRUPT_SUPPORT
>+#undef apic_write
>+#define apic_write(reg,vector) do{}while(0)
>+#endif
>+
> static void __init do_rdpmc(unsigned pmc, unsigned unused2)
> {
> unsigned i;
>
>
Ah right... I didn't trace it back to what was calling it sorry, or else
I might (maybe... honest) have realised that.
TIA
Hamish.
On Tue, 29 Jun 2004 22:19:12 +0100, Hamie <[email protected]> wrote:
>drivers/built-in.o(.init.text+0x90ed): In function `do_wrlvtpc':
>: undefined reference to `apic_write'
Disable CONFIG_PERFCTR_INIT_TESTS or apply part 1/6
of the perfctr updates I just posted.