]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Bug 359703 s390: wire up separate socketcalls system calls
authorMark Wielaard <mark@klomp.org>
Tue, 23 Feb 2016 15:19:49 +0000 (15:19 +0000)
committerMark Wielaard <mark@klomp.org>
Tue, 23 Feb 2016 15:19:49 +0000 (15:19 +0000)
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

coregrind/m_syswrap/syswrap-s390x-linux.c
include/vki/vki-scnums-s390x-linux.h

index e919b8f31e2a779d81f73daceacacfe55e728eee..05137893237a44557a5fb0fef6de2d4ee72205c5 100644 (file)
@@ -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 )
index 2a4a8f1fe761a5aecbb3b262217747924b67d72a..0187045e9eeef54fa8f93919d784ca68147f1473 100644 (file)
 #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