From: Rhys Kidd Date: Sat, 30 May 2015 08:59:46 +0000 (+0000) Subject: Fix unhandled syscall: mach:41 (_kernelrpc_mach_port_guard_trap) X-Git-Tag: svn/VALGRIND_3_11_0~335 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=11f675de8bdb73568683538e8ad582dfb471755c;p=thirdparty%2Fvalgrind.git Fix unhandled syscall: mach:41 (_kernelrpc_mach_port_guard_trap) bz#344337 Before: == 591 tests, 220 stderr failures, 14 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures == After: == 591 tests, 220 stderr failures, 14 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures == git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15297 --- diff --git a/NEWS b/NEWS index 357adb972d..bb903f5140 100644 --- a/NEWS +++ b/NEWS @@ -183,6 +183,7 @@ where XXXXXX is the bug number as listed below. 344307 2 unhandled syscalls on aarch64/arm64: umount2(39), mount (40) 344314 callgrind_annotate ... warnings about commands containing newlines 344318 socketcall should wrap recvmmsg and sendmmsg +344337 Fix unhandled syscall: mach:41 (_kernelrpc_mach_port_guard_trap) 344499 Fix compilation for Linux kernel >= 4. With this, also require a Linux kernel >= 2.6 as 2.4 is mostly untested and might trigger obvious and non-obvious issues diff --git a/coregrind/m_syswrap/syswrap-darwin.c b/coregrind/m_syswrap/syswrap-darwin.c index 0bb276e661..9c5efab9d0 100644 --- a/coregrind/m_syswrap/syswrap-darwin.c +++ b/coregrind/m_syswrap/syswrap-darwin.c @@ -9986,17 +9986,27 @@ const SyscallTableEntry ML_(mach_trap_table)[] = { MACX_(__NR_semaphore_timedwait_signal_trap, semaphore_timedwait_signal), _____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(40)), // -40 -#if defined(VGA_x86) -// _____(__NR_init_process), - _____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(42)), -// _____(__NR_map_fd), -#else # if DARWIN_VERS >= DARWIN_10_9 MACX_(__NR_kernelrpc_mach_port_guard_trap, kernelrpc_mach_port_guard_trap), MACX_(__NR_kernelrpc_mach_port_unguard_trap, kernelrpc_mach_port_unguard_trap), +# else + _____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(41)), + _____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(42)), +# endif + +# if DARWIN_VERS >= DARWIN_10_10 + _____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(43)), +# else +# if DARWIN_VERS == DARWIN_10_9 +// _____(__NR_map_fd), +# else +# if defined(VGA_x86) +// _____(__NR_map_fd), +# else + _____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(43)), +# endif +# endif # endif - _____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(43)), -#endif // _____(__NR_task_name_for_pid), MACXY(__NR_task_for_pid, task_for_pid), diff --git a/include/vki/vki-scnums-darwin.h b/include/vki/vki-scnums-darwin.h index 60b569eb63..f6a7a619d2 100644 --- a/include/vki/vki-scnums-darwin.h +++ b/include/vki/vki-scnums-darwin.h @@ -175,14 +175,15 @@ #define __NR_semaphore_timedwait_trap VG_DARWIN_SYSCALL_CONSTRUCT_MACH(38) #define __NR_semaphore_timedwait_signal_trap VG_DARWIN_SYSCALL_CONSTRUCT_MACH(39) -#if defined(VGA_x86) -#define __NR_init_process VG_DARWIN_SYSCALL_CONSTRUCT_MACH(41) -#define __NR_map_fd VG_DARWIN_SYSCALL_CONSTRUCT_MACH(43) -#else +#if DARWIN_VERS >= DARWIN_10_9 #define __NR_kernelrpc_mach_port_guard_trap VG_DARWIN_SYSCALL_CONSTRUCT_MACH(41) #define __NR_kernelrpc_mach_port_unguard_trap VG_DARWIN_SYSCALL_CONSTRUCT_MACH(42) #endif +#if defined(VGA_x86) || DARWIN_VERS == DARWIN_10_9 +#define __NR_map_fd VG_DARWIN_SYSCALL_CONSTRUCT_MACH(43) +#endif + #define __NR_task_name_for_pid VG_DARWIN_SYSCALL_CONSTRUCT_MACH(44) #define __NR_task_for_pid VG_DARWIN_SYSCALL_CONSTRUCT_MACH(45) #define __NR_pid_for_task VG_DARWIN_SYSCALL_CONSTRUCT_MACH(46)