aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoriraisr <iraisr@a5019735-40e9-0310-863c-91ae7b9d1cf9>2015-10-15 09:37:14 +0000
committeriraisr <iraisr@a5019735-40e9-0310-863c-91ae7b9d1cf9>2015-10-15 09:37:14 +0000
commitc593e2fb742b5461caa9844ddb40303dd7a9a923 (patch)
tree1d4314bf3ecf25041af78c05dabc9ec1622cea2d
parenta53331cf156ba25929bbef07ef63f41c0c8baa54 (diff)
downloadvalgrind-c593e2fb742b5461caa9844ddb40303dd7a9a923.tar.gz
Solaris syscall: Enable fchdir(120) - generic.
Provide scalar tests as well. Fixes BZ #353917. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15707 a5019735-40e9-0310-863c-91ae7b9d1cf9
-rw-r--r--NEWS1
-rw-r--r--coregrind/m_syswrap/syswrap-solaris.c1
-rw-r--r--include/vki/vki-scnums-solaris.h2
-rw-r--r--memcheck/tests/solaris/scalar.c3
-rw-r--r--memcheck/tests/solaris/scalar.stderr.exp6
5 files changed, 11 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index b48a1b73e..96d6be65d 100644
--- a/NEWS
+++ b/NEWS
@@ -36,6 +36,7 @@ where XXXXXX is the bug number as listed below.
353370 don't advertise RDRAND in cpuid for Core-i7-4910-like avx2 machine
353398 WARNING: unhandled amd64-solaris syscall: 207
353680 s390x: Crash with certain glibc versions due to non-implemented TBEGIN
+353917 unhandled amd64-solaris syscall fchdir(120)
diff --git a/coregrind/m_syswrap/syswrap-solaris.c b/coregrind/m_syswrap/syswrap-solaris.c
index 6ec33a36d..2c4e0fe3c 100644
--- a/coregrind/m_syswrap/syswrap-solaris.c
+++ b/coregrind/m_syswrap/syswrap-solaris.c
@@ -10325,6 +10325,7 @@ static SyscallTableEntry syscall_table[] = {
SOLX_(__NR_mmap, sys_mmap), /* 115 */
GENXY(__NR_mprotect, sys_mprotect), /* 116 */
GENXY(__NR_munmap, sys_munmap), /* 117 */
+ GENX_(__NR_fchdir, sys_fchdir), /* 120 */
GENXY(__NR_readv, sys_readv), /* 121 */
GENX_(__NR_writev, sys_writev), /* 122 */
#if defined(SOLARIS_UUIDSYS_SYSCALL)
diff --git a/include/vki/vki-scnums-solaris.h b/include/vki/vki-scnums-solaris.h
index dcc5b3235..be886c9e2 100644
--- a/include/vki/vki-scnums-solaris.h
+++ b/include/vki/vki-scnums-solaris.h
@@ -174,7 +174,7 @@
#define __NR_munmap SYS_munmap
//#define __NR_fpathconf SYS_fpathconf
//#define __NR_vfork SYS_vfork
-//#define __NR_fchdir SYS_fchdir
+#define __NR_fchdir SYS_fchdir
#define __NR_readv SYS_readv
#define __NR_writev SYS_writev
#if defined(SOLARIS_UUIDSYS_SYSCALL)
diff --git a/memcheck/tests/solaris/scalar.c b/memcheck/tests/solaris/scalar.c
index e2693154d..70ea81b20 100644
--- a/memcheck/tests/solaris/scalar.c
+++ b/memcheck/tests/solaris/scalar.c
@@ -1939,7 +1939,8 @@ int main(void)
/* XXX Missing wrapper. */
/* SYS_fchdir 120 */
- /* XXX Missing wrapper. */
+ GO(SYS_fchdir, "1s 0m");
+ SY(SYS_fchdir, x0 - 1); FAILx(EBADF);
/* SYS_readv 121 */
GO(SYS_readv, "3s 1m");
diff --git a/memcheck/tests/solaris/scalar.stderr.exp b/memcheck/tests/solaris/scalar.stderr.exp
index 241f283e9..9cce0b0cc 100644
--- a/memcheck/tests/solaris/scalar.stderr.exp
+++ b/memcheck/tests/solaris/scalar.stderr.exp
@@ -2147,6 +2147,12 @@ Syscall param munmap(length) contains uninitialised byte(s)
...
---------------------------------------------------------
+120: SYS_fchdir 1s 0m
+---------------------------------------------------------
+Syscall param fchdir(fd) contains uninitialised byte(s)
+ ...
+
+---------------------------------------------------------
121: SYS_readv 3s 1m
---------------------------------------------------------
Syscall param readv(fd) contains uninitialised byte(s)