On Thu, 23 May 2019 19:54:13 +0200
Laurent Vivier <laur...@vivier.eu> wrote:

> In current code, __NR_msgrcv and__NR_semtimedop are supposed to be
> defined if __NR_msgsnd is defined.
> 
> But linux headers 5.2-rc1 for MIPS define __NR_msgsnd without defining
> __NR_semtimedop and it breaks the QEMU build.
> 
> __NR_semtimedop is defined in asm-mips/unistd_n64.h and asm-mips/unistd_n32.h
> but not in asm-mips/unistd_o32.h.
> 
> Commit d9cb4336159a ("linux headers: update against Linux 5.2-rc1") has
> updated asm-mips/unistd_o32.h and added __NR_msgsnd but not __NR_semtimedop.
> It introduces __NR_semtimedop_time64 instead.

Thanks for looking into this! I still wonder whether something's b0rken
in the kernel, though. But that needs to be followed up by the mips
folks.

> 
> This patch fixes the problem by checking for each __NR_XXX symbol
> before defining the corresponding syscall.

This looks safe in any case.

> 
> Fixes: d9cb4336159a ("linux headers: update against Linux 5.2-rc1")
> Reported-by: Philippe Mathieu-Daudé <phi...@redhat.com>
> Signed-off-by: Laurent Vivier <laur...@vivier.eu>
> ---
>  linux-user/syscall.c | 24 ++++++++++++++++--------
>  1 file changed, 16 insertions(+), 8 deletions(-)

Reviewed-by: Cornelia Huck <coh...@redhat.com>

Reply via email to