Re: [build bug] lguest build failure: drivers/lguest/x86/switcher_32.S:(.text+0x3815f8): undefined reference to `LGUEST_PAGES_regs_trapnum'

Rusty Russell
2008-02-03T20:12:11Z

On Saturday 02 February 2008 04:05:51 Ingo Molnar wrote:
> looks similar to the previous one so i guess my quick fix attempt was a
> bit too quick. Will turn lguest off again. And i'm willing to test
> patches as well :)

Hi Ingo,

OK, this problem was caused by asm-offsets.c only having the offsets when
lguest *guest* support was set, not lguest host (host support used to imply
guest support, so now they're separate these bugs come out).

Can you throw this patch into your tree for testing?

Thanks,
Rusty.

Lguest guest support and host support are separate config options: they used
to be tied together. Sort out which parts of asm-offsets are needed for Guest
and Host.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

diff -r 7d5a5c7a4b95 arch/x86/kernel/asm-offsets_32.c
--- a/arch/x86/kernel/asm-offsets_32.c Sat Feb 02 23:13:05 2008 +1100
+++ b/arch/x86/kernel/asm-offsets_32.c Sun Feb 03 10:13:19 2008 +1100
@@ -20,10 +20,8 @@

#include <xen/interface/xen.h>

-#ifdef CONFIG_LGUEST_GUEST
#include <linux/lguest.h>
#include "../../../drivers/lguest/lg.h"
-#endif

#define DEFINE(sym, val) \
asm volatile("\n->" #sym " %0 " #val : : "i" (val))
@@ -134,6 +132,10 @@ void foo(void)
BLANK();
OFFSET(LGUEST_DATA_irq_enabled, lguest_data, irq_enabled);
OFFSET(LGUEST_DATA_pgdir, lguest_data, pgdir);
+#endif
+
+#ifdef CONFIG_LGUEST
+ BLANK();
OFFSET(LGUEST_PAGES_host_gdt_desc, lguest_pages, state.host_gdt_desc);
OFFSET(LGUEST_PAGES_host_idt_desc, lguest_pages, state.host_idt_desc);
OFFSET(LGUEST_PAGES_host_cr3, lguest_pages, state.host_cr3);