Bug 359703

Summary: s390: wire up separate socketcalls system calls
Product: [Developer tools] valgrind Reporter: Mark Wielaard <mark>
Component: generalAssignee: Julian Seward <jseward>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: 3.11 SVN   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: S390 Split Socketcall

Description Mark Wielaard 2016-02-23 14:29:27 UTC
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.

The new "unwrapped" syscalls are:

#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


Reproducible: Always
Comment 1 Mark Wielaard 2016-02-23 14:53:22 UTC
Created attachment 97376 [details]
S390 Split Socketcall

Proposed patch. Simply wires up the split out system calls directly to the existing syswrap handlers.
Comment 2 Mark Wielaard 2016-02-23 15:20:26 UTC
The patch fixes the following s390 regtest errors:

memcheck/tests/buflen_check              (stderr)
memcheck/tests/null_socket               (stderr)
memcheck/tests/sendmsg                   (stderr)
none/tests/fcntl_setown                  (stderr)
none/tests/fdleak_cmsg                   (stderr)
none/tests/fdleak_ipv4                   (stdout)
none/tests/fdleak_ipv4                   (stderr)
none/tests/fdleak_socketpair             (stderr)
none/tests/syslog                        (stderr)

Committed as valgrind svn r15802.