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>