Hi, $ make ARCH=um defconfig $ make ARCH=um ... 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: /repos/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
Configuration ============= $ gcc --version gcc (GCC) 4.7.2 $ pacman -Q glibc glibc 2.17-3 $ git rev-parse HEAD f6161aa153581da4a3867a2d1a7caf4be19b6ec9 Patch ===== This problem (and the fix) was already known in October, 2012. Any ideas why the patch wasn't merged upstream? The following patch is borrowed from Arch Linux AUR. (https://aur.archlinux.org/packages/li/linux-usermode/PKGBUILD) diff --git a/arch/um/os-Linux/signal.c b/arch/um/os-Linux/signal.c index b1469fe..788d685 100644 --- a/arch/um/os-Linux/signal.c +++ b/arch/um/os-Linux/signal.c @@ -15,7 +15,7 @@ #include <sysdep/mcontext.h> #include "internal.h" -void (*sig_info[NSIG])(int, siginfo_t *, struct uml_pt_regs *) = { +void (*sig_info[NSIG])(int, struct siginfo *, struct uml_pt_regs *) = { [SIGTRAP] = relay_signal, [SIGFPE] = relay_signal, [SIGILL] = relay_signal, @@ -25,7 +25,7 @@ void (*sig_info[NSIG])(int, siginfo_t *, struct uml_pt_regs *) = { [SIGIO] = sigio_handler, [SIGVTALRM] = timer_handler }; -static void sig_handler_common(int sig, siginfo_t *si, mcontext_t *mc) +static void sig_handler_common(int sig, struct siginfo *si, mcontext_t *mc) { struct uml_pt_regs r; int save_errno = errno; @@ -61,7 +61,7 @@ static void sig_handler_common(int sig, siginfo_t *si, mcontext_t *mc) static int signals_enabled; static unsigned int signals_pending; -void sig_handler(int sig, siginfo_t *si, mcontext_t *mc) +void sig_handler(int sig, struct siginfo *si, mcontext_t *mc) { int enabled; @@ -120,7 +120,7 @@ void set_sigstack(void *sig_stack, int size) panic("enabling signal stack failed, errno = %d\n", errno); } -static void (*handlers[_NSIG])(int sig, siginfo_t *si, mcontext_t *mc) = { +static void (*handlers[_NSIG])(int sig, struct siginfo *si, mcontext_t *mc) = { [SIGSEGV] = sig_handler, [SIGBUS] = sig_handler, [SIGILL] = sig_handler, @@ -133,7 +133,7 @@ static void (*handlers[_NSIG])(int sig, siginfo_t *si, mcontext_t *mc) = { }; -static void hard_handler(int sig, siginfo_t *si, void *p) +static void hard_handler(int sig, struct siginfo *si, void *p) { struct ucontext *uc = p; mcontext_t *mc = &uc->uc_mcontext; diff --git a/arch/um/os-Linux/start_up.c b/arch/um/os-Linux/start_up.c index da4b9e9..f9f6041 100644 --- a/arch/um/os-Linux/start_up.c +++ b/arch/um/os-Linux/start_up.c @@ -1,3 +1,4 @@ +#include <sys/resource.h> /* * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) * Licensed under the GPL -- Dhiru ------------------------------------------------------------------------------ Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the endpoint security space. For insight on selecting the right partner to tackle endpoint security challenges, access the full report. http://p.sf.net/sfu/symantec-dev2dev _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel