EGLNativeDisplayType is only a pointer type on window systems that define one. Mesa's surfaceless configuration, which is what is used on macOS, typedefs it to int, so passing it to eglGetPlatformDisplayEXT() -- whose second parameter is void * -- is an integer-to-pointer conversion. clang 15 and later make -Wint-conversion an error rather than a warning, so on macOS 26 with Apple clang this is a hard build failure: ui/egl-helpers.c:531:54: error: incompatible integer to pointer conversion passing 'EGLNativeDisplayType' (aka 'int') to parameter of type 'void *' Casting via uintptr_t is correct whether the typedef is an integer or a pointer, so no version or platform guard is needed. Only reachable with the +gl variant, which turns on opengl and virglrenderer. See https://trac.macports.org/ticket/73902 --- ui/egl-helpers.c.orig +++ ui/egl-helpers.c @@ -528,7 +528,16 @@ /* In practise any EGL 1.5 implementation would support the EXT extension */ if (epoxy_has_egl_extension(NULL, "EGL_EXT_platform_base")) { if (platform != 0) { - dpy = eglGetPlatformDisplayEXT(platform, native, NULL); + /* + * eglGetPlatformDisplayEXT() takes a void *, while + * EGLNativeDisplayType is only pointer-typed on window systems + * that define one. Mesa's surfaceless/macOS configuration + * typedefs it to int, so cast via uintptr_t, which is correct + * either way. clang 15 and later make -Wint-conversion an + * error, so this is a hard build failure there. + */ + dpy = eglGetPlatformDisplayEXT(platform, + (void *)(uintptr_t)native, NULL); } }