Darwin: remove support for old systems

Valgrind no longer builds on Darwin 11 / Mac OS X 10.7. So remove support
for Darwin 9 to Darwin 11 inclusive.
This commit is contained in:
Paul Floyd
2025-12-09 09:41:01 +01:00
parent eca0ea6e9a
commit 47e1fa5d26
4 changed files with 2 additions and 785 deletions

View File

@@ -47,7 +47,6 @@ SUPP_FILES = \
glibc-2.X-helgrind.supp \
glibc-2.2-LinuxThreads-helgrind.supp \
glibc-2.X-drd.supp \
darwin9.supp darwin9-drd.supp \
freebsd.supp freebsd-helgrind.supp freebsd-drd.supp \
darwin-legacy.supp darwin.supp \
darwin-drd.supp darwin-helgrind.supp \

View File

@@ -508,11 +508,7 @@ case "${host_os}" in
DARWIN_DRD_SUPP="darwin-drd.supp"
case "${kernel}" in
9.*)
DARWIN_DRD_SUPP="darwin9-drd.supp"
DEFAULT_SUPP="$srcdir/darwin-legacy.supp ${DEFAULT_SUPP}"
;;
1[0-6].*)
1[2-6].*)
DEFAULT_SUPP="$srcdir/darwin-legacy.supp ${DEFAULT_SUPP}"
;;
*)
@@ -522,18 +518,6 @@ case "${host_os}" in
case "${kernel}" in
9.*)
AC_MSG_RESULT([Darwin 9.x (${kernel}) / Mac OS X 10.5 Leopard])
DARWIN_VERS=$DARWIN_10_5
;;
10.*)
AC_MSG_RESULT([Darwin 10.x (${kernel}) / Mac OS X 10.6 Snow Leopard])
DARWIN_VERS=$DARWIN_10_6
;;
11.*)
AC_MSG_RESULT([Darwin 11.x (${kernel}) / Mac OS X 10.7 Lion])
DARWIN_VERS=$DARWIN_10_7
;;
12.*)
AC_MSG_RESULT([Darwin 12.x (${kernel}) / Mac OS X 10.8 Mountain Lion])
DARWIN_VERS=$DARWIN_10_8
@@ -560,7 +544,7 @@ case "${host_os}" in
;;
*)
AC_MSG_RESULT([unsupported (${darwin_platform} ${kernel})])
AC_MSG_ERROR([Valgrind works on Darwin 10.x-25.x (Mac OS X 10.6-10.11, macOS 10.12-10.13)])
AC_MSG_ERROR([Valgrind works on Darwin 10.x-25.x (Mac OS X 10.8-10.11, macOS 10.12-10.13)])
;;
esac

View File

