Author: rhyskidd
Date: Wed May 20 14:31:02 2015
New Revision: 15260
Log:
Fix unhandled syscall: unix:473 (readlinkat) on OS X 10.10
bz#344936
Before:
== 595 tests, 229 stderr failures, 23 stdout failures, 1 stderrB failure, 1 stdoutB failure, 30 post failures ==
After:
== 595 tests, 228 stderr failures, 23 stdout failures, 1 stderrB failure, 1 stdoutB failure, 30 post failures ==
Modified:
trunk/NEWS
trunk/coregrind/m_syswrap/priv_syswrap-darwin.h
trunk/coregrind/m_syswrap/syswrap-darwin.c
trunk/include/vki/vki-scnums-darwin.h
trunk/none/tests/procfs-non-linux.stderr.exp
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Wed May 20 14:31:02 2015
@@ -175,6 +175,7 @@
344621 Fix memcheck/tests/err_disable4 test on OS X
344686 Fix suppression for pthread_rwlock_init on OS X 10.10
344702 Fix missing libobjc suppressions on OS X 10.10
+344936 Fix unhandled syscall: unix:473 (readlinkat) on OS X 10.10
344939 Fix memcheck/tests/xml1 on OS X 10.10
345016 helgrind/tests/locked_vs_unlocked2 is failing sometimes
345079 Fix build problems in VEX/useful/test_main.c
Modified: trunk/coregrind/m_syswrap/priv_syswrap-darwin.h
==============================================================================
--- trunk/coregrind/m_syswrap/priv_syswrap-darwin.h (original)
+++ trunk/coregrind/m_syswrap/priv_syswrap-darwin.h Wed May 20 14:31:02 2015
@@ -547,7 +547,7 @@
// NYI fstatat64 // 470
// NYI linkat // 471
// NYI unlinkat // 472
-// NYI readlinkat // 473
+DECL_TEMPLATE(darwin, readlinkat); // 473
// NYI symlinkat // 474
// NYI mkdirat // 475
// NYI getattrlistat // 476
Modified: trunk/coregrind/m_syswrap/syswrap-darwin.c
==============================================================================
--- trunk/coregrind/m_syswrap/syswrap-darwin.c (original)
+++ trunk/coregrind/m_syswrap/syswrap-darwin.c Wed May 20 14:31:02 2015
@@ -9308,6 +9308,28 @@
POST_MEM_WRITE(ARG3, ARG4);
}
+PRE(readlinkat)
+{
+ Word saved = SYSNO;
+
+ PRINT("readlinkat ( %ld, %#lx(%s), %#lx, %llu )", ARG1,ARG2,(char*)ARG2,ARG3,(ULong)ARG4);
+ PRE_REG_READ4(long, "readlinkat",
+ int, dfd, const char *, path, char *, buf, int, bufsiz);
+ PRE_MEM_RASCIIZ( "readlinkat(path)", ARG2 );
+ PRE_MEM_WRITE( "readlinkat(buf)", ARG3,ARG4 );
+
+ /*
+ * Refer to coregrind/m_syswrap/syswrap-linux.c
+ */
+ {
+ /* Normal case */
+ SET_STATUS_from_SysRes( VG_(do_syscall4)(saved, ARG1, ARG2, ARG3, ARG4));
+ }
+
+ if (SUCCESS && RES > 0)
+ POST_MEM_WRITE( ARG3, RES );
+}
+
PRE(bsdthread_ctl)
{
// int bsdthread_ctl(user_addr_t cmd, user_addr_t arg1,
@@ -9863,6 +9885,7 @@
MACXY(__NR_sysctlbyname, sysctlbyname), // 274
MACXY(__NR_necp_match_policy, necp_match_policy), // 460
MACXY(__NR_getattrlistbulk, getattrlistbulk), // 461
+ MACX_(__NR_readlinkat, readlinkat), // 473
MACX_(__NR_bsdthread_ctl, bsdthread_ctl), // 478
MACX_(__NR_guarded_open_dprotected_np, guarded_open_dprotected_np),
MACX_(__NR_guarded_write_np, guarded_write_np),
Modified: trunk/include/vki/vki-scnums-darwin.h
==============================================================================
--- trunk/include/vki/vki-scnums-darwin.h (original)
+++ trunk/include/vki/vki-scnums-darwin.h Wed May 20 14:31:02 2015
@@ -714,6 +714,7 @@
#if DARWIN_VERS >= DARWIN_10_10
#define __NR_necp_match_policy VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(460)
#define __NR_getattrlistbulk VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(461)
+#define __NR_readlinkat VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(473)
#define __NR_bsdthread_ctl VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(478)
#define __NR_guarded_open_dprotected_np VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(484)
#define __NR_guarded_write_np VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(485)
Modified: trunk/none/tests/procfs-non-linux.stderr.exp
==============================================================================
--- trunk/none/tests/procfs-non-linux.stderr.exp (original)
+++ trunk/none/tests/procfs-non-linux.stderr.exp Wed May 20 14:31:02 2015
@@ -5,6 +5,6 @@
open(): No such file or directory
readlink: No such file or directory
readlink: No such file or directory
-readlinkat: Function not implemented
-readlinkat: Function not implemented
+readlinkat: No such file or directory
+readlinkat: No such file or directory
|