diff --git a/valgrind-3.10.1-aarch64-syscalls.patch b/valgrind-3.10.1-aarch64-syscalls.patch index 42deb7e..7ee1e40 100644 --- a/valgrind-3.10.1-aarch64-syscalls.patch +++ b/valgrind-3.10.1-aarch64-syscalls.patch @@ -113,3 +113,37 @@ index ed66227..c23e6f7 100644 //ZZ //ZZ LINX_(__NR_request_key, sys_request_key), // 287 //ZZ // LINX_(__NR_ioprio_set, sys_ioprio_set), // 289 +commit c79fe53e9e31d5c8e5d2ad3a0943b21e84129ccb +Author: mjw +Date: Tue Feb 10 13:39:04 2015 +0000 + + Bug #344007 accept4 syscall unhandled on arm64 (242) and ppc64 (344) + + ppc64 might fall back to socketcall in some cases, but arm64 always uses + accept4 syscall directly. Some (confusing) background on when/how glibc + (wrongly) decides to use a direct accept4 or the socketcall system call: + https://sourceware.org/ml/libc-alpha/2013-12/msg00014.html + + git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14926 a5019735-40e9-0310-863c-91ae7b9d1cf9 + +diff --git a/coregrind/m_syswrap/syswrap-arm64-linux.c b/coregrind/m_syswrap/syswrap-arm64-linux.c +index c23e6f7..1f9670a 100644 +--- a/coregrind/m_syswrap/syswrap-arm64-linux.c ++++ b/coregrind/m_syswrap/syswrap-arm64-linux.c +@@ -1040,6 +1040,7 @@ static SyscallTableEntry syscall_main_table[] = { + LINX_(__NR_mbind, sys_mbind), // 235 + LINXY(__NR_get_mempolicy, sys_get_mempolicy), // 236 + LINX_(__NR_set_mempolicy, sys_set_mempolicy), // 237 ++ LINXY(__NR_accept4, sys_accept4), // 242 + GENXY(__NR_wait4, sys_wait4), // 260 + + LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 270 +@@ -1379,8 +1380,6 @@ static SyscallTableEntry syscall_main_table[] = { + //ZZ LINXY(__NR_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo),// 363 + //ZZ LINXY(__NR_perf_event_open, sys_perf_event_open), // 364 + //ZZ +-//ZZ LINXY(__NR_accept4, sys_accept4), // 366 +-//ZZ + //ZZ LINXY(__NR_name_to_handle_at, sys_name_to_handle_at),// 370 + //ZZ LINXY(__NR_open_by_handle_at, sys_open_by_handle_at),// 371 + //ZZ LINXY(__NR_clock_adjtime, sys_clock_adjtime) // 372 diff --git a/valgrind-3.10.1-ppc64-accept4.patch b/valgrind-3.10.1-ppc64-accept4.patch new file mode 100644 index 0000000..74d0b10 --- /dev/null +++ b/valgrind-3.10.1-ppc64-accept4.patch @@ -0,0 +1,26 @@ +commit c79fe53e9e31d5c8e5d2ad3a0943b21e84129ccb +Author: mjw +Date: Tue Feb 10 13:39:04 2015 +0000 + + Bug #344007 accept4 syscall unhandled on arm64 (242) and ppc64 (344) + + ppc64 might fall back to socketcall in some cases, but arm64 always uses + accept4 syscall directly. Some (confusing) background on when/how glibc + (wrongly) decides to use a direct accept4 or the socketcall system call: + https://sourceware.org/ml/libc-alpha/2013-12/msg00014.html + + git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14926 a5019735-40e9-0310-863c-91ae7b9d1cf9 + +diff --git a/coregrind/m_syswrap/syswrap-ppc64-linux.c b/coregrind/m_syswrap/syswrap-ppc64-linux.c +index 25e0bde..8d5fa08 100644 +--- a/coregrind/m_syswrap/syswrap-ppc64-linux.c ++++ b/coregrind/m_syswrap/syswrap-ppc64-linux.c +@@ -1152,6 +1152,8 @@ static SyscallTableEntry syscall_table[] = { + LINX_(__NR_pwritev, sys_pwritev), // 321 + LINXY(__NR_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo),// 322 + ++ LINXY(__NR_accept4, sys_accept4), // 344 ++ + LINXY(__NR_clock_adjtime, sys_clock_adjtime), // 347 + + LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 351 diff --git a/valgrind.spec b/valgrind.spec index e23eea9..26a629a 100644 --- a/valgrind.spec +++ b/valgrind.spec @@ -3,7 +3,7 @@ Summary: Tool for finding memory management bugs in programs Name: %{?scl_prefix}valgrind Version: 3.10.1 -Release: 4%{?dist} +Release: 5%{?dist} Epoch: 1 License: GPLv2+ URL: http://www.valgrind.org/ @@ -64,11 +64,14 @@ Patch5: valgrind-3.10.1-mempcpy.patch # KDE#343802 - s390x memcheck reports spurious conditional jump Patch6: valgrind-3.10-s390-spechelper.patch -# KDE#342038, KDE#343732, KDE#343733 +# KDE#342038, KDE#343732, KDE#343733, KDE#344007 # mbind, get_mempolicy, set_mempolicy, flock, setgid, msgget, msgctl, -# msgrcv, msgsnd +# msgrcv, msgsnd, accept4 Patch7: valgrind-3.10.1-aarch64-syscalls.patch +# KDE#344007 ppc64 missing accept4 syscall +Patch8: valgrind-3.10.1-ppc64-accept4.patch + %if %{build_multilib} # Ensure glibc{,-devel} is installed for both multilib arches BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so @@ -174,6 +177,7 @@ Valgrind User Manual for details. %patch5 -p1 %patch6 -p1 %patch7 -p1 +%patch8 -p1 %build # We need to use the software collection compiler and binutils if available. @@ -322,6 +326,10 @@ echo ===============END TESTING=============== %endif %changelog +* Tue Feb 10 2015 Mark Wielaard - 3.10.1-5 +- Add accept4 to valgrind-3.10.1-aarch64-syscalls.patch. +- Add valgrind-3.10.1-ppc64-accept4.patch. + * Sun Feb 08 2015 Mark Wielaard - 3.10.1-4 - Add valgrind-3.10.1-aarch64-syscalls.patch.