From: Paul Floyd Date: Wed, 24 Dec 2025 16:36:11 +0000 (+0100) Subject: Bug 513636 - Support macOS 12.0 (Monterey) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bd417daf8b5a615ae63250b28fda1b94caf2f493;p=thirdparty%2Fvalgrind.git Bug 513636 - Support macOS 12.0 (Monterey) Intel only for the moment. --- diff --git a/configure.ac b/configure.ac index 528e44b300..bca2b19020 100644 --- a/configure.ac +++ b/configure.ac @@ -554,6 +554,10 @@ case "${host_os}" in AC_MSG_RESULT([Darwin 20.x (${kernel}) / macOS 11 Big Sur]) DARWIN_VERS=$DARWIN_11_00 ;; + 21.*) + AC_MSG_RESULT([Darwin 21.x (${kernel}) / macOS 12 Monterey]) + DARWIN_VERS=$DARWIN_12_00 + ;; *) AC_MSG_RESULT([unsupported (${darwin_platform} ${kernel})]) AC_MSG_ERROR([Valgrind works on Darwin 12.x-19.x (Mac OS X 10.8-10.11, macOS 10.12-10.15)]) diff --git a/coregrind/m_syswrap/priv_syswrap-darwin.h b/coregrind/m_syswrap/priv_syswrap-darwin.h index f30136e291..f80b007fae 100644 --- a/coregrind/m_syswrap/priv_syswrap-darwin.h +++ b/coregrind/m_syswrap/priv_syswrap-darwin.h @@ -672,6 +672,10 @@ DECL_TEMPLATE(darwin, task_read_for_pid); // 539 DECL_TEMPLATE(darwin, ulock_wait2); // 544 // NYI proc_info_extended_id // 545 #endif +#if DARWIN_VERS >= DARWIN_12_00 +// NYI tracker_action // 546 +// NYI debug_syscall_reject // 547 +#endif // Mach message helpers DECL_TEMPLATE(darwin, mach_port_set_context); diff --git a/coregrind/m_syswrap/syswrap-darwin.c b/coregrind/m_syswrap/syswrap-darwin.c index 9d8ba22a3e..2784105af3 100644 --- a/coregrind/m_syswrap/syswrap-darwin.c +++ b/coregrind/m_syswrap/syswrap-darwin.c @@ -77,6 +77,12 @@ typedef HChar name_t[BOOTSTRAP_MAX_NAME_LEN]; typedef uint64_t mig_addr_t; +// Apple started using more inclusive language in Xcode 12+ and macOS 12+ +#if !defined(HOST_IO_MAIN_PORT) +#define HOST_IO_MAIN_PORT HOST_IO_MASTER_PORT +#endif + + // Saved ports static mach_port_t vg_host_port = 0; @@ -5566,8 +5572,8 @@ PRE(host_get_special_port) PRINT("host_get_special_port(%s, HOST_PRIV_PORT)", name_for_port(MACH_REMOTE)); break; - case HOST_IO_MASTER_PORT: - PRINT("host_get_special_port(%s, HOST_IO_MASTER_PORT)", + case HOST_IO_MAIN_PORT: + PRINT("host_get_special_port(%s, HOST_IO_MAIN_PORT)", name_for_port(MACH_REMOTE)); break; // Not provided by kernel @@ -5628,7 +5634,7 @@ POST(host_get_special_port) case HOST_PRIV_PORT: assign_port_name(reply->port.name, "priv-%p"); break; - case HOST_IO_MASTER_PORT: + case HOST_IO_MAIN_PORT: assign_port_name(reply->port.name, "io-master-%p"); break; // Not provided by kernel @@ -11212,6 +11218,14 @@ PRE(objc_bp_assist_cfg_np) #endif /* DARWIN_VERS >= DARWIN_11_00 */ +/* --------------------------------------------------------------------- + Added for macOS 12.0 (Monterey) + ------------------------------------------------------------------ */ + +#if DARWIN_VERS >= DARWIN_12_00 + +#endif /* DARWIN_VERS >= DARWIN_12_00 */ + /* --------------------------------------------------------------------- syscall tables ------------------------------------------------------------------ */ @@ -11863,7 +11877,10 @@ const SyscallTableEntry ML_(syscall_table)[] = { MACX_(__NR_ulock_wait2, ulock_wait2), // 544 // _____(__NR_proc_info_extended_id), // 545 #endif - +#if DARWIN_VERS >= DARWIN_12_00 +// _____(__NR_tracker_action), // 546 +// _____(__NR_debug_syscall_reject), // 547 +#endif MACX_(__NR_darwin_fake_sigreturn, fake_sigreturn) }; diff --git a/darwin.supp b/darwin.supp index 1e05044fa9..b53ea93596 100644 --- a/darwin.supp +++ b/darwin.supp @@ -796,6 +796,8 @@ fun:_mh_execute_header } +# FIXME PJF all these Addr* issues looks like problems with memory mapping + { macOS1100:_dyld_start Memcheck:Addr8 @@ -823,3 +825,24 @@ fun:_dyld_start } +{ + macOS1200:#dyld4::ProcessConfig::ProcessConfig(dyld4::KernelArgs const*, dyld4::SyscallDelegate&) + Memcheck:Addr1 + ... + fun:_ZN5dyld413ProcessConfigC2EPKNS_10KernelArgsERNS_15SyscallDelegateE +} + +{ + macOS1200:#dyld4::ProcessConfig::ProcessConfig(dyld4::KernelArgs const*, dyld4::SyscallDelegate&) + Memcheck:Addr8 + ... + fun:_ZN5dyld413ProcessConfigC2EPKNS_10KernelArgsERNS_15SyscallDelegateE +} + +{ + macOS1200:#dyld4::ProcessConfig::ProcessConfig(dyld4::KernelArgs const*, dyld4::SyscallDelegate&) + Memcheck:Addr4 + ... + fun:_ZN5dyld413ProcessConfigC2EPKNS_10KernelArgsERNS_15SyscallDelegateE +} + diff --git a/include/vki/vki-scnums-darwin.h b/include/vki/vki-scnums-darwin.h index 89f7fd3869..d6cfe56e60 100644 --- a/include/vki/vki-scnums-darwin.h +++ b/include/vki/vki-scnums-darwin.h @@ -884,6 +884,11 @@ #define __NR_proc_info_extended_id VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(545) #endif +#if DARWIN_VERS >= DARWIN_12_00 +#define __NR_tracker_action VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(546) +#define __NR_debug_syscall_reject VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(547) +#endif + #define __NR_darwin_fake_sigreturn VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(1000) #endif diff --git a/massif/tests/alloc-fns-A.vgtest b/massif/tests/alloc-fns-A.vgtest index ba3e87d196..09f7295576 100644 --- a/massif/tests/alloc-fns-A.vgtest +++ b/massif/tests/alloc-fns-A.vgtest @@ -7,5 +7,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/alloc-fns-B.vgtest b/massif/tests/alloc-fns-B.vgtest index 2456604c6f..f00c768b5a 100644 --- a/massif/tests/alloc-fns-B.vgtest +++ b/massif/tests/alloc-fns-B.vgtest @@ -7,5 +7,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/basic.vgtest b/massif/tests/basic.vgtest index 0a3bc1054c..fc38581752 100644 --- a/massif/tests/basic.vgtest +++ b/massif/tests/basic.vgtest @@ -7,5 +7,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/basic2.vgtest b/massif/tests/basic2.vgtest index 950b57e5b8..97442dfaec 100644 --- a/massif/tests/basic2.vgtest +++ b/massif/tests/basic2.vgtest @@ -7,5 +7,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/big-alloc.vgtest b/massif/tests/big-alloc.vgtest index b2520b997e..0e9e732186 100644 --- a/massif/tests/big-alloc.vgtest +++ b/massif/tests/big-alloc.vgtest @@ -7,5 +7,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/bug469146.vgtest b/massif/tests/bug469146.vgtest index 2004bf2688..ad5408347e 100644 --- a/massif/tests/bug469146.vgtest +++ b/massif/tests/bug469146.vgtest @@ -10,5 +10,7 @@ vgopts: --ignore-fn="allocBuckets(void*, unsigned int)" --ignore-fn=map_images_n vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | sed 's/gcc[0-9]*/gcc/' | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/culling1.stderr.exp b/massif/tests/culling1.stderr.exp index eaa4e72944..859c840a15 100644 --- a/massif/tests/culling1.stderr.exp +++ b/massif/tests/culling1.stderr.exp @@ -44,6 +44,7 @@ Massif: 20: objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc stderr_filter: filter_verbose cleanup: rm massif.out diff --git a/massif/tests/culling2.vgtest b/massif/tests/culling2.vgtest index a5b4771a71..b9bfe81d16 100644 --- a/massif/tests/culling2.vgtest +++ b/massif/tests/culling2.vgtest @@ -7,5 +7,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc stderr_filter: filter_verbose cleanup: rm massif.out diff --git a/massif/tests/custom_alloc.vgtest b/massif/tests/custom_alloc.vgtest index 6db7e483b1..07e5ad18c1 100644 --- a/massif/tests/custom_alloc.vgtest +++ b/massif/tests/custom_alloc.vgtest @@ -7,5 +7,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/deep-A.vgtest b/massif/tests/deep-A.vgtest index cd80c108da..5d90b8a65d 100644 --- a/massif/tests/deep-A.vgtest +++ b/massif/tests/deep-A.vgtest @@ -7,5 +7,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/deep-B.stderr.exp b/massif/tests/deep-B.stderr.exp index f3fd39d2ae..56f1339f3c 100644 --- a/massif/tests/deep-B.stderr.exp +++ b/massif/tests/deep-B.stderr.exp @@ -51,6 +51,7 @@ Massif: 20: objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/deep-C.stderr.exp b/massif/tests/deep-C.stderr.exp index 154c757c29..7402601ea7 100644 --- a/massif/tests/deep-C.stderr.exp +++ b/massif/tests/deep-C.stderr.exp @@ -54,6 +54,7 @@ Massif: 20: objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc stderr_filter: filter_verbose post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/deep-D.vgtest b/massif/tests/deep-D.vgtest index d669fdf9a2..59f4ae09ba 100644 --- a/massif/tests/deep-D.vgtest +++ b/massif/tests/deep-D.vgtest @@ -7,5 +7,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ../../tests/filter_libc | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/ignored.vgtest b/massif/tests/ignored.vgtest index 805a36eb43..7b9fa41205 100644 --- a/massif/tests/ignored.vgtest +++ b/massif/tests/ignored.vgtest @@ -8,5 +8,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/ignoring.vgtest b/massif/tests/ignoring.vgtest index c3d7a13658..9faf24d82f 100644 --- a/massif/tests/ignoring.vgtest +++ b/massif/tests/ignoring.vgtest @@ -7,5 +7,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/insig.vgtest b/massif/tests/insig.vgtest index ba307adabc..de1bc0bceb 100644 --- a/massif/tests/insig.vgtest +++ b/massif/tests/insig.vgtest @@ -8,5 +8,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/long-names.vgtest b/massif/tests/long-names.vgtest index 09ce4f507f..d05336f1e5 100644 --- a/massif/tests/long-names.vgtest +++ b/massif/tests/long-names.vgtest @@ -7,5 +7,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/long-time.vgtest b/massif/tests/long-time.vgtest index d7d9ead290..cb0215a465 100644 --- a/massif/tests/long-time.vgtest +++ b/massif/tests/long-time.vgtest @@ -7,5 +7,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/new-cpp.vgtest b/massif/tests/new-cpp.vgtest index 2cc809cd19..19148c705c 100644 --- a/massif/tests/new-cpp.vgtest +++ b/massif/tests/new-cpp.vgtest @@ -9,5 +9,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | sed 's/gcc[0-9]*/gcc/' | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/null.vgtest b/massif/tests/null.vgtest index 7f9555bf0e..b6396675fe 100644 --- a/massif/tests/null.vgtest +++ b/massif/tests/null.vgtest @@ -7,5 +7,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/one.vgtest b/massif/tests/one.vgtest index d6a61dfa40..29b24d4c3b 100644 --- a/massif/tests/one.vgtest +++ b/massif/tests/one.vgtest @@ -7,5 +7,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/overloaded-new.vgtest b/massif/tests/overloaded-new.vgtest index 969d9791fd..e99ce8b645 100644 --- a/massif/tests/overloaded-new.vgtest +++ b/massif/tests/overloaded-new.vgtest @@ -10,5 +10,7 @@ vgopts: --ignore-fn="allocBuckets(void*, unsigned int)" --ignore-fn=map_images_n vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | sed 's/gcc[0-9]*/gcc/' | ./filter_new_aligned | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/peak.vgtest b/massif/tests/peak.vgtest index c4f79dfff3..df2403e100 100644 --- a/massif/tests/peak.vgtest +++ b/massif/tests/peak.vgtest @@ -7,5 +7,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/peak2.stderr.exp b/massif/tests/peak2.stderr.exp index 8ebb43667a..8b34572f27 100644 --- a/massif/tests/peak2.stderr.exp +++ b/massif/tests/peak2.stderr.exp @@ -44,6 +44,7 @@ Massif: 20: objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" stderr_filter: filter_verbose +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/realloc.stderr.exp b/massif/tests/realloc.stderr.exp index 180e3ec8e7..483c1dbe07 100644 --- a/massif/tests/realloc.stderr.exp +++ b/massif/tests/realloc.stderr.exp @@ -44,6 +44,7 @@ Massif: 20: objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" stderr_filter: filter_verbose +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print --threshold=0 massif.out | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/thresholds_0_0.vgtest b/massif/tests/thresholds_0_0.vgtest index 4334d036ea..49c4553a17 100644 --- a/massif/tests/thresholds_0_0.vgtest +++ b/massif/tests/thresholds_0_0.vgtest @@ -7,5 +7,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out --threshold=0 | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/thresholds_0_10.vgtest b/massif/tests/thresholds_0_10.vgtest index 83d05b5650..a87b7efe7f 100644 --- a/massif/tests/thresholds_0_10.vgtest +++ b/massif/tests/thresholds_0_10.vgtest @@ -7,5 +7,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out --threshold=10 | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/thresholds_10_0.vgtest b/massif/tests/thresholds_10_0.vgtest index f0c38526b2..bc1d6fad42 100644 --- a/massif/tests/thresholds_10_0.vgtest +++ b/massif/tests/thresholds_10_0.vgtest @@ -7,5 +7,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out --threshold=0 | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/thresholds_10_10.vgtest b/massif/tests/thresholds_10_10.vgtest index 4af556954e..77e87611e0 100644 --- a/massif/tests/thresholds_10_10.vgtest +++ b/massif/tests/thresholds_10_10.vgtest @@ -7,6 +7,8 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out --threshold=10 | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/thresholds_5_0.vgtest b/massif/tests/thresholds_5_0.vgtest index de8bf93f22..729f84f998 100644 --- a/massif/tests/thresholds_5_0.vgtest +++ b/massif/tests/thresholds_5_0.vgtest @@ -7,6 +7,8 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out --threshold=0 | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/thresholds_5_10.vgtest b/massif/tests/thresholds_5_10.vgtest index 895fe2f1c4..9176d7ccd0 100644 --- a/massif/tests/thresholds_5_10.vgtest +++ b/massif/tests/thresholds_5_10.vgtest @@ -7,6 +7,8 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out --threshold=10 | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/zero1.vgtest b/massif/tests/zero1.vgtest index 2fe02a6a36..d8ebb2f487 100644 --- a/massif/tests/zero1.vgtest +++ b/massif/tests/zero1.vgtest @@ -7,6 +7,8 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print --threshold=0 massif.out | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/massif/tests/zero2.vgtest b/massif/tests/zero2.vgtest index 933f6a3455..27079d64ed 100644 --- a/massif/tests/zero2.vgtest +++ b/massif/tests/zero2.vgtest @@ -7,5 +7,7 @@ vgopts: --alloc-fn=_xpc_malloc --ignore-fn=_xpc_dictionary_insert --ignore-fn=ma vgopts: --ignore-fn="_NXMapRehash(_NXMapTable*)" --ignore-fn=arc4_init --ignore-fn="realizeClassWithoutSwift(objc_class*)" # Darwin ignore functions, for macOS 10.15 vgopts: --ignore-fn=_objc_init --ignore-fn-"objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="objc::DenseMap, objc::DenseMapInfo, objc::detail::DenseSetPair >::grow(unsigned int)" --ignore-fn="realizeClassWithoutSwift(objc_class*, objc_class*)" --ignore-fn="schedule_class_load(objc_class*)" --ignore-fn="objc::SafeRanges::add(unsigned long, unsigned long)" +# Darwin ignore functions, for macOS 12 +vgopts: --ignore-fn=_xpc_alloc post: perl ../../massif/ms_print massif.out | ../../tests/filter_addresses | ./filter_ignore_fn cleanup: rm massif.out diff --git a/memcheck/tests/darwin.supp b/memcheck/tests/darwin.supp index 2f9c530b65..6d16d22eba 100644 --- a/memcheck/tests/darwin.supp +++ b/memcheck/tests/darwin.supp @@ -32,3 +32,24 @@ fun:_ZN4dyldL10loadPhase1EPKcS1_RKNS_11LoadContextERjPNSt3__16vectorIS1_NS6_9allocatorIS1_EEEE } +{ + + Memcheck:Addr8 + fun:_ZNK15DyldSharedCache5slideEv + fun:_ZN5dyld3L18reuseExistingCacheERKNS_18SharedCacheOptionsEPNS_19SharedCacheLoadInfoE +} + +{ + + Memcheck:Addr4 + fun:_ZNK15DyldSharedCache5slideEv + fun:_ZN5dyld3L18reuseExistingCacheERKNS_18SharedCacheOptionsEPNS_19SharedCacheLoadInfoE +} + +{ + + Memcheck:Addr1 + ... + fun:_ZN5dyld3L18reuseExistingCacheERKNS_18SharedCacheOptionsEPNS_19SharedCacheLoadInfoE +} + diff --git a/none/tests/amd64-darwin/bug341419.c b/none/tests/amd64-darwin/bug341419.c index e4fdacddbb..511cab3e31 100644 --- a/none/tests/amd64-darwin/bug341419.c +++ b/none/tests/amd64-darwin/bug341419.c @@ -6,6 +6,7 @@ #include #include #include +#include "config.h" #define offsetof(type, fld) ((unsigned long)&((type *)0)->fld) #define stringify(x) #x @@ -59,12 +60,17 @@ void this_function_halts(unsigned long long a0, unsigned long long a1, /* Set up registers with known values which will be tested in the signal handler */ __asm__ volatile("movq $0xfeed01010101cafe,%rax"); - __asm__ volatile("movq $0xfeed02020202cafe,%rbx"); __asm__ volatile("movq $0xfeed03030303cafe,%r10"); __asm__ volatile("movq $0xfeed04040404cafe,%r11"); __asm__ volatile("movq $0xfeed05050505cafe,%r12"); __asm__ volatile("movq $0xfeed06060606cafe,%r13"); +// Starting with macOS 12.0, dyld uses r14 for its own purposes, +// changing it crashes the process outside of main. +// FIXME: Suddenly, rbx stopped working but only in the Github GI on macOS 12.0 +#if DARWIN_VERS < DARWIN_12_00 + __asm__ volatile("movq $0xfeed02020202cafe,%rbx"); __asm__ volatile("movq $0xfeed07070707cafe,%r14"); +#endif __asm__ volatile("movq $0xfeed08080808cafe,%r15"); __asm__ volatile("hlt"); ran_after_fault++; @@ -79,12 +85,17 @@ void this_function_int3s(unsigned long long a0, unsigned long long a1, /* Set up registers with known values which will be tested in the signal handler */ __asm__ volatile("movq $0xfeed01010101cafe,%rax"); - __asm__ volatile("movq $0xfeed02020202cafe,%rbx"); __asm__ volatile("movq $0xfeed03030303cafe,%r10"); __asm__ volatile("movq $0xfeed04040404cafe,%r11"); __asm__ volatile("movq $0xfeed05050505cafe,%r12"); __asm__ volatile("movq $0xfeed06060606cafe,%r13"); +// Starting with macOS 12.0, dyld uses r14 for its own purposes, +// changing it crashes the process outside of main. +// FIXME: Suddenly, rbx stopped working but only in the Github GI on macOS 12.0 +#if DARWIN_VERS < DARWIN_12_00 + __asm__ volatile("movq $0xfeed02020202cafe,%rbx"); __asm__ volatile("movq $0xfeed07070707cafe,%r14"); +#endif __asm__ volatile("movq $0xfeed08080808cafe,%r15"); __asm__ volatile("int $3"); ran_after_fault++; @@ -147,12 +158,17 @@ handle_signal(int sig, siginfo_t *si, void *vuc) ASSERT_GTE(uc->uc_mcontext->__ss.__rip, calling_fn); ASSERT_LTE(uc->uc_mcontext->__ss.__rip, calling_fn+400); - ASSERT_EQ(uc->uc_mcontext->__ss.__rbx, 0xfeed02020202cafe); ASSERT_EQ(uc->uc_mcontext->__ss.__r10, 0xfeed03030303cafe); ASSERT_EQ(uc->uc_mcontext->__ss.__r11, 0xfeed04040404cafe); ASSERT_EQ(uc->uc_mcontext->__ss.__r12, 0xfeed05050505cafe); ASSERT_EQ(uc->uc_mcontext->__ss.__r13, 0xfeed06060606cafe); +// Starting with macOS 12.0, dyld uses r14 for its own purposes, +// changing it crashes the process outside of main. +// FIXME: Suddenly, rbx stopped working but only in the Github GI on macOS 12.0 +#if DARWIN_VERS < DARWIN_12_00 + ASSERT_EQ(uc->uc_mcontext->__ss.__rbx, 0xfeed02020202cafe); ASSERT_EQ(uc->uc_mcontext->__ss.__r14, 0xfeed07070707cafe); +#endif ASSERT_EQ(uc->uc_mcontext->__ss.__r15, 0xfeed08080808cafe); /* printf(" RFLAGS 0x%016llx\n", (unsigned long long)uc->uc_mcontext->__ss.__rflags); diff --git a/none/tests/darwin/apple-main-arg.c b/none/tests/darwin/apple-main-arg.c index d7f275aee5..6f7d96d0f4 100644 --- a/none/tests/darwin/apple-main-arg.c +++ b/none/tests/darwin/apple-main-arg.c @@ -20,7 +20,40 @@ int main(int argc, char *argv[], char *envp[], char *apple[]) ; // envp[i]==NULL; envp[i+1]==apple[0]==executable_path - assert(envp[i+1] == apple[0]); + //assert(envp[i+1] == apple[0]); + fprintf(stderr, "DEBUG: apple %p\n", apple); + fprintf(stderr, "DEBUG: envp[i+1] %p apple[0] %p\n", envp[i+1], apple[0]); + fprintf(stderr, "DEBUG: apple[-1] %p\n", apple[-1]); + fprintf(stderr, "DEBUG: apple[-2] %p\n", apple[-2]); + fprintf(stderr, "DEBUG: apple[-3] %p\n", apple[-3]); + fprintf(stderr, "DEBUG: apple[+1] %p\n", apple[+1]); + fprintf(stderr, "DEBUG: apple[+2] %p\n", apple[+2]); + fprintf(stderr, "DEBUG: &envp[i+1] %p &apple[0] %p\n", &envp[i+1], &apple[0]); + if (envp[i+1] != apple[0]) { + fprintf(stderr, "DEBUG: oh shit\n"); + if (apple[0]) { + fprintf(stderr, "DEBUG: apple zero is %s\n", apple[0]); + } else { + fprintf(stderr, "DEBUG: apple zero is NULL\n"); + if (apple[-1]) { + fprintf(stderr, "DEBUG: apple minus one is %p %s\n", apple[-1], apple[-1]); + } else { + fprintf(stderr, "DEBUG: apple minus one is NULL\n"); + } + if (apple[-2]) { + fprintf(stderr, "DEBUG: apple minus two is %p %s\n", apple[-2], apple[-2]); + } else { + fprintf(stderr, "DEBUG: apple minus two is NULL\n"); + } + } + if (envp[i+1]) { + fprintf(stderr, "DEBUG: after NULL after envp is %s\n", envp[i+1]); + } else { + fprintf(stderr, "DEBUG: after NULL after envp is NULL\n"); + } + } + + return 0; // Make sure realpath(argv[0]) == realpath(apple[0]). (realpath resolves // symlinks.)