From f126b503822addadbdfcc82f940c5a086d3f75dc Mon Sep 17 00:00:00 2001 From: Daan Date: Sun, 27 Oct 2024 21:10:46 -0700 Subject: [PATCH] update comments, set constructor priority to 101 on macOS --- src/prim/osx/alloc-override-zone.c | 4 ++-- src/prim/prim.c | 10 +--------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/src/prim/osx/alloc-override-zone.c b/src/prim/osx/alloc-override-zone.c index 1515b886b..d3af170de 100644 --- a/src/prim/osx/alloc-override-zone.c +++ b/src/prim/osx/alloc-override-zone.c @@ -418,9 +418,9 @@ static inline malloc_zone_t* mi_get_default_zone(void) } #if defined(__clang__) -__attribute__((constructor(0))) +__attribute__((constructor(101))) // highest priority #else -__attribute__((constructor)) // seems not supported by g++-11 on the M1 +__attribute__((constructor)) // priority level is not supported by gcc #endif __attribute__((used)) static void _mi_macos_override_malloc(void) { diff --git a/src/prim/prim.c b/src/prim/prim.c index a4d3814f1..2002853f2 100644 --- a/src/prim/prim.c +++ b/src/prim/prim.c @@ -46,6 +46,7 @@ terms of the MIT license. A copy of the license can be found in the file } #elif defined(__cplusplus) // C++: use static initialization to detect process start/end + // This is not guaranteed to be first/last but the best we can generally do? struct mi_init_done_t { mi_init_done_t() { _mi_process_load(); @@ -55,15 +56,6 @@ terms of the MIT license. A copy of the license can be found in the file } }; static mi_init_done_t mi_init_done; - /* - extern mi_heap_t _mi_heap_main; - static bool mi_process_attach(void) { - _mi_process_load(); - atexit(&_mi_process_done); - return (_mi_heap_main.thread_id != 0); - } - static bool mi_initialized = mi_process_attach(); - */ #else #pragma message("define a way to call _mi_process_load/done on your platform") #endif