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
This commit is contained in:
Rhys Kidd 2015-09-03 11:31:58 +00:00
parent c5dd149b60
commit b1631e4c8e
3 changed files with 27 additions and 0 deletions

1
NEWS
View File

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

View File

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

View File

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