libsdl-org/SDL

SDL_Init crashing on MacOS Ventura 13.2 (arm64, Apple Silicon M1)

rhighs opened this issue · 4 comments

Compiling a CMake project that includes SDL with this CMakeLists.txt config:

add_subdirectory( SDL )
target_link_libraries( ${CMAKE_PROJECT_NAME} SDL2::SDL2 SDL2::SDL2main SDL2::SDL2-static )

add_subdirectory( cglm )
target_include_directories( ${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/external/cglm/include)

add_subdirectory( glad )

target_include_directories( ${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/external/glad/include )
target_include_directories( ${CMAKE_PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/external/stb )

Screenshot 2023-12-15 at 15 36 29
The SDL directory is just a git submodule pointing to https://github.com/libsdl-org/SDL/tree/SDL2
The whole project compiles correctly and links with no issue. However running the generated executable will give the following error:

objc[74042]: Method cache corrupted. This may be a message to an invalid object, or a memory error somewhere else.
objc[74042]: receiver 0x1e55ebfb0, SEL 0x1da30fec9, isa 0x1e55ed388, cache 0x1e55ed398, buckets and mask 0x1600003753ea0, occupied 0x1
objc[74042]: receiver 0 bytes, buckets 32 bytes
objc[74042]: selector 'bundleWithIdentifier:'
objc[74042]: isa 'NSBundle'
objc[74042]: Method cache corrupted. This may be a message to an invalid object, or a memory error somewhere else.
Abort trap: 6

Examining the stack trace with lldb i found this trace:

Process 75951 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x2c)
    frame #0: 0x0000000189cf273c libobjc.A.dylib`invocation function for block in flushCaches(objc_class*, char const*, bool (objc_class*) block_pointer) + 60
libobjc.A.dylib`invocation function for block in flushCaches(objc_class*, char const*, bool (objc_class*) block_pointer):
->  0x189cf273c <+60>: ldrh   w8, [x19, #0x1c]
    0x189cf2740 <+64>: cbz    w8, 0x189cf2834           ; <+308>
    0x189cf2744 <+68>: ldr    x9, [x19, #0x10]
    0x189cf2748 <+72>: adrp   x8, 17
Target 0: (gltest) stopped.
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x2c)
  * frame #0: 0x0000000189cf273c libobjc.A.dylib`invocation function for block in flushCaches(objc_class*, char const*, bool (objc_class*) block_pointer) + 60
    frame #1: 0x0000000189cf24e0 libobjc.A.dylib`flushCaches(objc_class*, char const*, bool (objc_class*) block_pointer) + 164
    frame #2: 0x0000000189cd32bc libobjc.A.dylib`attachCategories(objc_class*, locstamped_category_t const*, unsigned int, int) + 944
    frame #3: 0x0000000189cf7c78 libobjc.A.dylib`load_categories_nolock(header_info*)::$_10::operator()(category_t* const*) const + 544
    frame #4: 0x0000000189cf79c0 libobjc.A.dylib`load_categories_nolock(header_info*) + 84
    frame #5: 0x0000000189ccf9ac libobjc.A.dylib`map_images_nolock + 5524
    frame #6: 0x0000000189cce38c libobjc.A.dylib`map_images + 100
    frame #7: 0x0000000189d243f8 dyld`dyld4::RuntimeState::notifyLoad(std::__1::span<dyld4::Loader const*, 18446744073709551615ul> const&) + 656
    frame #8: 0x0000000189d4ca9c dyld`dyld4::APIs::dlopen_from(char const*, int, void*) + 1200
    frame #9: 0x000000018d37911c AppKit`__71+[NSFrontmostDocumentWindowObserver registerForInterestedFileProviders]_block_invoke + 32
    frame #10: 0x0000000189eba504 libdispatch.dylib`_dispatch_client_callout + 20
    frame #11: 0x0000000189ebbd50 libdispatch.dylib`_dispatch_once_callout + 32
    frame #12: 0x000000018d379074 AppKit`+[NSFrontmostDocumentWindowObserver registerForInterestedFileProviders] + 180
    frame #13: 0x000000018d371e84 AppKit`-[NSApplication init] + 1388
    frame #14: 0x000000018d37174c AppKit`+[NSApplication sharedApplication] + 128
    frame #15: 0x00000001001b3468 gltest`Cocoa_RegisterApp at SDL_cocoaevents.m:454:9
    frame #16: 0x00000001001bd43c gltest`Cocoa_CreateDevice at SDL_cocoavideo.m:63:5
    frame #17: 0x000000010015dabc gltest`SDL_VideoInit_REAL(driver_name=0x0000000000000000) at SDL_video.c:490:21
    frame #18: 0x00000001000327b8 gltest`SDL_InitSubSystem_REAL(flags=62001) at SDL.c:247:17
    frame #19: 0x0000000100032ddc gltest`SDL_Init_REAL(flags=62001) at SDL.c:349:12
    frame #20: 0x000000010005d200 gltest`SDL_Init_DEFAULT(a=62001) at SDL_dynapi_procs.h:88:1
    frame #21: 0x000000010004f17c gltest`SDL_Init(a=62001) at SDL_dynapi_procs.h:88:1
    frame #22: 0x000000010000bc98 gltest`main(argc=1, argv=0x000000016fdff318) at main.cpp:100:9
    frame #23: 0x0000000189d17e50 dyld`start + 2544
(lldb)

As it is shown, this is problem related to SDL_Init and this is the code the stack trace is referencing, which really doesn't include anything strange or unusual for a simple SDL2 app:

#include "SDL.h" // i've seen people needing this to run on mac, as it contains an include for SDL_main.h

int main(int argc, char *argv[]) {
    SDL_Window *mainwindow;
    SDL_GLContext maincontext;

    const vec3 CLEAR_COLOR = { .8f, 0.9f, .8f };

    u32 win_height = 720;
    u32 win_width = 1280;

    if (SDL_Init(SDL_INIT_EVERYTHING) < 0) 
        sdldie("Unable to initialize SDL");

    // Request opengl 3.2 context.
    SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
    SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2);

    /* Turn on double buffering with a 24bit Z buffer.
     * You may need to change this to 16 or 32 for your system */
    SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
    SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24);

    mainwindow = SDL_CreateWindow(PROGRAM_NAME,
        SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
        win_width, win_height,
        SDL_WINDOW_OPENGL
        | SDL_WINDOW_SHOWN
        | SDL_WINDOW_RESIZABLE
        | SDL_WINDOW_MOUSE_CAPTURE
        | SDL_WINDOW_INPUT_GRABBED);

    SDL_SetRelativeMouseMode((SDL_bool)TRUE);

    ....
    }

