From: Paul Floyd Date: Wed, 29 Oct 2025 10:20:22 +0000 (+0100) Subject: Darwin: gettaddrinfo suppressions and wildcard memmove redir X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b605996b4feb81d700d3b9e7b03996481c8f56aa;p=thirdparty%2Fvalgrind.git Darwin: gettaddrinfo suppressions and wildcard memmove redir --- diff --git a/darwin17.supp b/darwin17.supp index 996688654..a8bd90ef8 100644 --- a/darwin17.supp +++ b/darwin17.supp @@ -826,6 +826,7 @@ fun:pthread_rwlock_init { OSX1013:helgrind:_pthread_join Helgrind:Race + ... fun:_pthread_join } @@ -847,6 +848,89 @@ fun:pthread_rwlock_init fun:_pthread_body } +# various getaddrinfo suppressions +{ + OSC1013:helgrind:getaddrinfo + Helgrind:Race + ... + fun:getaddrinfo +} + +{ + OSX1013:helgrind:_fwalk + Helgrind:Race + fun:_fwalk +} + +{ + OSX1013:helgrind:exit + Helgrind:Race + fun:exit +} + +{ + OSX1013:helgrind:freeaddrinfo + Helgrind:Race + fun:freeaddrinfo +} + +# some of these have deep callstacks, this might not work +# with low values of --num-callers +{ + OSC1013:helgrind:si_addrinfo + Helgrind:Race + ... + fun:si_addrinfo +} + +{ + OSC1013:helgrind:file_addrinfo + Helgrind:Race + ... + fun:file_addrinfo +} + +{ + OSX1013:helgrind:xpc_dictionary_apply + Helgrind:Race + ... + fun:xpc_dictionary_apply +} + +{ + OSX1013:helgrind:cache_fill + Helgrind:Race + fun:cache_fill +} + +{ + OSX1013:helgrind:pthead_once + Helgrind:Race + ... + fun:pthread_once +} + +{ + OSX1013:helgrind:objc_destructInstance + Helgrind:Race + ... + fun:objc_destructInstance +} + +{ + OSX1013:helgrind:xpc_create_from_plist + Helgrind:Race + ... + fun:xpc_create_from_plist +} + +{ + OSX1013:helgrind:dispatch_once_f + Helgrind:Race + ... + fun:dispatch_once_f +} + { OSX1013:nanosleep drd:ConflictingAccess @@ -940,23 +1024,42 @@ fun:pthread_rwlock_init drd:ConflictingAccess fun:_pthread_body } + +# various getaddrinfo suppressions { OSX1013:exit drd:ConflictingAccess ... fun:exit } + { OSX1013:freeaddrinfo drd:ConflictingAccess fun:freeaddrinfo } + { OSX1013:getaddrinfo drd:ConflictingAccess ... fun:getaddrinfo } + +{ + OSX1013:drd:si_etaddrinfo + drd:ConflictingAccess + ... + fun:si_addrinfo +} + +{ + OSX1013:helgrind:nw_path_copy_interface_with_generation_internal + Helgrind:Race + ... + fun:nw_path_copy_interface_with_generation_internal +} + { OSX1013:cache_fill drd:ConflictingAccess @@ -984,3 +1087,65 @@ fun:pthread_rwlock_init drd:ConflictingAccess fun:_nc_table_* } + +{ + OSX1013:drd:xpc_dictionary_apply + drd:ConflictingAccess + ... + fun:xpc_dictionary_apply +} + +{ + OSX1013:drd:getaddrinfo + drd:ConflictingAccess + ... + fun:getaddrinfo +} + +{ + OSX1013:drd:xpc_create_from_plist + drd:ConflictingAccess + ... + fun:xpc_create_from_plist +} + +{ + OSX1013:helgrind:nw_path_copy_interface_with_generation_internal + drd:ConflictingAccess + ... + fun:nw_path_copy_interface_with_generation_internal +} + +{ + OSX1013:drd:object_dispose + drd:ConflictingAccess + ... + fun:object_dispose +} + +{ + OSX1013:drd:dispatch_once_f + drd:ConflictingAccess + ... + fun:dispatch_once_f +} + +{ + OSX1013:drd:objc_destructInstance + drd:ConflictingAccess + ... + fun:objc_destructInstance +} + +{ + OSX1013:drd:pthread_rwlock_unlock + drd:ConflictingAccess + fun:pthread_rwlock_unlock +} + +{ + OSX1013:drd:xpc_pipe_routine + drd:ConflictingAccess + ... + fun:xpc_pipe_routine +} diff --git a/shared/vg_replace_strmem.c b/shared/vg_replace_strmem.c index 2081c62b7..aaa409257 100644 --- a/shared/vg_replace_strmem.c +++ b/shared/vg_replace_strmem.c @@ -1431,8 +1431,8 @@ static inline void my_exit ( int x ) MEMMOVE(VG_Z_LIBC_SONAME, memmoveZDVARIANTZDsse3x) /* memmove$VARIANT$sse3x */ MEMMOVE(VG_Z_LIBC_SONAME, memmoveZDVARIANTZDsse42) /* memmove$VARIANT$sse42 */ # if DARWIN_VERS >= DARWIN_10_9 - /* _platform_memmove$VARIANT$Ivybridge */ - MEMMOVE(libsystemZuplatformZddylib, ZuplatformZumemmoveZDVARIANTZDIvybridge) + /* _platform_memmove$VARIANT$Ivybridge, Nehelem etc. */ + MEMMOVE(libsystemZuplatformZddylib, ZuplatformZumemmoveZDVARIANTZDZa) # endif #elif defined(VGO_solaris)