valgrind/valgrind-3.11.0-s390-separate-socketcalls.patch
2016-02-23 21:18:03 +01:00

80 lines
3.5 KiB
Diff

commit d9201968186f799b9a2c0793a29029819372a072
Author: mjw <mjw@a5019735-40e9-0310-863c-91ae7b9d1cf9>
Date: Tue Feb 23 15:19:49 2016 +0000
Bug 359703 s390: wire up separate socketcalls system calls
The linux 4.3 s390 kernel has separate system calls that were originally
hidden behind the socketcall multiplexer system call. Newer glibc versions
will use these direct system calls instead of socketcall when available.
Causing several regtest failures.
This fix simply wires up the split out system calls directly to the
existing syswrap handlers for s390.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15802 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/m_syswrap/syswrap-s390x-linux.c b/coregrind/m_syswrap/syswrap-s390x-linux.c
index e919b8f..0513789 100644
--- a/coregrind/m_syswrap/syswrap-s390x-linux.c
+++ b/coregrind/m_syswrap/syswrap-s390x-linux.c
@@ -1051,7 +1051,25 @@ static SyscallTableEntry syscall_table[] = {
// ?????(__NR_seccomp, ), // 348
LINXY(__NR_getrandom, sys_getrandom), // 349
- LINXY(__NR_memfd_create, sys_memfd_create) // 350
+ LINXY(__NR_memfd_create, sys_memfd_create), // 350
+
+ LINXY(__NR_recvmmsg, sys_recvmmsg), // 357
+ LINXY(__NR_sendmmsg, sys_sendmmsg), // 358
+ LINXY(__NR_socket, sys_socket), // 359
+ LINXY(__NR_socketpair, sys_socketpair), // 360
+ LINX_(__NR_bind, sys_bind), // 361
+ LINX_(__NR_connect, sys_connect), // 362
+ LINX_(__NR_listen, sys_listen), // 363
+ LINXY(__NR_accept4, sys_accept4), // 364
+ LINXY(__NR_getsockopt, sys_getsockopt), // 365
+ LINX_(__NR_setsockopt, sys_setsockopt), // 366
+ LINXY(__NR_getsockname, sys_getsockname), // 367
+ LINXY(__NR_getpeername, sys_getpeername), // 368
+ LINX_(__NR_sendto, sys_sendto), // 369
+ LINX_(__NR_sendmsg, sys_sendmsg), // 270
+ LINXY(__NR_recvfrom, sys_recvfrom), // 371
+ LINXY(__NR_recvmsg, sys_recvmsg), // 372
+ LINX_(__NR_shutdown, sys_shutdown) // 373
};
SyscallTableEntry* ML_(get_linux_syscall_entry) ( UInt sysno )
diff --git a/include/vki/vki-scnums-s390x-linux.h b/include/vki/vki-scnums-s390x-linux.h
index 2a4a8f1..0187045 100644
--- a/include/vki/vki-scnums-s390x-linux.h
+++ b/include/vki/vki-scnums-s390x-linux.h
@@ -316,7 +316,26 @@
#define __NR_seccomp 348
#define __NR_getrandom 349
#define __NR_memfd_create 350
-#define NR_syscalls 351
+
+#define __NR_recvmmsg 357
+#define __NR_sendmmsg 358
+#define __NR_socket 359
+#define __NR_socketpair 360
+#define __NR_bind 361
+#define __NR_connect 362
+#define __NR_listen 363
+#define __NR_accept4 364
+#define __NR_getsockopt 365
+#define __NR_setsockopt 366
+#define __NR_getsockname 367
+#define __NR_getpeername 368
+#define __NR_sendto 369
+#define __NR_sendmsg 370
+#define __NR_recvfrom 371
+#define __NR_recvmsg 372
+#define __NR_shutdown 373
+
+#define NR_syscalls 374
/*
* There are some system calls that are not present on 64 bit, some