Re: [uml-devel] [Patch] uml: fix a link error

Geert Uytterhoeven
2009-02-12T14:40:38Z

On Sat, 7 Feb 2009, Heiko Carstens wrote:
> On Wed, 4 Feb 2009 21:54:12 +0100 (CET)
> Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> > I verified that Shane's solution:
> >
> > #define sys_sigprocmask sys_kernel_sigprocmask
> >
> > works for me, but that's definitely not the cleanest way.
> >
> > Al Viro also had a suggestion to rework the SYSCALL_DEFINE* macros, but I
> > haven't tried it yet.
>
>
> Patch below should fix it.

Thanks! I only managed to try it a few minutes ago...

> Subject: [PATCH] syscall define: fix uml compile bug
>
> From: Heiko Carstens <heiko.carstens@de.ibm.com>
>
> With the new system call defines we get this on uml:
>
> arch/um/sys-i386/built-in.o: In function `sys_call_table':
> (.rodata+0x308): undefined reference to `sys_sigprocmask'
>
> Reason for this is that uml passes the preprocessor option
> -Dsigprocmask=kernel_sigprocmask to gcc when compiling the kernel.
> This causes SYSCALL_DEFINE3(sigprocmask, ...) to be expanded to
> SYSCALL_DEFINEx(3, kernel_sigprocmask, ...) and finally to a system call
> named sys_kernel_sigprocmask. However sys_sigprocmask is missing because
> of this.
> To avoid macro expansion for the system call name just concatenate the
> name at first define instead of carrying it through severel levels.
> This was pointed out by Al Viro.
>
> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>

For the record:

Acked-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>

With kind regards,

Geert Uytterhoeven
Software Architect

Sony Techsoft Centre Europe
The Corporate Village · Da Vincilaan 7-D1 · B-1935 Zaventem · Belgium

Phone: +32 (0)2 700 8453
Fax: +32 (0)2 700 8622
E-mail: Geert.Uytterhoeven@sonycom.com
Internet: http://www.sony-europe.com/

A division of Sony Europe (Belgium) N.V.
VAT BE 0413.825.160 · RPR Brussels
Fortis · BIC GEBABEBB · IBAN BE41293037680010