Arnd, with kernel headers from the latest kernel QEMU fails to build if the user run configure with --target-list=s390x-linux-user:
when the kernel has commit 0768e17073dc527ccd18ed5f96ce85f9985e9115 net: socket: implement 64-bit timestamps /root/rpmbuild/BUILD/qemu-4.0.50/linux-user/ioctls.h:222:9: error: 'SIOCGSTAMP' undeclared here (not in a function); did you mean 'SIOCSRARP'? 222 | IOCTL(SIOCGSTAMP, IOC_R, MK_PTR(MK_STRUCT(STRUCT_timeval))) | ^~~~~~~~~~ It seems that qemu build relies on SIOCGSTAMP to be present via sys/socket.h. Adding this patch to qemu helps. diff --git a/linux-user/syscall.c b/linux-user/syscall.c index efa3ec2837..7332be9b06 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -34,6 +34,7 @@ #include <sys/resource.h> #include <sys/swap.h> #include <linux/capability.h> +#include <linux/sockios.h> #include <sched.h> #include <sys/timex.h> #include <sys/socket.h> But it is also a change in behavior of the kernel headers. (but only for programs that use sys/socket.h instead of linux/sockios.h.