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 ==


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15260
This commit is contained in:
Rhys Kidd 2015-05-20 13:31:02 +00:00
parent b291112485
commit 2a3a28aecf
5 changed files with 28 additions and 3 deletions

1
NEWS
View File

@ -175,6 +175,7 @@ where XXXXXX is the bug number as listed below.
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

View File

@ -547,7 +547,7 @@ DECL_TEMPLATE(darwin, getattrlistbulk); // 461
// 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

View File

@ -9308,6 +9308,28 @@ POST(getattrlistbulk)
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 @@ const SyscallTableEntry ML_(syscall_table)[] = {
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),

View File

@ -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)

View File

@ -5,6 +5,6 @@ open(): No such file or directory
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