Re: [REGRESSION] uml: signal.c build errors

From: Richard Weinberger
Date: Wed Oct 24 2012 - 04:10:41 EST


On 24.10.2012 10:08, Richard Weinberger wrote:
On 24.10.2012 01:18, Matthew Leach wrote:
Hi,

When building UML against 3.7-rc2 I encounter the following build error:

# make ARCH=uml
scripts/kconfig/conf --silentoldconfig arch/x86/um/Kconfig
CHK include/generated/uapi/linux/version.h
UPD include/generated/uapi/linux/version.h
WRAP arch/um/include/generated/asm/clkdev.h
SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_32.h
SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_64.h
SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_x32.h

...

CC arch/um/os-Linux/signal.o
arch/um/os-Linux/signal.c:18:8: error: conflicting types for âsig_infoâ
In file included from arch/um/os-Linux/signal.c:12:0:
/home/matthew/Development/linux/arch/um/include/shared/as-layout.h:64:15: note: previous declaration of âsig_infoâ was
here
arch/um/os-Linux/signal.c:19:2: warning: initialization from incompatible pointer type [enabled by default]
arch/um/os-Linux/signal.c:19:2: warning: (near initialization for âsig_info[5]â) [enabled by default]
arch/um/os-Linux/signal.c:20:2: warning: initialization from incompatible pointer type [enabled by default]
arch/um/os-Linux/signal.c:20:2: warning: (near initialization for âsig_info[8]â) [enabled by default]
arch/um/os-Linux/signal.c:21:2: warning: initialization from incompatible pointer type [enabled by default]
arch/um/os-Linux/signal.c:21:2: warning: (near initialization for âsig_info[4]â) [enabled by default]
arch/um/os-Linux/signal.c:22:2: warning: initialization from incompatible pointer type [enabled by default]
arch/um/os-Linux/signal.c:22:2: warning: (near initialization for âsig_info[28]â) [enabled by default]
arch/um/os-Linux/signal.c:23:2: warning: initialization from incompatible pointer type [enabled by default]
arch/um/os-Linux/signal.c:23:2: warning: (near initialization for âsig_info[7]â) [enabled by default]
arch/um/os-Linux/signal.c:24:2: warning: initialization from incompatible pointer type [enabled by default]
arch/um/os-Linux/signal.c:24:2: warning: (near initialization for âsig_info[11]â) [enabled by default]
arch/um/os-Linux/signal.c:25:2: warning: initialization from incompatible pointer type [enabled by default]
arch/um/os-Linux/signal.c:25:2: warning: (near initialization for âsig_info[29]â) [enabled by default]
arch/um/os-Linux/signal.c:26:2: warning: initialization from incompatible pointer type [enabled by default]
arch/um/os-Linux/signal.c:26:2: warning: (near initialization for âsig_info[26]â) [enabled by default]
arch/um/os-Linux/signal.c:133:1: warning: initialization from incompatible pointer type [enabled by default]
arch/um/os-Linux/signal.c:133:1: warning: (near initialization for âhandlers[26]â) [enabled by default]
make[1]: *** [arch/um/os-Linux/signal.o] Error 1
make: *** [arch/um/os-Linux] Error 2

I have tracked this down to [1] where, indeed, the type of sig_info is
different; the second parameter in signal.c is 'siginfo_t' where as in
as-layout.h the second parameter's type is declared as 'struct siginfo'.

[1]: d3c1cfcdb43e023ab1b1c7a555cd9e929026500a

Does this patch fix the issue?
Are you using glibc 2.17?

If not, Martin, can you please convert your code to siginfo_t?
It looks like struct sig_info and siginfo_t are no longer compatible.

Thanks,
//richard
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/