From: Rhys Kidd Date: Thu, 3 Sep 2015 11:31:58 +0000 (+0000) Subject: Fix UNKNOWN fcntl 97 on OS X 10.11 X-Git-Tag: svn/VALGRIND_3_11_0~38 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b1631e4c8e9bfdfe4b41197cc57398f4a3457ae4;p=thirdparty%2Fvalgrind.git 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 --- diff --git a/NEWS b/NEWS index 7699b45784..a03b403b7f 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 a6407bcbfd..e7297cd83b 100644 --- a/coregrind/m_syswrap/syswrap-darwin.c +++ b/coregrind/m_syswrap/syswrap-darwin.c @@ -1528,6 +1528,11 @@ static const HChar *name_for_fcntl(UWord cmd) { F(F_ADDSIGS); # 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 50847ddf39..49d0d4c9af 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