@@ -1,469 +0,0 @@
# DRD suppressions for Darwin 9.x / Mac OS X 10.5 Leopard
#
# Suppression patterns for dyld, the dynamic loader.
#
{
drd-darwin-dyld-register-func-for-add-image
drd:MutexErr
fun:pthread_mutex_unlock
fun:_dyld_register_func_for_add_image
fun:__keymgr_initializer
fun:libSystem_initializer
}
{
drd-darwin-dyld-register-func-for-remove-image
drd:MutexErr
fun:pthread_mutex_unlock
fun:_dyld_register_func_for_remove_image
fun:__keymgr_initializer
fun:libSystem_initializer
}
{
drd-darwin-dyld-GlobalLockInitialize
drd:MutexErr
fun:pthread_mutex_init
fun:_Z24dyldGlobalLockInitializev
fun:_dyld_initializer
}
{
drd-darwin-dyld-bindLazySymbol
drd:ConflictingAccess
...
fun:_ZN4dyld14bindLazySymbolEPK11mach_headerPm
fun:stub_binding_helper_interface2
}
{
drd-darwin-dyld-addImage
drd:ConflictingAccess
fun:_ZN4dyld8addImageEP11ImageLoader
}
{
dyld-ImageLoader::link
drd:ConflictingAccess
...
fun:_ZN4dyld18notifyBatchPartialE17dyld_image_statesbPFPKcS0_jPK15dyld_image_infoE
fun:_ZN11ImageLoader4linkERKNS_11LinkContextEbbRKNS_10RPathChainE
fun:_ZN4dyld4linkEP11ImageLoaderbRKNS0_10RPathChainE
}
{
drd-darwin-dyld-ImageLoaderMachO::resolveUndefined
drd:ConflictingAccess
...
fun:_ZN16ImageLoaderMachO16resolveUndefinedERKN11ImageLoader11LinkContextEPK11macho_nlistbPPKS0_
}
{
drd-darwin-dyld-ImageLoaderMachO::findExportedSymbol
drd:ConflictingAccess
fun:_ZNK16ImageLoaderMachO18findExportedSymbolEPKcPKvbPPK11ImageLoader
fun:_ZNK11ImageLoader41findExportedSymbolInDependentImagesExceptEPKcPPKS_RS4_S4_S4_
fun:_ZNK11ImageLoader42findExportedSymbolInImageOrDependentImagesEPKcRKNS_11LinkContextEPPKS_
fun:dlsym
}
#
# Suppression patterns for libc, Darwin's C library.
#
{
drd-darwin-libc-cerror
drd:ConflictingAccess
...
fun:cerror
}
{
drd-darwin-libc-rand
drd:ConflictingAccess
fun:do_rand
}
{
drd-darwin-libc-vfprintf-1
drd:ConflictingAccess
fun:vfprintf_l
}
{
drd-darwin-libc-vfprintf-2
drd:ConflictingAccess
fun:__vfprintf
}
{
drd-darwin-libc-localeconv
drd:ConflictingAccess
fun:localeconv_l
}
{
drd-darwin-libc-fwrite
drd:ConflictingAccess
...
fun:fwrite$UNIX2003
}
{
drd-darwin-cxa-guard-acquire
drd:ConflictingAccess
obj:*
fun:__cxa_current_exception_type
fun:__cxa_guard_acquire
}
{
drd-darwin-cxa-guard-release
drd:ConflictingAccess
fun:__cxa_guard_release
}
{
drd-darwin-cxa-finalize
drd:MutexErr
fun:pthread_mutex_destroy
fun:__tcf_115
fun:__cxa_finalize
fun:exit
}
{
drd-darwin-atexit-register
drd:ConflictingAccess
fun:atexit_register
}
{
drd-darwin-opendir
drd:ConflictingAccess
fun:telldir$UNIX2003
fun:__opendir2$UNIX2003
fun:opendir$UNIX2003
}
{
drd-darwin-readdir
drd:ConflictingAccess
fun:readdir
}
{
drd-darwin-closedir
drd:ConflictingAccess
fun:closedir$UNIX2003
}
{
drd:darwin-ptrace
drd:ConflictingAccess
fun:ptrace
}
#
# Suppression patterns for libpthread, Darwin's POSIX threads implementation.
#
{
drd-darwin-pthread-create-1
drd:ConflictingAccess
obj:*
fun:thread_start
}
{
drd-darwin-pthread-create-2
drd:ConflictingAccess
...
fun:pthread_create*
}
{
drd-darwin-pthread-join-1
drd:ConflictingAccess
...
fun:pthread_join$UNIX2003
}
{
drd-darwin-pthread-exit
drd:ConflictingAccess
...
fun:_pthread_exit
}
{
drd-darwin-pthread-find-thread
drd:ConflictingAccess
fun:_pthread_find_thread
}
{
drd-darwin-pthread-spin-unlock
drd:ConflictingAccess
fun:spin_unlock
}
{
drd-darwin-pthread-testcancel
drd:ConflictingAccess
fun:_pthread_testcancel
}
{
drd-darwin-pthread-detach
drd:ConflictingAccess
...
fun:pthread_detach
}
{
drd-darwin-pthread-detach
drd:CondRaceErr
...
fun:pthread_detach
}
{
drd-darwin-pthread-kill
drd:ConflictingAccess
...
fun:pthread_kill
}
{
drd-darwin-pthread-free-pthread-onstack
drd:ConflictingAccess
fun:mig_dealloc_reply_port
fun:_pthread_free_pthread_onstack
}
{
drd-darwin-pthread-mach-thread-np
drd:ConflictingAccess
...
fun:pthread_mach_thread_np
}
{
drd-darwin-pthread-key-create
drd:ConflictingAccess
fun:pthread_key_create
}
#
# Suppression patterns for libobjc.
#
# It looks like the implementation of objc_msgSend uses another means than the
# POSIX threads library for locking. More information about messaging and
# objc_msgSend can be found here:
# http://devworld.apple.com/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtHowMessagingWorks.html
#
{
drd-darwin-objc-msgSend
drd:ConflictingAccess
...
fun:objc_msgSend
}
{
drd-darwin-objc-msgSend
drd:ConflictingAccess
...
fun:objc_sync_enter
}
#
# Suppression patterns for CoreFoundation.framework.
#
# Suppressions for NSObject methods. For more information about the NSObject
# class, see also
# http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSObject_Class/Reference/Reference.html
{
drd-darwin-NSObject-release
drd:ConflictingAccess
...
fun:-[NSObject release]
}
{
drd-darwin-NSObject-autorelease-1
drd:ConflictingAccess
...
fun:-[NSObject(NSObject) autorelease]
}
{
drd-darwin-NSObject-autorelease-2
drd:ConflictingAccess
fun:__NSAutoreleaseObject
}
{
drd-darwin-NSObject-NSDeallocateObject
drd:ConflictingAccess
fun:_internal_object_dispose
fun:NSDeallocateObject
}
{
drd-darwin-NSObject-retain
drd:ConflictingAccess
...
fun:-[NSObject retain]
}
{
drd-darwin-NSObject-retainCount
drd:ConflictingAccess
...
fun:-[NSObject retainCount]
}
{
drd-darwin-NSObject-NSDelayedPerforming-1
drd:ConflictingAccess
...
fun:+[NSObject(NSDelayedPerforming) cancelPreviousPerformRequestsWithTarget:selector:object:]
}
{
drd-darwin-NSObject-NSDelayedPerforming-2
drd:ConflictingAccess
...
fun:-[NSObject(NSDelayedPerforming) performSelector:withObject:afterDelay:]
}
{
drd-darwin-NSObject-NSDelayedPerforming-3
drd:ConflictingAccess
...
fun:-[NSObject(NSDelayedPerforming) performSelector:withObject:afterDelay:inModes:]
}
{
drd-darwin-NSObject-NSDelayedPerforming-4
drd:ConflictingAccess
...
fun:-[NSObject(NSThreadPerformAdditions) performSelector:onThread:withObject:waitUntilDone:modes:]
}
{
drd-darwin-NSObject-NSDelayedPerforming-5
drd:ConflictingAccess
...
fun:-[NSObject(NSThreadPerformAdditions) performSelectorOnMainThread:withObject:waitUntilDone:]
}
# Suppressions for methods of the NSThread class.
{
drd-NSThread-nq
drd:ConflictingAccess
...
fun:-[NSThread _nq:]
}
# Suppressions for methods of the NSLock class. See also
# http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSLock_Class/Reference/Reference.html
{
drd-darwin-NSLock-lock
drd:ConflictingAccess
fun:-[NSLock lock]
}
{
drd-darwin-NSLock-unlock
drd:ConflictingAccess
fun:-[NSLock unlock]
}
# Suppressions for NSCondition methods.
{
drd-darwin-NSConditionLock-lock
drd:ConflictingAccess
fun:-[NSCondition lock]
}
# Suppressions for NSConditionLock methods.
{
drd-darwin-NSConditionLock-lockWhenCondition:beforeDate:
drd:ConflictingAccess
fun:-[NSConditionLock lockWhenCondition:beforeDate:]
}
# NSExtraRefCount returns the specified object's reference count, and
# NSDecrementExtraRefCountWasZero decrements the specified object's reference
# count.
# See also http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Functions/Reference/reference.html
{
drd-darwin-NSExtraRefCount
drd:ConflictingAccess
...
fun:NSExtraRefCount
}
{
drd-darwin-NSDecrementExtraRefCountWasZero
drd:ConflictingAccess
...
fun:NSDecrementExtraRefCountWasZero
}
# For more information about key-value observing, see also the NSKeyValueObserving Protocol Reference:
# http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Protocols/NSKeyValueObserving_Protocol/Reference/Reference.html
{
drd-darwin-NSKVONotify
drd:ConflictingAccess
...
fun:NSKVONotify
}
{
drd-darwin-NSKVONotifyingEnableForInfoAndKey
drd:ConflictingAccess
...
fun:_NSKVONotifyingEnableForInfoAndKey
}
# From the NSRunLoop class reference:
# Warning: The NSRunLoop class is generally not considered to be thread-safe
# and its methods should only be called within the context of the current
# thread. You should never try to call the methods of an NSRunLoop object
# running in a different thread, as doing so might cause unexpected results.
# See also the NSRunLoop Class Reference:
# http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSRunLoop_Class/Reference/Reference.html
# {
# drd-darwin-CFRunLoop*
# drd:ConflictingAccess
# ...
# fun:CFRunLoop*
# }
# See also the CFBag reference:
# http://developer.apple.com/documentation/CoreFoundation/Reference/CFBagRef/Reference/reference.html
# {
# drd-darwin-CFBag*
# drd:ConflictingAccess
# fun:CFBag*
# }
# Suppression patterns for the memory allocation functions in WTF.
{
drd-WTF::fastCalloc
drd:ConflictingAccess
...
fun:_ZN3WTF10fastCallocEmm
}
{
drd-WTF::fastMalloc
drd:ConflictingAccess
...
fun:_ZN3WTF10fastMallocEm
}
{
drd-WTF::fastFree
drd:ConflictingAccess
...
fun:_ZN3WTF8fastFreeEPv
}
# Suppression patterns for the string manipulation functions in WebCore.
{
drd-WebCore::StringImpl::init
drd:ConflictingAccess
...
fun:_ZN7WebCore10StringImpl4initEPKcj
}
{
drd-WebCore::StringImpl::append
drd:ConflictingAccess
...
fun:_ZN7WebCore10StringImpl6appendEPKtj
}
{
drd-WebCore::CString::init
drd:ConflictingAccess
...
fun:_ZN7WebCore7CString4initEPKcj
}
# Suppression patterns for the text encoding functions in WebCore.
{
drd-WebCore::WebCore::TextCodec::~TextCodec()
drd:ConflictingAccess
fun:_ZN7WebCore9TextCodecD2Ev
}
{
drd-WebCore::TextCodecICU::TextCodecICU
drd:ConflictingAccess
fun:_ZN7WebCore12TextCodecICUC2ERKNS_12TextEncodingE
}
{
drd-WebCore::TextCodecICU::~TextCodecICU
drd:ConflictingAccess
fun:_ZN7WebCore12TextCodecICUD0Ev
}

