diff -ru ./src/video/SDL_video.c ./src/video/SDL_video.c
--- CMakeLists.txt.old	2016-01-02 12:56:31 -0700
+++ CMakeLists.txt	2016-10-03 11:24:24 -0600
@@ -609,7 +609,7 @@
       list(APPEND EXTRA_LIBS m)
     endif()

-    check_library_exists(iconv iconv_open "" HAVE_LIBICONV)
+    #check_library_exists(iconv iconv_open "" HAVE_LIBICONV)
     if(HAVE_LIBICONV)
       list(APPEND EXTRA_LIBS iconv)
       set(HAVE_ICONV 1)
--- src/video/SDL_video.c	2018-09-10 23:27:57.000000000 +0200
+++ src/video/SDL_video.c	2018-09-10 23:28:09.000000000 +0200
@@ -1176,7 +1176,7 @@
         return 0;
     }
 
-#ifdef __MACOSX__
+#if defined(__MACOSX__) && SDL_VIDEO_DRIVER_COCOA
     /* if the window is going away and no resolution change is necessary,
        do nothing, or else we may trigger an ugly double-transition
      */
@@ -2563,7 +2563,7 @@
         return SDL_FALSE;
     }
 
-#ifdef __MACOSX__
+#if defined(__MACOSX__) && SDL_VIDEO_DRIVER_COCOA
     if (SDL_strcmp(_this->name, "cocoa") == 0) {  /* don't do this for X11, etc */
         if (Cocoa_IsWindowInFullscreenSpace(window)) {
             return SDL_FALSE;
--- CMakeLists.txt	2022-12-09 20:40:00
+++ CMakeLists.txt	2022-12-09 20:40:00
@@ -526,6 +526,13 @@
     list(APPEND EXTRA_CFLAGS "-fno-strict-aliasing")
   endif()
 
+  # BLENDER: make libs compatible with older Xcode.
+  # https://github.com/KhronosGroup/MoltenVK/issues/1756
+  check_c_compiler_flag(-fno-objc-msgsend-selector-stubs HAVE_GCC_NO_OBJC_MSGSEND_SELECTOR_STUBS)
+  if(HAVE_GCC_NO_OBJC_MSGSEND_SELECTOR_STUBS)
+    list(APPEND EXTRA_CFLAGS "-fno-objc-msgsend-selector-stubs")
+  endif()
+
   check_c_compiler_flag(-Wdeclaration-after-statement HAVE_GCC_WDECLARATION_AFTER_STATEMENT)
   if(HAVE_GCC_WDECLARATION_AFTER_STATEMENT)
     check_c_compiler_flag(-Werror=declaration-after-statement HAVE_GCC_WERROR_DECLARATION_AFTER_STATEMENT)
