2000-11-11 21:41:08

by reiser.angus

[permalink] [raw]
Subject: linux-2.4.0-test11-pre2 compilation error: undefined reference to `bust_spinlocks'

cannot make a success compilation of 2.4.0-test11pre2 with the same
.config than for a successfull 2.4.0-test10 compilation.
Same problem when apply patch-2.4.0test11pre2-ac1 from alan cox

arch/i386/mm/mm.o: In function `do_page_fault':
arch/i386/mm/mm.o(.text+0x821): undefined reference to `bust_spinlocks'
make: *** [vmlinux] Erreur 1

bash-2.04$

use egcs 1.1.2

I can provide .config i did not put it for size reasons.


2000-11-11 21:51:48

by Tigran Aivazian

[permalink] [raw]
Subject: Re: linux-2.4.0-test11-pre2 compilation error: undefined reference to `bust_spinlocks'

On Sat, 11 Nov 2000, reiser.angus wrote:

> cannot make a success compilation of 2.4.0-test11pre2 with the same
> .config than for a successfull 2.4.0-test10 compilation.
> Same problem when apply patch-2.4.0test11pre2-ac1 from alan cox
>
> arch/i386/mm/mm.o: In function `do_page_fault':
> arch/i386/mm/mm.o(.text+0x821): undefined reference to `bust_spinlocks'
> make: *** [vmlinux] Erreur 1
>
> bash-2.04$
>
> use egcs 1.1.2

This has been introduced and fixed by Andrew Morton ages ago -- here his
email and patch with the fix:

>From [email protected] Fri Nov 10 09:11:36 2000
Date: Fri, 10 Nov 2000 05:18:09 +0000
From: Andrew Morton <[email protected]>
To: John Kacur <[email protected]>, Linus Torvalds <[email protected]>
Cc: [email protected]
Subject: [patch] Re: test11-pre2 compile error undefined reference to
`bust_spinlocks'

John Kacur wrote:
>
> When attempting to compile test11-pre2, I get the following compile
> error.
>
> arch/i386/mm/mm.o: In function `do_page_fault':
> arch/i386/mm/mm.o(.text+0x781): undefined reference to `bust_spinlocks'
> make: *** [vmlinux] Error 1

It was inside an ifdef. Apologies.

This patch against test11-pre2 moves it to fault.c.


--- linux-2.4.0-test11-pre2/arch/i386/kernel/traps.c Fri Nov 10 15:59:15 2000
+++ linux/arch/i386/kernel/traps.c Fri Nov 10 15:52:40 2000
@@ -63,6 +63,7 @@
struct desc_struct idt_table[256] __attribute__((__section__(".data.idt"))) = { {0, 0}, };

extern int console_loglevel;
+extern void bust_spinlocks(void);

static inline void console_silent(void)
{
@@ -394,19 +395,7 @@

__setup("nmi_watchdog=", setup_nmi_watchdog);

-extern spinlock_t console_lock, timerlist_lock;
static spinlock_t nmi_print_lock = SPIN_LOCK_UNLOCKED;
-
-/*
- * Unlock any spinlocks which will prevent us from getting the
- * message out (timerlist_lock is aquired through the
- * console unblank code)
- */
-void bust_spinlocks(void)
-{
- spin_lock_init(&console_lock);
- spin_lock_init(&timerlist_lock);
-}

inline void nmi_watchdog_tick(struct pt_regs * regs)
{
--- linux-2.4.0-test11-pre2/arch/i386/mm/fault.c Fri Nov 10 15:59:15 2000
+++ linux/arch/i386/mm/fault.c Fri Nov 10 16:02:03 2000
@@ -24,7 +24,6 @@
#include <asm/hardirq.h>

extern void die(const char *,struct pt_regs *,long);
-extern void bust_spinlocks(void);

/*
* Ugly, ugly, but the goto's result in better assembly..
@@ -76,6 +75,19 @@

bad_area:
return 0;
+}
+
+extern spinlock_t console_lock, timerlist_lock;
+
+/*
+ * Unlock any spinlocks which will prevent us from getting the
+ * message out (timerlist_lock is aquired through the
+ * console unblank code)
+ */
+void bust_spinlocks(void)
+{
+ spin_lock_init(&console_lock);
+ spin_lock_init(&timerlist_lock);
}

asmlinkage void do_invalid_op(struct pt_regs *, unsigned long);

2000-11-11 21:52:48

by Chmouel Boudjnah

[permalink] [raw]
Subject: Re: linux-2.4.0-test11-pre2 compilation error: undefined reference to `bust_spinlocks'

"reiser.angus" <[email protected]> writes:

> cannot make a success compilation of 2.4.0-test11pre2 with the same
> .config than for a successfull 2.4.0-test10 compilation.
> Same problem when apply patch-2.4.0test11pre2-ac1 from alan cox
>
> arch/i386/mm/mm.o: In function `do_page_fault':
> arch/i386/mm/mm.o(.text+0x821): undefined reference to `bust_spinlocks'
> make: *** [vmlinux] Erreur 1

apply this patch (if you look in the archive of lkml you'll see it was
posted a day ago by Keith Owens :

Index: 0-test11-pre2.1/arch/i386/kernel/traps.c
--- 0-test11-pre2.1/arch/i386/kernel/traps.c Fri, 10 Nov 2000 13:10:37 +1100 kaos (linux-2.4/A/c/1_traps.c 1.1.2.2.1.1.2.1.2.3.1.2.3.1.1.2 644)
+++ 0-test11-pre2.1(w)/arch/i386/kernel/traps.c Fri, 10 Nov 2000 16:06:48 +1100 kaos (linux-2.4/A/c/1_traps.c 1.1.2.2.1.1.2.1.2.3.1.2.3.1.1.2 644)
@@ -382,6 +382,18 @@ static void unknown_nmi_error(unsigned c
printk("Do you have a strange power saving mode enabled?\n");
}

+extern spinlock_t console_lock, timerlist_lock;
+/*
+ * Unlock any spinlocks which will prevent us from getting the
+ * message out (timerlist_lock is acquired through the
+ * console unblank code)
+ */
+void bust_spinlocks(void)
+{
+ spin_lock_init(&console_lock);
+ spin_lock_init(&timerlist_lock);
+}
+
#if CONFIG_X86_IO_APIC

int nmi_watchdog = 1;
@@ -394,19 +406,7 @@ static int __init setup_nmi_watchdog(cha

__setup("nmi_watchdog=", setup_nmi_watchdog);

-extern spinlock_t console_lock, timerlist_lock;
static spinlock_t nmi_print_lock = SPIN_LOCK_UNLOCKED;
-
-/*
- * Unlock any spinlocks which will prevent us from getting the
- * message out (timerlist_lock is aquired through the
- * console unblank code)
- */
-void bust_spinlocks(void)
-{
- spin_lock_init(&console_lock);
- spin_lock_init(&timerlist_lock);
-}

inline void nmi_watchdog_tick(struct pt_regs * regs)
{

-


--
MandrakeSoft Inc http://www.chmouel.org
--Chmouel