View File

@@ -1,297 +0,0 @@
# Suppressions for Darwin 9.x / Mac OS X 10.5 Leopard
##----------------------------------------------------------------------##
# Memcheck
##----------------------------------------------------------------------##
{
mach_msg_trap-1
Memcheck:Param
mach_msg(msg.msgh_remote_port)
fun:mach_msg_trap
obj:/System/Library/Frameworks/CoreFoundation*
obj:/System/Library/Frameworks/ApplicationServices*
}
{
mach_msg_trap-2
Memcheck:Param
mach_msg(msg.msgh_remote_port)
fun:mach_msg_trap
obj:/System/Library/Frameworks/CoreFoundation*
obj:/System/Library/Frameworks/CoreServices*
}
{
mach_msg_trap-3
Memcheck:Param
mach_msg(msg.msgh_remote_port)
fun:mach_msg_trap
obj:/System/Library/Frameworks/CoreFoundation*
obj:/System/Library/Frameworks/Carbon*
}
{
mach_msg_trap-4
Memcheck:Param
mach_msg(msg.msgh_remote_port)
fun:mach_msg_trap
obj:/System/Library/Frameworks/CoreFoundation*
obj:/System/Library/Frameworks/CoreFoundation*
}
{
mach_msg_trap-5
Memcheck:Param
mach_msg(msg.msgh_remote_port)
fun:mach_msg_trap
obj:/System/Library/Frameworks/CoreFoundation*
obj:/System/Library/Frameworks/AppKit*
}
{
macos-Cond-1
Memcheck:Cond
fun:GetVariationInfoFromName
obj:/System/Library/Frameworks/ApplicationServices*
obj:/System/Library/Frameworks/ApplicationServices*
}
{
macos-Cond-2
Memcheck:Cond
fun:*PMMutex*Lock*
obj:/System/Library/Frameworks/ApplicationServices*
obj:/System/Library/Frameworks/ApplicationServices*
}
{
macos-Cond-3
Memcheck:Cond
fun:sseCGSBlendXXXX8888
obj:/System/Library/Frameworks/ApplicationServices*
obj:/System/Library/Frameworks/ApplicationServices*
}
{
macos-Cond-4
Memcheck:Cond
fun:*CASettingsStorage*RefreshSettings*
obj:/System/Library/Frameworks/CoreAudio*
obj:/System/Library/Frameworks/CoreAudio*
}
{
macos-Cond-5
Memcheck:Cond
fun:gle*
obj:/System/Library/Frameworks/OpenGL*
obj:/System/Library/Frameworks/OpenGL*
}
{
macos-Cond-6
Memcheck:Cond
fun:pthread_rwlock_init$UNIX2003
fun:main
}
# afaict this is legit. Might be caused by setenv("VAR=")
# where the value string is empty (not sure)
{
macos-Cond-7
Memcheck:Cond
fun:__setenv
fun:putenv*
}
{
macos-futimes-1
Memcheck:Param
futimes(tvp[1])
fun:futimes
obj:/usr/lib/libSystem*
obj:/usr/lib/libSystem*
}
{
macos-vsyslog-hole
Memcheck:Param
socketcall.sendto(msg)
fun:sendto$NOCANCEL$UNIX2003
fun:vsyslog
}
# Still-reachable memory.
# I chopped this one off at libSystem_initializer, there were more frames.
{
darwin-still-reachable-1
Memcheck:Leak
fun:calloc
fun:dwarf2_unwind_dyld_add_image_hook
fun:_ZN4dyld19registerAddCallbackEPFvPK11mach_headerlE
fun:_dyld_register_func_for_add_image
fun:__keymgr_initializer
fun:libSystem_initializer
}
# I chopped this one off at libSystem_initializer, there were more frames.
{
darwin-still-reachable-2
Memcheck:Leak
fun:malloc
fun:get_or_create_key_element
fun:_keymgr_get_and_lock_processwide_ptr_2
fun:dwarf2_unwind_dyld_add_image_hook
fun:_ZN4dyld19registerAddCallbackEPFvPK11mach_headerlE
fun:_dyld_register_func_for_add_image
fun:__keymgr_initializer
fun:libSystem_initializer
}
{
darwin-still-reachable-3
Memcheck:Leak
fun:malloc
fun:__smakebuf
fun:__swsetup
fun:__sfvwrite
fun:puts
}
# Genuine leaks.
# 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
fun:malloc_zone_malloc
fun:__setenv
fun:setenv$UNIX2003
}
{
macos-localeconv-leak
Memcheck:Leak
fun:malloc
fun:localeconv_l
fun:__vfprintf
fun:vsnprintf
}
{
macos-TFontFeatures::TFontFeatures(unsigned long)-uninitialised-stack-val
Memcheck:Cond
fun:_ZN13TFontFeaturesC2Em
fun:_ZNK9TBaseFont12CopyFeaturesEv
}
# Conditional jump or move depends on uninitialised value(s)
# at 0x4E5CD59: _DPSNextEvent (in /System/Library/Frameworks
# /AppKit.framework/Versions/C/AppKit)
# by 0x4E5BF87: -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
# (in /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit)
# by 0x4E54F9E: -[NSApplication run] (in /System/Library/Frameworks
# /AppKit.framework/Versions/C/AppKit)
# Uninitialised value was created by a stack allocation
# at 0x4E5C450: _DPSNextEvent (in /System/Library/Frameworks
# /AppKit.framework/Versions/C/AppKit)
{
macos-_DPSNextEvent-stack-allocated-uninit
Memcheck:Cond
fun:_DPSNextEvent
}
##----------------------------------------------------------------------##
# Helgrind
##----------------------------------------------------------------------##
# These ones were necessary to give no errors on a tiny non-threaded
# program. I don't know if they're real problems or false positives (njn).
# keymgr seems to deliberately do some bogus actions, and if they are bogus,
# it passes the error codes back to the caller.
{
__keymgr_initializer lock failed
Helgrind:PthAPIerror
fun:pthread_mutex_lock
fun:_dyld_register_func_for_*_image
fun:__keymgr_initializer
fun:libSystem_initializer
}
{
__keymgr_initializer unlock failed
Helgrind:PthAPIerror
fun:pthread_mutex_unlock
fun:_dyld_register_func_for_*_image
fun:__keymgr_initializer
fun:libSystem_initializer
}
{
__keymgr_initializer bogus unlock
Helgrind:UnlockBogus
fun:pthread_mutex_unlock
fun:_dyld_register_func_for_*_image
fun:__keymgr_initializer
fun:libSystem_initializer
}
# These ones were necessary to give no errors on a tiny threaded program.
# I don't know if they're real problems or false positives (njn).
#{
# helgrind-darwinlibc-nuke-everything-in-dyld
# Helgrind:Race
# obj:/usr/lib/dyld
#}
{
helgrind-darwinlibc-nuke-everything-in-libSystem.B.dylib
Helgrind:Race
obj:/usr/lib/libSystem.B.dylib
}
# This would be better as "fun:\?\?\?" but string matching doesn't seem to
# allow escaping meta-chars.
#
# This is very bad .. not only will it hide races in any
# un-identified piece of code, the ??? also matches any 3-char
# function name.
{
helgrind-darwinlibc-nuke-everything-in-???-(unknown-code)
Helgrind:Race
fun:???
}
{
helgrind-darwinlibc--mythread_wrapper-*thread*start*
Helgrind:Race
fun:mythread_wrapper
fun:*thread*start*
}
{
helgrind-darwinlibc--pthread_create_WRK-pthread_create
Helgrind:Race
fun:pthread_create_WRK
fun:pthread_create
}
# Thread #9: Bug in libpthread: recursive write lock granted on
# mutex/wrlock which does not support recursion
# at 0x18696: pthread_cond_wait* (hg_intercepts.c:655)
# by 0x2300B8: pthread_rwlock_wrlock$UNIX2003 (in /usr/lib/libSystem.B.dylib)
# by 0x18F41: pthread_rwlock_wrlock* (hg_intercepts.c:1177)
#
# no idea what this is about
#
{
helgrind-darwin9--pthread-rwlock-kludgery
Helgrind:Misc
fun:pthread_cond_wait*
fun:pthread_rwlock_*lock*
fun:pthread_rwlock_*lock*
}