Screenshot 2023-12-15 at 15 42 51

If you configure and build with -DSDL_TEST=ON -DSDL_TESTS=ON, do the SDL tests work?

Just trying things out,
can you enable the shared SDL2 target (-DSDL2_SHARED=ON) and link to SDL2 using the following command?

target_link_libraries( ${CMAKE_PROJECT_NAME} PRIVATE SDL2::SDL2main SDL2::SDL2 )

Depending on whether this works, replace SDL2::SDL2 with SDL2::SDL2-static.

(By placing SDL2::SDL2main before SDL2::SDL2, you don't need to repeat any SDL2 libraries)

This is the full cmake output, with SDL_TESTS=ON SDL_TEST=ON and SDL2_SHARED=ON and linking to the shared lib:

-- The CXX compiler identification is AppleClang 14.0.0.14000029
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found OpenGL: /Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk/System/Library/Frameworks/OpenGL.framework
-- Found PkgConfig: /opt/local/bin/pkg-config (found version "0.29.2")
-- Looking for a OBJC compiler
-- Looking for a OBJC compiler - /Library/Developer/CommandLineTools/usr/bin/cc
-- Looking for __GLIBC__
-- Looking for __GLIBC__ - not found
-- Performing Test CHECK_CPU_ARCHITECTURE_X86
-- Performing Test CHECK_CPU_ARCHITECTURE_X86 - Failed
-- Performing Test CHECK_CPU_ARCHITECTURE_X64
-- Performing Test CHECK_CPU_ARCHITECTURE_X64 - Failed
-- Performing Test CHECK_CPU_ARCHITECTURE_ARM32
-- Performing Test CHECK_CPU_ARCHITECTURE_ARM32 - Failed
-- Performing Test CHECK_CPU_ARCHITECTURE_ARM64
-- Performing Test CHECK_CPU_ARCHITECTURE_ARM64 - Success
-- Performing Test CHECK_CPU_ARCHITECTURE_LOONGARCH64
-- Performing Test CHECK_CPU_ARCHITECTURE_LOONGARCH64 - Failed
-- Performing Test HAVE_GCC_WALL
-- Performing Test HAVE_GCC_WALL - Success
-- Performing Test HAVE_GCC_NO_STRICT_ALIASING
-- Performing Test HAVE_GCC_NO_STRICT_ALIASING - Success
-- Performing Test HAVE_GCC_WDOCUMENTATION
-- Performing Test HAVE_GCC_WDOCUMENTATION - Success
-- Performing Test HAVE_GCC_WDOCUMENTATION_UNKNOWN_COMMAND
-- Performing Test HAVE_GCC_WDOCUMENTATION_UNKNOWN_COMMAND - Success
-- Performing Test HAVE_GCC_COMMENT_BLOCK_COMMANDS
-- Performing Test HAVE_GCC_COMMENT_BLOCK_COMMANDS - Success
-- Performing Test HAVE_GCC_WDECLARATION_AFTER_STATEMENT
-- Performing Test HAVE_GCC_WDECLARATION_AFTER_STATEMENT - Success
-- Performing Test HAVE_GCC_ATOMICS
-- Performing Test HAVE_GCC_ATOMICS - Success
-- Performing Test HAVE_GCC_FVISIBILITY
-- Performing Test HAVE_GCC_FVISIBILITY - Success
-- Performing Test HAVE_GCC_WSHADOW
-- Performing Test HAVE_GCC_WSHADOW - Success
-- Performing Test HAVE_GCC_WUNUSED_LOCAL_TYPEDEFS
-- Performing Test HAVE_GCC_WUNUSED_LOCAL_TYPEDEFS - Success
-- Performing Test HAVE_WNO_ERROR_DEPRECATED_DECLARATIONS
-- Performing Test HAVE_WNO_ERROR_DEPRECATED_DECLARATIONS - Success
-- Looking for immintrin.h
-- Looking for immintrin.h - not found
-- Performing Test HAVE_ALTIVEC_H_HDR
-- Performing Test HAVE_ALTIVEC_H_HDR - Failed
-- Performing Test CPU_SUPPORTS_ALTIVEC
-- Performing Test CPU_SUPPORTS_ALTIVEC - Failed
-- Looking for ctype.h
-- Looking for ctype.h - found
-- Looking for float.h
-- Looking for float.h - found
-- Looking for iconv.h
-- Looking for iconv.h - found
-- Looking for inttypes.h
-- Looking for inttypes.h - found
-- Looking for limits.h
-- Looking for limits.h - found
-- Looking for malloc.h
-- Looking for malloc.h - not found
-- Looking for math.h
-- Looking for math.h - found
-- Looking for memory.h
-- Looking for memory.h - found
-- Looking for signal.h
-- Looking for signal.h - found
-- Looking for stdarg.h
-- Looking for stdarg.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stdio.h
-- Looking for stdio.h - found
-- Looking for stdlib.h
-- Looking for stdlib.h - found
-- Looking for string.h
-- Looking for string.h - found
-- Looking for strings.h
-- Looking for strings.h - found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for wchar.h
-- Looking for wchar.h - found
-- Looking for linux/input.h
-- Looking for linux/input.h - not found
-- Looking for 7 include files stddef.h, ..., float.h
-- Looking for 7 include files stddef.h, ..., float.h - found
-- Looking for M_PI
-- Looking for M_PI - found
-- Performing Test HAVE_MPROTECT
-- Performing Test HAVE_MPROTECT - Success
-- Looking for strtod
-- Looking for strtod - found
-- Looking for malloc
-- Looking for malloc - found
-- Looking for calloc
-- Looking for calloc - found
-- Looking for realloc
-- Looking for realloc - found
-- Looking for free
-- Looking for free - found
-- Looking for getenv
-- Looking for getenv - found
-- Looking for setenv
-- Looking for setenv - found
-- Looking for putenv
-- Looking for putenv - found
-- Looking for unsetenv
-- Looking for unsetenv - found
-- Looking for bsearch
-- Looking for bsearch - found
-- Looking for qsort
-- Looking for qsort - found
-- Looking for abs
-- Looking for abs - found
-- Looking for bcopy
-- Looking for bcopy - found
-- Looking for memset
-- Looking for memset - found
-- Looking for memcpy
-- Looking for memcpy - found
-- Looking for memmove
-- Looking for memmove - found
-- Looking for memcmp
-- Looking for memcmp - found
-- Looking for strlen
-- Looking for strlen - found
-- Looking for strlcpy
-- Looking for strlcpy - found
-- Looking for strlcat
-- Looking for strlcat - found
-- Looking for _strrev
-- Looking for _strrev - not found
-- Looking for _strupr
-- Looking for _strupr - not found
-- Looking for _strlwr
-- Looking for _strlwr - not found
-- Looking for index
-- Looking for index - found
-- Looking for rindex
-- Looking for rindex - found
-- Looking for strchr
-- Looking for strchr - found
-- Looking for strrchr
-- Looking for strrchr - found
-- Looking for strstr
-- Looking for strstr - found
-- Looking for strtok_r
-- Looking for strtok_r - found
-- Looking for itoa
-- Looking for itoa - not found
-- Looking for _ltoa
-- Looking for _ltoa - not found
-- Looking for _uitoa
-- Looking for _uitoa - not found
-- Looking for _ultoa
-- Looking for _ultoa - not found
-- Looking for strtol
-- Looking for strtol - found
-- Looking for strtoul
-- Looking for strtoul - found
-- Looking for _i64toa
-- Looking for _i64toa - not found
-- Looking for _ui64toa
-- Looking for _ui64toa - not found
-- Looking for strtoll
-- Looking for strtoll - found
-- Looking for strtoull
-- Looking for strtoull - found
-- Looking for atoi
-- Looking for atoi - found
-- Looking for atof
-- Looking for atof - found
-- Looking for strcmp
-- Looking for strcmp - found
-- Looking for strncmp
-- Looking for strncmp - found
-- Looking for _stricmp
-- Looking for _stricmp - not found
-- Looking for strcasecmp
-- Looking for strcasecmp - found
-- Looking for _strnicmp
-- Looking for _strnicmp - not found
-- Looking for strncasecmp
-- Looking for strncasecmp - found
-- Looking for strcasestr
-- Looking for strcasestr - found
-- Looking for wcscmp
-- Looking for wcscmp - found
-- Looking for _wcsdup
-- Looking for _wcsdup - not found
-- Looking for wcsdup
-- Looking for wcsdup - found
-- Looking for wcslcat
-- Looking for wcslcat - found
-- Looking for wcslcpy
-- Looking for wcslcpy - found
-- Looking for wcslen
-- Looking for wcslen - found
-- Looking for wcsncmp
-- Looking for wcsncmp - found
-- Looking for wcsstr
-- Looking for wcsstr - found
-- Looking for wcscasecmp
-- Looking for wcscasecmp - found
-- Looking for _wcsicmp
-- Looking for _wcsicmp - not found
-- Looking for wcsncasecmp
-- Looking for wcsncasecmp - found
-- Looking for _wcsnicmp
-- Looking for _wcsnicmp - not found
-- Looking for sscanf
-- Looking for sscanf - found
-- Looking for vsscanf
-- Looking for vsscanf - found
-- Looking for vsnprintf
-- Looking for vsnprintf - found
-- Looking for fopen64
-- Looking for fopen64 - not found
-- Looking for fseeko
-- Looking for fseeko - found
-- Looking for fseeko64
-- Looking for fseeko64 - not found
-- Looking for _Exit
-- Looking for _Exit - found
-- Looking for sigaction
-- Looking for sigaction - found
-- Looking for setjmp
-- Looking for setjmp - found
-- Looking for nanosleep
-- Looking for nanosleep - found
-- Looking for sysconf
-- Looking for sysconf - found
-- Looking for sysctlbyname
-- Looking for sysctlbyname - found
-- Looking for getauxval
-- Looking for getauxval - not found
-- Looking for elf_aux_info
-- Looking for elf_aux_info - not found
-- Looking for poll
-- Looking for poll - found
-- Looking for pow in m
-- Looking for pow in m - found
-- Looking for atan
-- Looking for atan - found
-- Looking for atan2
-- Looking for atan2 - found
-- Looking for atanf
-- Looking for atanf - found
-- Looking for atan2f
-- Looking for atan2f - found
-- Looking for ceil
-- Looking for ceil - found
-- Looking for ceilf
-- Looking for ceilf - found
-- Looking for copysign
-- Looking for copysign - found
-- Looking for copysignf
-- Looking for copysignf - found
-- Looking for cos
-- Looking for cos - found
-- Looking for cosf
-- Looking for cosf - found
-- Looking for exp
-- Looking for exp - found
-- Looking for expf
-- Looking for expf - found
-- Looking for fabs
-- Looking for fabs - found
-- Looking for fabsf
-- Looking for fabsf - found
-- Looking for floor
-- Looking for floor - found
-- Looking for floorf
-- Looking for floorf - found
-- Looking for fmod
-- Looking for fmod - found
-- Looking for fmodf
-- Looking for fmodf - found
-- Looking for log
-- Looking for log - found
-- Looking for logf
-- Looking for logf - found
-- Looking for log10
-- Looking for log10 - found
-- Looking for log10f
-- Looking for log10f - found
-- Looking for lround
-- Looking for lround - found
-- Looking for lroundf
-- Looking for lroundf - found
-- Looking for pow
-- Looking for pow - found
-- Looking for powf
-- Looking for powf - found
-- Looking for round
-- Looking for round - found
-- Looking for roundf
-- Looking for roundf - found
-- Looking for scalbn
-- Looking for scalbn - found
-- Looking for scalbnf
-- Looking for scalbnf - found
-- Looking for sin
-- Looking for sin - found
-- Looking for sinf
-- Looking for sinf - found
-- Looking for sqrt
-- Looking for sqrt - found
-- Looking for sqrtf
-- Looking for sqrtf - found
-- Looking for tan
-- Looking for tan - found
-- Looking for tanf
-- Looking for tanf - found
-- Looking for acos
-- Looking for acos - found
-- Looking for acosf
-- Looking for acosf - found
-- Looking for asin
-- Looking for asin - found
-- Looking for asinf
-- Looking for asinf - found
-- Looking for trunc
-- Looking for trunc - found
-- Looking for truncf
-- Looking for truncf - found
-- Looking for iconv_open in iconv
-- Looking for iconv_open in iconv - found
-- Performing Test HAVE_SA_SIGACTION
-- Performing Test HAVE_SA_SIGACTION - Success
-- Looking for dlopen
-- Looking for dlopen - found
-- Performing Test HAVE_O_CLOEXEC
-- Performing Test HAVE_O_CLOEXEC - Success
-- Performing Test HAVE_FRAMEWORK_GAMECONTROLLER
-- Performing Test HAVE_FRAMEWORK_GAMECONTROLLER - Success
-- Performing Test HAVE_FRAMEWORK_COREHAPTICS
-- Performing Test HAVE_FRAMEWORK_COREHAPTICS - Success
-- Performing Test HAVE_FRAMEWORK_METAL
-- Performing Test HAVE_FRAMEWORK_METAL - Success
-- Performing Test HAVE_PTHREADS
-- Performing Test HAVE_PTHREADS - Success
-- Performing Test HAVE_RECURSIVE_MUTEXES
-- Performing Test HAVE_RECURSIVE_MUTEXES - Success
-- Performing Test HAVE_PTHREADS_SEM
-- Performing Test HAVE_PTHREADS_SEM - Success
-- Performing Test HAVE_SEM_TIMEDWAIT
-- Performing Test HAVE_SEM_TIMEDWAIT - Failed
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for include file pthread_np.h
-- Looking for include file pthread_np.h - not found
-- Performing Test HAVE_PTHREAD_SETNAME_NP
-- Performing Test HAVE_PTHREAD_SETNAME_NP - Success
-- Found Git: /usr/bin/git (found version "2.37.1 (Apple Git-137.1)")
--
-- SDL2 was configured with the following options:
--
-- Platform: Darwin-22.3.0
-- 64-bit:   TRUE
-- Compiler: /Library/Developer/CommandLineTools/usr/bin/cc
-- Revision: SDL-release-2.28.0-136-g25eca09c7
--
-- Subsystems:
--   Atomic:	ON
--   Audio:	ON
--   Video:	ON
--   Render:	ON
--   Events:	ON
--   Joystick:	ON
--   Haptic:	ON
--   Hidapi:	ON
--   Power:	ON
--   Threads:	ON
--   Timers:	ON
--   File:	ON
--   Loadso:	ON
--   CPUinfo:	ON
--   Filesystem:	ON
--   Sensor:	ON
--   Locale:	ON
--   Misc:	ON
--
-- Options:
--   SDL2_DISABLE_INSTALL        (Wanted: ON): OFF
--   SDL2_DISABLE_SDL2MAIN       (Wanted: OFF): OFF
--   SDL2_DISABLE_UNINSTALL      (Wanted: OFF): OFF
--   SDL_3DNOW                   (Wanted: OFF): OFF
--   SDL_ALSA                    (Wanted: OFF): OFF
--   SDL_ALSA_SHARED             (Wanted: OFF): OFF
--   SDL_ALTIVEC                 (Wanted: ON): OFF
--   SDL_ARMNEON                 (Wanted: OFF): OFF
--   SDL_ARMSIMD                 (Wanted: OFF): OFF
--   SDL_ARTS                    (Wanted: OFF): OFF
--   SDL_ARTS_SHARED             (Wanted: OFF): OFF
--   SDL_ASAN                    (Wanted: OFF): OFF
--   SDL_ASSEMBLY                (Wanted: ON): ON
--   SDL_ASSERTIONS              (Wanted: auto): auto
--   SDL_BACKGROUNDING_SIGNAL    (Wanted: OFF): OFF
--   SDL_CCACHE                  (Wanted: ON): OFF
--   SDL_CLOCK_GETTIME           (Wanted: OFF): OFF
--   SDL_COCOA                   (Wanted: ON): ON
--   SDL_DBUS                    (Wanted: OFF): OFF
--   SDL_DIRECTFB                (Wanted: OFF): OFF
--   SDL_DIRECTFB_SHARED         (Wanted: OFF): OFF
--   SDL_DIRECTX                 (Wanted: OFF): OFF
--   SDL_DISKAUDIO               (Wanted: ON): ON
--   SDL_DUMMYAUDIO              (Wanted: ON): ON
--   SDL_DUMMYVIDEO              (Wanted: ON): ON
--   SDL_ESD                     (Wanted: OFF): OFF
--   SDL_ESD_SHARED              (Wanted: OFF): OFF
--   SDL_FOREGROUNDING_SIGNAL    (Wanted: OFF): OFF
--   SDL_FUSIONSOUND             (Wanted: OFF): OFF
--   SDL_FUSIONSOUND_SHARED      (Wanted: OFF): OFF
--   SDL_GCC_ATOMICS             (Wanted: ON): ON
--   SDL_HIDAPI                  (Wanted: ON): ON
--   SDL_HIDAPI_JOYSTICK         (Wanted: ON): ON
--   SDL_HIDAPI_LIBUSB           (Wanted: OFF): OFF
--   SDL_IBUS                    (Wanted: OFF): OFF
--   SDL_INSTALL_TESTS           (Wanted: OFF): OFF
--   SDL_JACK                    (Wanted: OFF): OFF
--   SDL_JACK_SHARED             (Wanted: OFF): OFF
--   SDL_KMSDRM                  (Wanted: OFF): OFF
--   SDL_KMSDRM_SHARED           (Wanted: OFF): OFF
--   SDL_LASX                    (Wanted: OFF): OFF
--   SDL_LIBC                    (Wanted: ON): ON
--   SDL_LIBSAMPLERATE           (Wanted: OFF): OFF
--   SDL_LIBSAMPLERATE_SHARED    (Wanted: OFF): OFF
--   SDL_LIBUDEV                 (Wanted: ON): OFF
--   SDL_LSX                     (Wanted: OFF): OFF
--   SDL_METAL                   (Wanted: ON): ON
--   SDL_MMX                     (Wanted: OFF): OFF
--   SDL_NAS                     (Wanted: OFF): OFF
--   SDL_NAS_SHARED              (Wanted: OFF): OFF
--   SDL_OFFSCREEN               (Wanted: ON): ON
--   SDL_OPENGL                  (Wanted: ON): ON
--   SDL_OPENGLES                (Wanted: ON): ON
--   SDL_OSS                     (Wanted: OFF): OFF
--   SDL_PIPEWIRE                (Wanted: OFF): OFF
--   SDL_PIPEWIRE_SHARED         (Wanted: OFF): OFF
--   SDL_PTHREADS                (Wanted: ON): ON
--   SDL_PTHREADS_SEM            (Wanted: ON): ON
--   SDL_PULSEAUDIO              (Wanted: OFF): OFF
--   SDL_PULSEAUDIO_SHARED       (Wanted: OFF): OFF
--   SDL_RENDER_D3D              (Wanted: OFF): OFF
--   SDL_RENDER_METAL            (Wanted: ON): ON
--   SDL_RPATH                   (Wanted: OFF): OFF
--   SDL_RPI                     (Wanted: OFF): OFF
--   SDL_SNDIO                   (Wanted: OFF): OFF
--   SDL_SNDIO_SHARED            (Wanted: OFF): OFF
--   SDL_SSE                     (Wanted: OFF): OFF
--   SDL_SSE2                    (Wanted: OFF): OFF
--   SDL_SSE3                    (Wanted: OFF): OFF
--   SDL_SSEMATH                 (Wanted: OFF): OFF
--   SDL_STATIC_PIC              (Wanted: OFF): OFF
--   SDL_SYSTEM_ICONV            (Wanted: ON): ON
--   SDL_TESTS                   (Wanted: ON): ON
--   SDL_VENDOR_INFO             (Wanted: ): OFF
--   SDL_VIRTUAL_JOYSTICK        (Wanted: ON): ON
--   SDL_VIVANTE                 (Wanted: OFF): OFF
--   SDL_VULKAN                  (Wanted: ON): ON
--   SDL_WASAPI                  (Wanted: OFF): OFF
--   SDL_WAYLAND                 (Wanted: OFF): OFF
--   SDL_WAYLAND_LIBDECOR        (Wanted: OFF): OFF
--   SDL_WAYLAND_LIBDECOR_SHARED (Wanted: OFF): OFF
--   SDL_WAYLAND_QT_TOUCH        (Wanted: OFF): OFF
--   SDL_WAYLAND_SHARED          (Wanted: OFF): OFF
--   SDL_X11                     (Wanted: OFF): OFF
--   SDL_X11_SHARED              (Wanted: OFF): OFF
--   SDL_X11_XCURSOR             (Wanted: OFF): OFF
--   SDL_X11_XDBE                (Wanted: OFF): OFF
--   SDL_X11_XFIXES              (Wanted: OFF): OFF
--   SDL_X11_XINPUT              (Wanted: OFF): OFF
--   SDL_X11_XRANDR              (Wanted: OFF): OFF
--   SDL_X11_XSCRNSAVER          (Wanted: OFF): OFF
--   SDL_X11_XSHAPE              (Wanted: OFF): OFF
--   SDL_XINPUT                  (Wanted: OFF): OFF
--
--  CFLAGS:         -idirafter "/Users/rmontalti/repos/gltest/external/SDL/src/video/khronos"
--  EXTRA_CFLAGS:   -Wall -fno-strict-aliasing -Wdocumentation -Wdocumentation-unknown-command -fcomment-block-commands=threadsafety -fcomment-block-commands=deprecated -Wdeclaration-after-statement -fvisibility=hidden -Wshadow -Wno-unused-local-typedefs -D_THREAD_SAFE
--  EXTRA_LDFLAGS: -Wl,-framework,CoreVideo;-Wl,-framework,Cocoa;-Wl,-framework,IOKit;-Wl,-framework,ForceFeedback;-Wl,-framework,Carbon;-Wl,-framework,CoreAudio;-Wl,-framework,AudioToolbox;-Wl,-framework,AVFoundation;-Wl,-framework,Foundation;-Wl,-weak_framework,GameController;-Wl,-weak_framework,Metal;-Wl,-weak_framework,QuartzCore;-Wl,-weak_framework,CoreHaptics -Wl,-compatibility_version,2901.0.0;-Wl,-current_version,2901.0.0
--  EXTRA_LIBS:    m;iconv
--
--  Build Shared Library: ON
--  Build Static Library: ON
--  Build Static Library with Position Independent Code: OFF
--
-- If something was not detected, although the libraries
-- were installed, then make sure you have set the
-- CFLAGS and LDFLAGS environment variables correctly.
--
-- Performing Test HAVE_GCC_FNO_FAST_MATH
-- Performing Test HAVE_GCC_FNO_FAST_MATH - Success
-- Performing Test HAVE_WFORMAT_OVERFLOW
-- Performing Test HAVE_WFORMAT_OVERFLOW - Failed
-- Performing Test HAVE_WFORMAT
-- Performing Test HAVE_WFORMAT - Success
-- Performing Test HAVE_WFORMAT_EXTRA_ARGS
-- Performing Test HAVE_WFORMAT_EXTRA_ARGS - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/rmontalti/repos/gltest/build

Running the executable gives the same error as above