aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrhyskidd <rhyskidd@a5019735-40e9-0310-863c-91ae7b9d1cf9>2015-09-03 11:31:58 +0000
committerrhyskidd <rhyskidd@a5019735-40e9-0310-863c-91ae7b9d1cf9>2015-09-03 11:31:58 +0000
commit60654ae51db5d11d7e565d2281556dceef9078f3 (patch)
tree995dba823e362be192513fc966ff9700a244996d
parentc22f51957e502fc1e437c2b0baed0d586e42a802 (diff)
downloadvalgrind-60654ae51db5d11d7e565d2281556dceef9078f3.tar.gz
Fix UNKNOWN fcntl 97 on OS X 10.11
bz#351632 On OS X 10.11 (DP8) Before: == 595 tests, 575 stderr failures, 10 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures == After: == 595 tests, 219 stderr failures, 9 stdout failures, 0 stderrB failures, 0 stdoutB failures, 30 post failures == git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15619 a5019735-40e9-0310-863c-91ae7b9d1cf9
-rw-r--r--NEWS1
-rw-r--r--coregrind/m_syswrap/syswrap-darwin.c21
-rw-r--r--include/vki/vki-darwin.h5
3 files changed, 27 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 7699b4578..a03b403b7 100644
--- a/NEWS
+++ b/NEWS
@@ -367,6 +367,7 @@ where XXXXXX is the bug number as listed below.
351386 Solaris: Cannot run ld.so.1 under Valgrind
351474 Fix VG_(iseqsigset) as obvious
351534 Fix incorrect header guard
+351632 Fix UNKNOWN fcntl 97 on OS X 10.11
351756 Intercept platform_memchr$VARIANT$Haswell on OS X
351858 ldsoexec support on Solaris
351873 Newer gcc doesn't allow __builtin_tabortdc[i] in ppc32 mode
diff --git a/coregrind/m_syswrap/syswrap-darwin.c b/coregrind/m_syswrap/syswrap-darwin.c
index a6407bcbf..e7297cd83 100644
--- a/coregrind/m_syswrap/syswrap-darwin.c
+++ b/coregrind/m_syswrap/syswrap-darwin.c
@@ -1529,6 +1529,11 @@ static const HChar *name_for_fcntl(UWord cmd) {
# if DARWIN_VERS >= DARWIN_10_9
F(F_ADDFILESIGS);
# endif
+# if DARWIN_VERS >= DARWIN_10_11
+ F(F_ADDFILESIGS_FOR_DYLD_SIM);
+ F(F_BARRIERFSYNC);
+ F(F_ADDFILESIGS_RETURN);
+# endif
default:
return "UNKNOWN";
}
@@ -1711,6 +1716,22 @@ PRE(fcntl)
}
break;
+# if DARWIN_VERS >= DARWIN_10_11
+ case VKI_F_ADDFILESIGS_FOR_DYLD_SIM: /* Add signature from same file, only if it is signed
+ by Apple used by dyld for simulator */
+ // FIXME: RK
+ break;
+
+ case VKI_F_BARRIERFSYNC: /* fsync + issue barrier to drive */
+ // FIXME: RK
+ break;
+
+ case VKI_F_ADDFILESIGS_RETURN: /* Add signature from same file, return end offset in
+ structure on success */
+ // FIXME: RK
+ break;
+# endif
+
default:
PRINT("fcntl ( %lu, %lu [??] )", ARG1, ARG2);
log_decaying("UNKNOWN fcntl %lu!", ARG2);
diff --git a/include/vki/vki-darwin.h b/include/vki/vki-darwin.h
index 50847ddf3..49d0d4c9a 100644
--- a/include/vki/vki-darwin.h
+++ b/include/vki/vki-darwin.h
@@ -304,6 +304,11 @@ typedef uint32_t vki_u32;
#if DARWIN_VERS >= DARWIN_10_9
# define VKI_F_ADDFILESIGS F_ADDFILESIGS
#endif
+#if DARWIN_VERS >= DARWIN_10_11
+# define VKI_F_ADDFILESIGS_FOR_DYLD_SIM F_ADDFILESIGS_FOR_DYLD_SIM
+# define VKI_F_BARRIERFSYNC F_BARRIERFSYNC
+# define VKI_F_ADDFILESIGS_RETURN F_ADDFILESIGS_RETURN
+#endif
#define VKI_F_FULLFSYNC F_FULLFSYNC
#define VKI_F_PATHPKG_CHECK F_PATHPKG_CHECK
#define VKI_F_FREEZE_FS F_FREEZE_FS