qemu-s390x
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [qemu-s390x] [Qemu-devel] [PULL v3 47/55] linux headers: update agai


From: Cornelia Huck
Subject: Re: [qemu-s390x] [Qemu-devel] [PULL v3 47/55] linux headers: update against Linux 5.2-rc1
Date: Wed, 22 May 2019 14:07:29 +0200

On Wed, 22 May 2019 13:47:25 +0200
Philippe Mathieu-Daudé <address@hidden> wrote:

> On 5/21/19 5:28 PM, Cornelia Huck wrote:
> > commit a188339ca5a396acc588e5851ed7e19f66b0ebd9
> > 
> > Signed-off-by: Cornelia Huck <address@hidden>
> > ---  
> [...]
> >  #define __NR_mq_notify 184
> >  __SC_COMP(__NR_mq_notify, sys_mq_notify, compat_sys_mq_notify)
> >  #define __NR_mq_getsetattr 185
> > @@ -536,8 +567,10 @@ __SC_COMP(__NR_msgsnd, sys_msgsnd, compat_sys_msgsnd)
> >  __SYSCALL(__NR_semget, sys_semget)
> >  #define __NR_semctl 191
> >  __SC_COMP(__NR_semctl, sys_semctl, compat_sys_semctl)
> > +#if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32

Eww. It seems only aarch64 sets __ARCH_WANT_TIME32_SYSCALLS, and the
second condition probably catches others but not mipsel.

> >  #define __NR_semtimedop 192
> > -__SC_COMP(__NR_semtimedop, sys_semtimedop, compat_sys_semtimedop)
> > +__SC_COMP(__NR_semtimedop, sys_semtimedop, sys_semtimedop_time32)
> > +#endif
> >  #define __NR_semop 193
> >  __SYSCALL(__NR_semop, sys_semop)  
> [...]
> 
> https://app.shippable.com/github/qemu/qemu/runs/1703/summary/console
> 
> It seems this commit introduce a regression on mips32:
> 
>   CC      mipsel-linux-user/linux-user/syscall.o
> ./linux-user/syscall.c: In function 'safe_semtimedop':
> ./linux-user/syscall.c:697:25: error: '__NR_semtimedop' undeclared
> (first use in this function)
>      return safe_syscall(__NR_##name, arg1, arg2, arg3, arg4); \

So, we unconditionally deal with this syscall, i.e. we assume it is
always present? (I'm not sure of the logic in linux-user code.)

Does this need to be escaped somehow?

>                          ^
> ./linux-user/syscall.c:769:1: note: in expansion of macro 'safe_syscall4'
>  safe_syscall4(int, semtimedop, int, semid, struct sembuf *, tsops,
>  ^~~~~~~~~~~~~
> ./linux-user/syscall.c:697:25: note: each undeclared identifier is
> reported only once for each function it appears in
>      return safe_syscall(__NR_##name, arg1, arg2, arg3, arg4); \
>                          ^
> ./linux-user/syscall.c:769:1: note: in expansion of macro 'safe_syscall4'
>  safe_syscall4(int, semtimedop, int, semid, struct sembuf *, tsops,
>  ^~~~~~~~~~~~~
> ./linux-user/syscall.c:770:45: error: control reaches end of non-void
> function [-Werror=return-type]
>                unsigned, nsops, const struct timespec *, timeout)
>                                              ^
> ./linux-user/syscall.c:695:61: note: in definition of macro 'safe_syscall4'
>  static type safe_##name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
>                                                              ^~~~~
> cc1: all warnings being treated as errors
> ./rules.mak:69: recipe for target 'linux-user/syscall.o' failed
> make[1]: *** [linux-user/syscall.o] Error 1
> Makefile:458: recipe for target 'subdir-mipsel-linux-user' failed
> make: *** [subdir-mipsel-linux-user] Error 2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]