Preliminary support for OS X 10.11 (El Capitan). Refer BZ#348909 for ongoing work.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15403 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/Makefile.am b/Makefile.am
index d35fd36..426c1ea 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -45,7 +45,7 @@
exp-sgcheck.supp \
darwin9.supp darwin9-drd.supp \
darwin10.supp darwin10-drd.supp \
- darwin11.supp darwin12.supp darwin13.supp darwin14.supp \
+ darwin11.supp darwin12.supp darwin13.supp darwin14.supp darwin15.supp \
bionic.supp
DEFAULT_SUPP_FILES = @DEFAULT_SUPP@
diff --git a/configure.ac b/configure.ac
index 558adf3..60c4fec 100644
--- a/configure.ac
+++ b/configure.ac
@@ -154,7 +154,7 @@
# Note: m4 arguments are quoted with [ and ] so square brackets in shell
# statements have to be quoted.
case "${is_clang}-${gcc_version}" in
- applellvm-5.1|applellvm-6.*)
+ applellvm-5.1|applellvm-6.*|applellvm-7.*)
AC_MSG_RESULT([ok (Apple LLVM version ${gcc_version})])
;;
icc-1[[3-9]].*)
@@ -352,6 +352,7 @@
AC_DEFINE([DARWIN_10_8], 100800, [DARWIN_VERS value for Mac OS X 10.8])
AC_DEFINE([DARWIN_10_9], 100900, [DARWIN_VERS value for Mac OS X 10.9])
AC_DEFINE([DARWIN_10_10], 101000, [DARWIN_VERS value for Mac OS X 10.10])
+ AC_DEFINE([DARWIN_10_11], 101100, [DARWIN_VERS value for Mac OS X 10.11])
AC_MSG_CHECKING([for the kernel version])
kernel=`uname -r`
@@ -409,9 +410,15 @@
DEFAULT_SUPP="darwin14.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
;;
+ 15.*)
+ AC_MSG_RESULT([Darwin 15.x (${kernel}) / Mac OS X 10.11 El Capitan])
+ AC_DEFINE([DARWIN_VERS], DARWIN_10_11, [Darwin / Mac OS X version])
+ DEFAULT_SUPP="darwin15.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="darwin10-drd.supp ${DEFAULT_SUPP}"
+ ;;
*)
AC_MSG_RESULT([unsupported (${kernel})])
- AC_MSG_ERROR([Valgrind works on Darwin 10.x, 11.x, 12.x, 13.x and 14.x (Mac OS X 10.6/7/8/9/10)])
+ AC_MSG_ERROR([Valgrind works on Darwin 10.x, 11.x, 12.x, 13.x, 14.x and 15.x (Mac OS X 10.6/7/8/9/10/11)])
;;
esac
;;
diff --git a/coregrind/fixup_macho_loadcmds.c b/coregrind/fixup_macho_loadcmds.c
index d66ad20..9db6f46 100644
--- a/coregrind/fixup_macho_loadcmds.c
+++ b/coregrind/fixup_macho_loadcmds.c
@@ -121,7 +121,8 @@
#include "config.h"
#if DARWIN_VERS != DARWIN_10_5 && DARWIN_VERS != DARWIN_10_6 \
&& DARWIN_VERS != DARWIN_10_7 && DARWIN_VERS != DARWIN_10_8 \
- && DARWIN_VERS != DARWIN_10_9 && DARWIN_VERS != DARWIN_10_10
+ && DARWIN_VERS != DARWIN_10_9 && DARWIN_VERS != DARWIN_10_10 \
+ && DARWIN_VERS != DARWIN_10_11
# error "Unknown DARWIN_VERS value. This file only compiles on Darwin."
#endif
@@ -555,7 +556,7 @@
maybe_mash_pagezero:
/* Deal with Problem (2) as documented above. */
-# if DARWIN_VERS == DARWIN_10_10
+# if DARWIN_VERS >= DARWIN_10_10
assert(size == 64);
if (!seg__pagezero) {
fail("Can't find __PAGEZERO to modify; can't continue.");
diff --git a/coregrind/m_main.c b/coregrind/m_main.c
index 9f98e11..39c03ab 100644
--- a/coregrind/m_main.c
+++ b/coregrind/m_main.c
@@ -3864,9 +3864,9 @@
/*=== Dummy _voucher_mach_msg_set for OSX 10.10 ===*/
/*====================================================================*/
-#if defined(VGO_darwin) && DARWIN_VERS == DARWIN_10_10
+#if defined(VGO_darwin) && DARWIN_VERS >= DARWIN_10_10
-/* Builds on MacOSX 10.10 seem to need this for some reason. */
+/* Builds on MacOSX 10.10+ seem to need this for some reason. */
/* extern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg)
__attribute__((weak_import));
I haven't a clue what the return value means, so just return 0.
diff --git a/coregrind/m_syswrap/priv_syswrap-darwin.h b/coregrind/m_syswrap/priv_syswrap-darwin.h
index 7295cf4..3cf868e 100644
--- a/coregrind/m_syswrap/priv_syswrap-darwin.h
+++ b/coregrind/m_syswrap/priv_syswrap-darwin.h
@@ -335,7 +335,7 @@
#if DARWIN_VERS < DARWIN_10_10
// NYI sem_getvalue 274
-#elif DARWIN_VERS == DARWIN_10_10
+#elif DARWIN_VERS >= DARWIN_10_10
DECL_TEMPLATE(darwin, sysctlbyname); // 274
#endif
@@ -506,10 +506,10 @@
// NYI audit_session_port 432
// NYI pid_suspend 433
// NYI pid_resume 434
-#if DARWIN_VERS == DARWIN_10_10
+#if DARWIN_VERS >= DARWIN_10_10
// NYI pid_hibernate 435
// NYI pid_shutdown_sockets 436
-#endif /* DARWIN_VERS == DARWIN_10_10 */
+#endif /* DARWIN_VERS >= DARWIN_10_10 */
// old old shared_region_slide_np 437
// NYI shared_region_map_and_slide_np // 438
// NYI kas_info // 439
@@ -529,7 +529,7 @@
// NYI memorystatus_get_level // 453
// NYI system_override // 454
// NYI vfs_purge // 455
-#if DARWIN_VERS == DARWIN_10_10
+#if DARWIN_VERS >= DARWIN_10_10
// NYI sfi_ctl // 456
// NYI sfi_pidctl // 457
// NYI coalition // 458
@@ -564,7 +564,7 @@
DECL_TEMPLATE(darwin, guarded_writev_np); // 487
// NYI rename_ext // 488
// NYI mremap_encrypted // 489
-#endif /* DARWIN_VERS == DARWIN_10_10 */
+#endif /* DARWIN_VERS >= DARWIN_10_10 */
// Mach message helpers
DECL_TEMPLATE(darwin, mach_port_set_context);
diff --git a/coregrind/m_syswrap/syswrap-amd64-darwin.c b/coregrind/m_syswrap/syswrap-amd64-darwin.c
index 979fe36..d4e1cb5 100644
--- a/coregrind/m_syswrap/syswrap-amd64-darwin.c
+++ b/coregrind/m_syswrap/syswrap-amd64-darwin.c
@@ -464,7 +464,7 @@
out just the relevant parts. Hence: */
# if DARWIN_VERS <= DARWIN_10_7
Bool is_reuse = reuse != 0;
-# elif DARWIN_VERS == DARWIN_10_8 || DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
+# elif DARWIN_VERS > DARWIN_10_7
Bool is_reuse = (reuse & 0x20000 /* == WQ_FLAG_THREAD_REUSE */) != 0;
# else
# error "Unsupported Darwin version"
@@ -479,7 +479,7 @@
UWord magic_delta = 0;
# elif DARWIN_VERS == DARWIN_10_7 || DARWIN_VERS == DARWIN_10_8
UWord magic_delta = 0x60;
-# elif DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
+# elif DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10 || DARWIN_VERS == DARWIN_10_11
UWord magic_delta = 0xE0;
# else
# error "magic_delta: to be computed on new OS version"
diff --git a/coregrind/m_syswrap/syswrap-darwin.c b/coregrind/m_syswrap/syswrap-darwin.c
index 9eba933..38f823d 100644
--- a/coregrind/m_syswrap/syswrap-darwin.c
+++ b/coregrind/m_syswrap/syswrap-darwin.c
@@ -8284,7 +8284,7 @@
// GrP fixme handle sender-specified message trailer
// (but is this only for too-secure processes?)
// JRS 11 Nov 2014: this assertion is OK for <= 10.9 but fails on 10.10
-# if DARWIN_VERS == DARWIN_10_10
+# if DARWIN_VERS >= DARWIN_10_10
if (mh->msgh_bits & MACH_SEND_TRAILER) {
log_decaying("UNKNOWN mach_msg unhandled MACH_SEND_TRAILER option");
}
diff --git a/coregrind/m_syswrap/syswrap-x86-darwin.c b/coregrind/m_syswrap/syswrap-x86-darwin.c
index 45f0adf..89e0595 100644
--- a/coregrind/m_syswrap/syswrap-x86-darwin.c
+++ b/coregrind/m_syswrap/syswrap-x86-darwin.c
@@ -412,7 +412,7 @@
out just the relevant parts. Hence: */
# if DARWIN_VERS <= DARWIN_10_7
Bool is_reuse = reuse != 0;
-# elif DARWIN_VERS == DARWIN_10_8 || DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
+# elif DARWIN_VERS > DARWIN_10_7
Bool is_reuse = (reuse & 0x20000 /* == WQ_FLAG_THREAD_REUSE */) != 0;
# else
# error "Unsupported Darwin version"
@@ -427,7 +427,7 @@
UWord magic_delta = 0;
# elif DARWIN_VERS == DARWIN_10_7 || DARWIN_VERS == DARWIN_10_8
UWord magic_delta = 0x48;
-# elif DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
+# elif DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10 || DARWIN_VERS == DARWIN_10_11
UWord magic_delta = 0xB0;
# else
# error "magic_delta: to be computed on new OS version"
diff --git a/darwin15.supp b/darwin15.supp
new file mode 100644
index 0000000..e33c7f6
--- /dev/null
+++ b/darwin15.supp
@@ -0,0 +1,750 @@
+
+# Suppressions for Darwin 15.x / Mac OS X 10.11 El Capitan
+
+############################################
+## Leaks. For other stuff see below.
+
+{
+ OSX1011:1-Leak
+ Memcheck:Leak
+ match-leak-kinds: possible
+ fun:malloc_zone_?alloc
+ ...
+ fun:_read_images
+}
+
+#{
+# OSX1011:2-Leak
+# Memcheck:Leak
+# match-leak-kinds: definite
+# fun:?alloc
+# ...
+# fun:_ZN4dyld24initializeMainExecutableEv
+#}
+
+{
+ OSX1011:3-Leak
+ Memcheck:Leak
+ match-leak-kinds: definite
+ fun:malloc_zone_?alloc
+ fun:recursive_mutex_init
+ ...
+ fun:_os_object_init
+ fun:libdispatch_init
+ fun:libSystem_initializer
+ ...
+}
+
+#{
+# OSX1011:4-Leak
+# Memcheck:Leak
+# match-leak-kinds: reachable
+# fun:malloc_zone_?alloc
+# ...
+# fun:dyld_register_image_state_change_handler
+# ...
+#}
+
+{
+ OSX1011:5-Leak
+ Memcheck:Leak
+ match-leak-kinds: reachable
+ fun:?alloc
+ ...
+ fun:dyld_register_image_state_change_handler
+ ...
+}
+
+{
+ OSX1011:6-Leak
+ Memcheck:Leak
+ match-leak-kinds: reachable
+ fun:malloc_zone_?alloc
+ ...
+ fun:map_images_nolock
+ fun:map_hax_images
+ ...
+}
+
+{
+ OSX1011:7-Leak
+ Memcheck:Leak
+ match-leak-kinds: possible
+ fun:malloc_zone_?alloc
+ ...
+ fun:map_images_nolock
+ fun:map_hax_images
+ ...
+}
+
+{
+ OSX1011:8-Leak
+ Memcheck:Leak
+ match-leak-kinds: definite
+ fun:?alloc
+ ...
+ fun:libSystem_initializer
+ ...
+}
+
+{
+ OSX1011:9-Leak
+ Memcheck:Leak
+ match-leak-kinds: reachable
+ fun:malloc_zone_?alloc
+ ...
+ fun:libSystem_initializer
+ ...
+}
+
+{
+ OSX1011:10-Leak
+ Memcheck:Leak
+ match-leak-kinds: reachable
+ fun:?alloc
+ ...
+ fun:libSystem_initializer
+ ...
+}
+
+#{
+# OSX1011:11-Leak
+# Memcheck:Leak
+# match-leak-kinds: definite
+# fun:malloc
+# fun:currentlocale
+#}
+#
+#{
+# OSX1011:12-Leak
+# Memcheck:Leak
+# match-leak-kinds: possible
+# fun:malloc
+# fun:tzsetwall_basic
+# fun:_st_tzset_basic
+#}
+
+{
+ OSX1011:13-Leak
+ Memcheck:Leak
+ match-leak-kinds: reachable
+ fun:malloc_zone_memalign
+ ...
+ fun:_ZN4dyld24initializeMainExecutableEv
+ ...
+}
+
+{
+ OSX1011:14-Leak
+ Memcheck:Leak
+ match-leak-kinds: reachable
+ fun:?alloc
+ ...
+ fun:libSystem_atfork_child
+ ...
+}
+
+{
+ OSX1011:15-Leak
+ Memcheck:Leak
+ match-leak-kinds: reachable
+ fun:malloc
+ fun:__smakebuf
+ ...
+ fun:printf
+ ...
+}
+
+{
+ OSX1011:16-Leak
+ Memcheck:Leak
+ match-leak-kinds: possible
+ fun:?alloc
+ ...
+ fun:_read_images
+}
+
+{
+ OSX1011:17-Leak
+ Memcheck:Leak
+ match-leak-kinds: reachable
+ fun:?alloc
+ ...
+ fun:_read_images
+}
+
+{
+ OSX1011:18-Leak
+ Memcheck:Leak
+ match-leak-kinds: reachable
+ fun:malloc_zone_?alloc
+ ...
+ fun:_read_images
+}
+
+{
+ OSX1011:19-Leak
+ Memcheck:Leak
+ match-leak-kinds: possible
+ fun:malloc_zone_?alloc
+ ...
+ fun:*NX*Map*
+ fun:*NX*Map*
+}
+
+{
+ OSX1011:20-Leak
+ Memcheck:Leak
+ match-leak-kinds: indirect
+ fun:?alloc
+ ...
+ fun:libSystem_initializer
+ ...
+}
+
+
+############################################
+## Non-leak errors
+
+##{
+## OSX1011:CoreFoundation-1
+## Memcheck:Cond
+## obj:*CoreFoundation.framework*CoreFoundation*
+## obj:*CoreFoundation.framework*CoreFoundation*
+## obj:*CoreFoundation.framework*CoreFoundation*
+##}
+
+{
+ OSX1011:CoreFoundation-2
+ Memcheck:Cond
+ obj:*CoreFoundation.framework*CoreFoundation*
+ obj:*libdispatch.dylib*
+ obj:*libdispatch.dylib*
+}
+
+{
+ OSX1011:CoreFoundation-3
+ Memcheck:Cond
+ obj:*CoreFoundation.framework*CoreFoundation*
+ obj:*CoreFoundation.framework*CoreFoundation*
+ obj:*Foundation.framework*Foundation*
+}
+
+{
+ OSX1011:CoreFoundation-4
+ Memcheck:Cond
+ obj:*CoreFoundation.framework*CoreFoundation*
+ obj:*CoreFoundation.framework*CoreFoundation*
+ obj:*SystemConfiguration.framework*SystemConfiguration*
+}
+
+{
+ OSX1011:CoreFoundation-5
+ Memcheck:Cond
+ obj:*CoreFoundation.framework*CoreFoundation*
+ obj:*CoreFoundation.framework*CoreFoundation*
+ obj:*HIServices.framework*HIServices*
+}
+
+{
+ OSX1011:CoreFoundation-6
+ Memcheck:Cond
+ obj:*CoreFoundation.framework*CoreFoundation*
+ obj:*SystemConfiguration.framework*SystemConfiguration*
+ obj:*SystemConfiguration.framework*SystemConfiguration*
+}
+
+{
+ OSX1011:CoreFoundation-7
+ Memcheck:Cond
+ obj:*CoreFoundation.framework*CoreFoundation*
+ obj:*SystemConfiguration.framework*SystemConfiguration*
+ obj:*CoreFoundation.framework*CoreFoundation*
+}
+
+{
+ OSX1011:CoreFoundation-8
+ Memcheck:Cond
+ obj:*CoreFoundation.framework*CoreFoundation*
+ obj:*IOKit.framework*IOKit*
+}
+
+{
+ OSX1011:CoreFoundation-9
+ Memcheck:Cond
+ obj:*CoreFoundation.framework*CoreFoundation*
+ obj:*Foundation.framework*Foundation*
+ obj:*AppKit.framework*AppKit*
+}
+
+{
+ OSX1011:CoreFoundation-10
+ Memcheck:Cond
+ obj:*CoreFoundation.framework*CoreFoundation*
+ obj:*HIToolbox.framework*HIToolbox*
+ obj:*HIToolbox.framework*HIToolbox*
+}
+
+{
+ OSX1011:CoreFoundation-11
+ Memcheck:Cond
+ obj:*CoreFoundation.framework*CoreFoundation*
+ obj:*AE.framework*AE*
+ obj:*AE.framework*AE*
+}
+
+{
+ OSX1011:CoreFoundation-12
+ Memcheck:Cond
+ obj:*CoreFoundation.framework*CoreFoundation*
+ obj:*CoreFoundation.framework*CoreFoundation*
+ obj:*HIToolbox.framework*HIToolbox*
+}
+
+{
+ OSX1011:CoreFoundation-13
+ Memcheck:Cond
+ obj:*CoreFoundation.framework*CoreFoundation*
+ obj:*CoreFoundation.framework*CoreFoundation*
+ obj:*AE.framework*AE*
+}
+
+{
+ OSX1011:AppKit-1
+ Memcheck:Cond
+ obj:*AppKit.framework*AppKit*
+ obj:*AppKit.framework*AppKit*
+ obj:*AppKit.framework*AppKit*
+}
+
+{
+ OSX1011:AppKit-2
+ Memcheck:Cond
+ obj:*AppKit.framework*AppKit*
+ obj:*AppKit.framework*AppKit*
+ obj:*libdispatch.dylib*
+}
+
+#{
+# OSX1011:AppKit-3
+# Memcheck:Cond
+# obj:*AppKit.framework*AppKit*
+# obj:*libdispatch.dylib*
+# obj:*libdispatch.dylib*
+#}
+
+##{
+## OSX1011:AppKit-4
+## Memcheck:Cond
+## obj:*AppKit.framework*AppKit*
+## obj:*AppKit.framework*AppKit*
+## obj:*CoreFoundation.framework*CoreFoundation*
+##}
+
+{
+ OSX1011:AppKit-5
+ Memcheck:Cond
+ obj:*AppKit.framework*AppKit*
+ obj:*AppKit.framework*AppKit*
+ obj:*Foundation.framework*Foundation*
+}
+
+{
+ OSX1011:AppKit-6
+ Memcheck:Cond
+ obj:*AppKit.framework*AppKit*
+ obj:*Foundation.framework*Foundation*
+ obj:*AppKit.framework*AppKit*
+}
+
+{
+ OSX1011:AppKit-7
+ Memcheck:Cond
+ obj:*AppKit.framework*AppKit*
+ obj:*libdispatch.dylib*
+ obj:*libdispatch.dylib*
+}
+
+{
+ OSX1011:AppKit-8
+ Memcheck:Cond
+ obj:*AppKit.framework*AppKit*
+ obj:*Foundation.framework*Foundation*
+ obj:*Foundation.framework*Foundation*
+}
+
+{
+ OSX1011:ColorSync-1
+ Memcheck:Cond
+ obj:*ColorSync.framework*ColorSync*
+ obj:*ColorSync.framework*ColorSync*
+ obj:*ColorSync.framework*ColorSync*
+}
+
+#{
+# OSX1011:ColorSync-2
+# Memcheck:Value8
+# obj:*ColorSync.framework*ColorSync*
+# obj:*ColorSync.framework*ColorSync*
+# obj:*ColorSync.framework*ColorSync*
+#}
+
+{
+ OSX1011:CoreGraphics-1
+ Memcheck:Cond
+ obj:*CoreGraphics.framework*CoreGraphics*
+ obj:*CoreGraphics.framework*CoreGraphics*
+}
+
+#{
+# OSX1011:CoreGraphics-2
+# Memcheck:Value8
+# obj:*CoreGraphics.framework*CoreGraphics*
+# obj:*CoreGraphics.framework*CoreGraphics*
+# obj:*CoreGraphics.framework*CoreGraphics*
+#}
+
+{
+ OSX1011:CoreGraphics-3
+ Memcheck:Cond
+ obj:*CoreGraphics.framework*CoreGraphics*
+ obj:*CoreGraphics.framework*libRIP*
+ obj:*CoreGraphics.framework*libRIP*
+}
+
+#{
+# OSX1011:CoreGraphics-4
+# Memcheck:Cond
+# obj:*CoreGraphics.framework*CoreGraphics*
+# obj:*CoreGraphics.framework*CoreGraphics*
+# obj:*CoreGraphics.framework*libRIP*
+#}
+
+{
+ OSX1011:CoreGraphics-5
+ Memcheck:Cond
+ obj:*CoreGraphics.framework*CoreGraphics*
+ obj:*libdispatch.dylib*
+ obj:*libdispatch.dylib*
+}
+
+#{
+# OSX1011:CoreGraphics-6
+# Memcheck:Cond
+# obj:*CoreGraphics.framework*CoreGraphics*
+# obj:*CoreGraphics.framework*CoreGraphics*
+# obj:*HIToolbox.framework*HIToolbox*
+#}
+
+{
+ OSX1011:HIServices-1
+ Memcheck:Cond
+ obj:*HIServices.framework*HIServices*
+ obj:*HIToolbox.framework*HIToolbox*
+ obj:*HIToolbox.framework*HIToolbox*
+}
+
+{
+ OSX1011:LaunchServices-1
+ Memcheck:Cond
+ obj:*LaunchServices.framework*LaunchServices*
+ obj:*AppKit.framework*AppKit*
+ obj:*AppKit.framework*AppKit*
+}
+
+{
+ OSX1011:LaunchServices-2
+ Memcheck:Cond
+ obj:*LaunchServices.framework*LaunchServices*
+ obj:*libdispatch.dylib*
+ obj:*libdispatch.dylib*
+}
+
+{
+ OSX1011:QuartzCore-1
+ Memcheck:Cond
+ obj:*QuartzCore.framework*QuartzCore
+ obj:*QuartzCore.framework*QuartzCore
+ obj:*QuartzCore.framework*QuartzCore
+}
+
+#{
+# OSX1011:vImage-1
+# Memcheck:Cond
+# obj:*vImage.framework*vImage*
+# obj:*vImage.framework*vImage*
+# obj:*CoreGraphics.framework*CoreGraphics*
+#}
+
+{
+ OSX1011:zlib-C
+ Memcheck:Cond
+ obj:/usr/lib/libz.*dylib
+ obj:/usr/lib/libz.*dylib
+}
+
+{
+ OSX1011:zlib-8
+ Memcheck:Value8
+ obj:/usr/lib/libz.*dylib
+ obj:/usr/lib/libz.*dylib
+}
+
+#{
+# OSX1011:32bit:_libxpc_initializer
+# Memcheck:Cond
+# fun:_libxpc_initializer
+# fun:libSystem_initializer
+# fun:*ImageLoaderMachO*doModInitFunctions*
+#}
+
+{
+ OSX1011:dyld-1
+ Memcheck:Cond
+ fun:*ImageLoader*weakBind*
+ fun:*ImageLoader*link*
+ fun:*dyld*link*
+}
+
+{
+ OSX1011:dyld-2
+ Memcheck:Cond
+ fun:exit
+ obj:*libdyld*dylib*
+}
+
+{
+ OSX1011:libsystem_kernel-1
+ Memcheck:Cond
+ obj:*libsystem_kernel*dylib*
+ obj:*libsystem_kernel*dylib*
+ obj:*CoreFoundation.framework*CoreFoundation*
+}
+
+{
+ OSX1011:CoreServicesInternal-1
+ Memcheck:Cond
+ obj:*CoreServicesInternal.framework*CoreServicesInternal*
+ obj:*CoreServices.framework*LaunchServices*
+ obj:*CoreServices.framework*LaunchServices*
+}
+
+{
+ OSX1011:CoreServicesInternal-2
+ Memcheck:Cond
+ obj:*CoreServicesInternal.framework*CoreServicesInternal*
+ obj:*CoreServicesInternal.framework*CoreServicesInternal*
+ obj:*CoreServicesInternal.framework*CoreServicesInternal*
+}
+
+{
+ OSX1011:CoreServicesInternal-3
+ Memcheck:Cond
+ obj:*CoreServicesInternal.framework*CoreServicesInternal*
+ obj:*CoreServicesInternal.framework*CoreServicesInternal*
+ obj:*CoreFoundation.framework*CoreFoundation*
+}
+
+{
+ OSX1011:CoreServices-1
+ Memcheck:Cond
+ obj:*CoreServices.framework*LaunchServices*
+ obj:*CoreServices.framework*LaunchServices*
+ obj:*CoreServices.framework*LaunchServices*
+}
+
+##{
+## OSX1011:libsystem_pthread-1
+## Memcheck:Cond
+## obj:*libsystem_pthread*dylib*
+## obj:*ImageIO.framework*ImageIO*
+## obj:*ImageIO.framework*ImageIO*
+##}
+
+{
+ OSX1011:ApplicationServices-1
+ Memcheck:Cond
+ obj:*ApplicationServices.framework*ATS*
+ obj:*libsystem_pthread*dylib*
+ obj:*libsystem_platform*dylib*
+}
+
+{
+ OSX1011:HIToolbox-1
+ Memcheck:Cond
+ obj:*HIToolbox.framework*HIToolbox*
+ obj:*HIToolbox.framework*HIToolbox*
+ obj:*HIToolbox.framework*HIToolbox*
+}
+
+{
+ OSX1011:RawCamera-1
+ Memcheck:Cond
+ obj:*RawCamera.bundle*RawCamera*
+ obj:*libdispatch.dylib*
+ obj:*libdispatch.dylib*
+}
+
+##{
+## OSX1011:CoreImage-1
+## Memcheck:Cond
+## obj:*CoreImage.framework*CoreImage*
+## obj:*CoreImage.framework*CoreImage*
+## obj:*CoreImage.framework*CoreImage*
+##}
+
+##{
+## OSX1011:strncpy-1
+## Memcheck:Cond
+## fun:strncpy
+## obj:*CoreServicesInternal.framework*CoreServicesInternal
+## obj:*CoreServicesInternal.framework*CoreServicesInternal
+##}
+
+{
+ OSX1011:pthread_rwlock_init
+ Memcheck:Cond
+ fun:pthread_rwlock_init
+ obj:*ImageIO.framework*ImageIO*
+ obj:*ImageIO.framework*ImageIO*
+}
+
+{
+ OSX1011:CFBasicHash
+ Memcheck:Value8
+ fun:*CFBasicHash*
+ fun:*CF*
+}
+
+{
+ OSX1011:AppleIntelHD4000GraphicsGLDriver-1-Addr8
+ Memcheck:Addr8
+ obj:*AppleIntelHD4000GraphicsGLDriver.bundle*AppleIntelHD4000GraphicsGLDriver*
+ obj:*AppleIntelHD4000GraphicsGLDriver.bundle*AppleIntelHD4000GraphicsGLDriver*
+ obj:*AppleIntelHD4000GraphicsGLDriver.bundle*AppleIntelHD4000GraphicsGLDriver*
+}
+{
+ OSX1011:AppleIntelHD4000GraphicsGLDriver-1-Addr8
+ Memcheck:Addr4
+ obj:*AppleIntelHD4000GraphicsGLDriver.bundle*AppleIntelHD4000GraphicsGLDriver*
+ obj:*AppleIntelHD4000GraphicsGLDriver.bundle*AppleIntelHD4000GraphicsGLDriver*
+ obj:*AppleIntelHD4000GraphicsGLDriver.bundle*AppleIntelHD4000GraphicsGLDriver*
+}
+
+{
+ OSX1011:AppleIntelHD4000GraphicsGLDriver-2-Addr8
+ Memcheck:Addr8
+ fun:*platform_memmove*
+ obj:*AppleIntelHD4000GraphicsGLDriver.bundle*AppleIntelHD4000GraphicsGLDriver*
+ obj:*AppleIntelHD4000GraphicsGLDriver.bundle*AppleIntelHD4000GraphicsGLDriver*
+}
+{
+ OSX1011:AppleIntelHD4000GraphicsGLDriver-2-Addr2
+ Memcheck:Addr2
+ fun:*platform_memmove*
+ obj:*AppleIntelHD4000GraphicsGLDriver.bundle*AppleIntelHD4000GraphicsGLDriver*
+ obj:*AppleIntelHD4000GraphicsGLDriver.bundle*AppleIntelHD4000GraphicsGLDriver*
+}
+
+{
+ OSX1011:AppleIntelHD4000GraphicsGLDriver-3-Addr8
+ Memcheck:Addr8
+ fun:*platform_memmove*
+ obj:*AppleIntelHD4000GraphicsGLDriver.bundle*AppleIntelHD4000GraphicsGLDriver*
+ obj:*GLEngine.bundle*GLEngine*
+}
+{
+ OSX1011:AppleIntelHD4000GraphicsGLDriver-3-Addr2
+ Memcheck:Addr2
+ fun:*platform_memmove*
+ obj:*AppleIntelHD4000GraphicsGLDriver.bundle*AppleIntelHD4000GraphicsGLDriver*
+ obj:*GLEngine.bundle*GLEngine*
+}
+{
+ OSX1011:AppleIntelHD4000GraphicsGLDriver-3-Addr1
+ Memcheck:Addr1
+ fun:*platform_memmove*
+ obj:*AppleIntelHD4000GraphicsGLDriver.bundle*AppleIntelHD4000GraphicsGLDriver*
+ obj:*GLEngine.bundle*GLEngine*
+}
+
+{
+ OSX1011:AppleIntelHD4000GraphicsGLDriver-4
+ Memcheck:Addr8
+ fun:*platform_bzero*
+ obj:*AppleIntelHD4000GraphicsGLDriver.bundle*AppleIntelHD4000GraphicsGLDriver*
+ obj:*AppleIntelHD4000GraphicsGLDriver.bundle*AppleIntelHD4000GraphicsGLDriver*
+}
+
+{
+ OSX1011:AppleIntelHD4000GraphicsGLDriver-6-Addr8
+ Memcheck:Addr8
+ obj:*AppleIntelHD4000GraphicsGLDriver.bundle*AppleIntelHD4000GraphicsGLDriver*
+ obj:*AppleIntelHD4000GraphicsGLDriver.bundle*AppleIntelHD4000GraphicsGLDriver*
+ obj:*GLEngine.bundle*GLEngine*
+}
+{
+ OSX1011:AppleIntelHD4000GraphicsGLDriver-6-Addr4
+ Memcheck:Addr4
+ obj:*AppleIntelHD4000GraphicsGLDriver.bundle*AppleIntelHD4000GraphicsGLDriver*
+ obj:*AppleIntelHD4000GraphicsGLDriver.bundle*AppleIntelHD4000GraphicsGLDriver*
+ obj:*GLEngine.bundle*GLEngine*
+}
+
+{
+ OSX1011:AppleIntelHD4000GraphicsGLDriver-7
+ Memcheck:Addr4
+ obj:*AppleIntelHD4000GraphicsGLDriver.bundle*AppleIntelHD4000GraphicsGLDriver*
+ obj:*GLEngine.bundle*GLEngine*
+}
+
+{
+ OSX1011:OSAtomicAdd32
+ Memcheck:Addr4
+ fun:*OSAtomicAdd32*
+ obj:*IOAccelerator.framework*IOAccelerator*
+ obj:*GPUSupport.framework*GPUSupportMercury*
+}
+
+{
+ OSX1011:IOAccelerator-1
+ Memcheck:Addr4
+ obj:*IOAccelerator.framework*IOAccelerator*
+ obj:*GPUSupport.framework*GPUSupportMercury*
+}
+
+{
+ OSX1011:mach_msg_trap-1
+ Memcheck:Param
+ msg->desc.port.name
+ fun:mach_msg_trap
+ obj:*libsystem_kernel.dylib*
+ obj:*SystemConfiguration.framework*SystemConfiguration*
+}
+
+{
+ OSX1011:mach_msg_trap-2
+ Memcheck:Param
+ msg->desc.port.name
+ fun:mach_msg_trap
+ obj:*SystemConfiguration.framework*SystemConfiguration*
+ obj:*SystemConfiguration.framework*SystemConfiguration*
+}
+
+# See https://bugs.kde.org/show_bug.cgi?id=188572 about this; it's
+# unavoidable due to BSD setenv() semantics.
+{
+ macos-__setenv-leak-see-our-bug-188572
+ Memcheck:Leak
+ match-leak-kinds: definite
+ fun:malloc
+ fun:_owned_ptr_alloc
+ fun:setenv
+}
+
+# See https://bugs.kde.org/show_bug.cgi?id=196528
+{
+macos-__pthread_rwlock_init-see-our-bug-196528
+Memcheck:Cond
+fun:pthread_rwlock_init
+}
diff --git a/include/vki/vki-scnums-darwin.h b/include/vki/vki-scnums-darwin.h
index f6a7a61..44708e6 100644
--- a/include/vki/vki-scnums-darwin.h
+++ b/include/vki/vki-scnums-darwin.h
@@ -509,7 +509,7 @@
#if DARWIN_VERS < DARWIN_10_10
#define __NR_sem_getvalue VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(274)
-#elif DARWIN_VERS == DARWIN_10_10
+#elif DARWIN_VERS >= DARWIN_10_10
#define __NR_sysctlbyname VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(274)
#endif
@@ -733,6 +733,9 @@
#define __NR_MAXSYSCALL VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(456)
#elif DARWIN_VERS == DARWIN_10_10
#define __NR_MAXSYSCALL VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(490)
+#elif DARWIN_VERS == DARWIN_10_11
+// TODO Hackish, needs properly analysis
+#define __NR_MAXSYSCALL VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(490)
#else
#error unknown darwin version
#endif
diff --git a/shared/vg_replace_strmem.c b/shared/vg_replace_strmem.c
index 0f366bf..41e384d 100644
--- a/shared/vg_replace_strmem.c
+++ b/shared/vg_replace_strmem.c
@@ -204,7 +204,7 @@
//STRRCHR(VG_Z_DYLD, strrchr)
//STRRCHR(VG_Z_DYLD, rindex)
STRRCHR(VG_Z_LIBC_SONAME, strrchr)
-# if DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
+# if DARWIN_VERS >= DARWIN_10_9
STRRCHR(libsystemZucZddylib, strrchr)
# endif
@@ -245,7 +245,7 @@
# if DARWIN_VERS == DARWIN_10_9
STRCHR(libsystemZuplatformZddylib, _platform_strchr)
# endif
-# if DARWIN_VERS == DARWIN_10_10
+# if DARWIN_VERS >= DARWIN_10_10
/* _platform_strchr$VARIANT$Generic */
STRCHR(libsystemZuplatformZddylib, _platform_strchr$VARIANT$Generic)
STRCHR(libsystemZuplatformZddylib, _platform_strchr$VARIANT$Haswell)
@@ -432,7 +432,7 @@
#elif defined(VGO_darwin)
STRLEN(VG_Z_LIBC_SONAME, strlen)
-# if DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
+# if DARWIN_VERS >= DARWIN_10_9
STRLEN(libsystemZucZddylib, strlen)
# endif
#endif
@@ -506,7 +506,7 @@
#elif defined(VGO_darwin)
STRNCPY(VG_Z_LIBC_SONAME, strncpy)
-# if DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
+# if DARWIN_VERS >= DARWIN_10_9
STRNCPY(libsystemZucZddylib, strncpy)
# endif
@@ -585,7 +585,7 @@
#elif defined(VGO_darwin)
STRNCMP(VG_Z_LIBC_SONAME, strncmp)
-# if DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
+# if DARWIN_VERS >= DARWIN_10_9
STRNCMP(libsystemZuplatformZddylib, _platform_strncmp)
# endif
@@ -778,7 +778,7 @@
#elif defined(VGO_darwin)
STRCMP(VG_Z_LIBC_SONAME, strcmp)
-# if DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
+# if DARWIN_VERS >= DARWIN_10_9
STRCMP(libsystemZuplatformZddylib, _platform_strcmp)
# endif
@@ -810,7 +810,7 @@
MEMCHR(VG_Z_DYLD, memchr)
MEMCHR(libsystemZuplatformZddylib, _platform_memchr)
# endif
-# if DARWIN_VERS == DARWIN_10_10
+# if DARWIN_VERS >= DARWIN_10_10
MEMCHR(VG_Z_DYLD, memchr)
/* _platform_memchr$VARIANT$Generic */
MEMCHR(libsystemZuplatformZddylib, _platform_memchr$VARIANT$Generic)
@@ -1007,7 +1007,7 @@
MEMCMP(VG_Z_LD_SO_1, bcmp)
#elif defined(VGO_darwin)
-# if DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
+# if DARWIN_VERS >= DARWIN_10_9
MEMCMP(libsystemZuplatformZddylib, _platform_memcmp)
# endif
@@ -1152,7 +1152,7 @@
# endif
MEMMOVE(VG_Z_LIBC_SONAME, memmoveZDVARIANTZDsse3x) /* memmove$VARIANT$sse3x */
MEMMOVE(VG_Z_LIBC_SONAME, memmoveZDVARIANTZDsse42) /* memmove$VARIANT$sse42 */
-# if DARWIN_VERS == DARWIN_10_9 || DARWIN_VERS == DARWIN_10_10
+# if DARWIN_VERS >= DARWIN_10_9
/* _platform_memmove$VARIANT$Ivybridge */
MEMMOVE(libsystemZuplatformZddylib, ZuplatformZumemmoveZDVARIANTZDIvybridge)
# endif