File r15802.diff of Package valgrind.3987

------------------------------------------------------------------------
r15802 | mjw | 2016-02-23 16:19:49 +0100 (Di, 23. Feb 2016) | 9 Zeilen

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.
------------------------------------------------------------------------
Index: include/vki/vki-scnums-s390x-linux.h
===================================================================
--- include/vki/vki-scnums-s390x-linux.h	(Revision 15801)
+++ include/vki/vki-scnums-s390x-linux.h	(Revision 15802)
@@ -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
Index: coregrind/m_syswrap/syswrap-s390x-linux.c
===================================================================
--- coregrind/m_syswrap/syswrap-s390x-linux.c	(Revision 15801)
+++ coregrind/m_syswrap/syswrap-s390x-linux.c	(Revision 15802)
@@ -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 )
openSUSE Build Service is sponsored by