Re: [uml-devel] Re: Partial fix! - Was: Re: [BUG report] UML linux-2.6 latest BK doesn't compile

Blaisorblade
2006-09-09T09:31:41Z

On Saturday 09 September 2006 00:25, i.r.wezeman@hetnet.nl wrote:
> Hi there.
>
> I got a error undefined reference to `__bb_init_func' when
> compiling uml with kernel 2.6.17.6, gcc 4.1.1 and glibc-2.4

Ok, that's new. The below mail is about a very similar problem but with an
older Gcc, and since these symbols are provided by gcc, this makes a
difference.

Try removing from arch/um/kernel/gmon_syms.c these 2 lines:

extern void __bb_init_func(void *);
EXPORT_SYMBOL(__bb_init_func);

and recompiling. Better yet, try if adding the weak attribute like below fixes
the problem:

extern void __bb_init_func(void *) __attribute__((weak));
EXPORT_SYMBOL(__bb_init_func);

Another possible thing to check is what happens with CONFIG_STATIC_LINK=y
(edit it by hand and do not enable GPROF for now, that is yet another thing).

> Done: make clean && make distclean && make allmodconfig ARCH=um

> # CONFIG_GPROF is not set
> CONFIG_GCOV=y

This results from allmodconfig? Mmpf, that is not so nice (allmodconfig should
not result in a debug kernel). Even if allmodconfig is not a _smart_ setting
(set to y or m everything).

> #
> # UML-specific options
> #
> # CONFIG_MODE_TT is not set
> # CONFIG_STATIC_LINK is not set
> CONFIG_MODE_SKAS=y

> Build: make linux ARCH=um
>
>
> edit file: uml/arch/um/os-Linux/sys-i386/registers.c

> Ending:
>
> arch/um/kernel/built-in.o:(__ksymtab+0x238): undefined reference to
> `__bb_init_func'
> arch/um/os-Linux/built-in.o: In function `do_syscall_stub':
> arch/um/os-Linux/skas/mem.c:63: undefined reference to
> `get_safe_registers'
> arch/um/os-Linux/built-in.o: In function `copy_context_skas0':
> arch/um/os-Linux/skas/process.c:333: undefined reference to
> `get_safe_registers'

Since it arrives to this point, get_safe_register should be undefined only
because of the previous failure.

> I see it must be solved. So wat is happend now?
>
> Ron Wezeman
--
Inform me of my mistakes, so I can keep imitating Homer Simpson's "Doh!".
Paolo Giarrusso, aka Blaisorblade
http://www.user-mode-linux.org/~blaisorblade
Chiacchiera con i tuoi amici in tempo reale!