[Bf-blender-cvs] [07b67894e8d] master: Fix macOS precompiled libraries built on Xcode 14 not working in Xcode 13
Brecht Van Lommel
noreply at git.blender.org
Fri Dec 9 22:49:48 CET 2022
Commit: 07b67894e8db446edbaaf4eb2a49019ac61080c5
Author: Brecht Van Lommel
Date: Fri Dec 9 21:27:36 2022 +0100
Branches: master
https://developer.blender.org/rB07b67894e8db446edbaaf4eb2a49019ac61080c5
Fix macOS precompiled libraries built on Xcode 14 not working in Xcode 13
Disable some symbols amd linking features not available in Xcode 13.
===================================================================
M build_files/build_environment/patches/python_unix.diff
M build_files/build_environment/patches/sdl.diff
===================================================================
diff --git a/build_files/build_environment/patches/python_unix.diff b/build_files/build_environment/patches/python_unix.diff
index a9baae8ce32..3969c706758 100644
--- a/build_files/build_environment/patches/python_unix.diff
+++ b/build_files/build_environment/patches/python_unix.diff
@@ -36,3 +36,39 @@ index a97a755..07ce853 100644
if (self.compiler.find_library_file(self.lib_dirs, lib_name)):
ffi_lib = lib_name
break
+--- a/Modules/posixmodule.c 2022-12-09 21:44:03
++++ b/Modules/posixmodule.c 2022-12-09 21:39:46
+@@ -10564,10 +10564,15 @@
+ Py_BEGIN_ALLOW_THREADS
+ #ifdef HAVE_MKFIFOAT
+ if (dir_fd != DEFAULT_DIR_FD) {
++// BLENDER: disable also at compile time for compatibility when linking with older Xcode.
++// https://github.com/python/cpython/issues/97897
++#ifndef __APPLE__
+ if (HAVE_MKFIFOAT_RUNTIME) {
+ result = mkfifoat(dir_fd, path->narrow, mode);
+
++ } else
++#endif
++ {
+- } else {
+ mkfifoat_unavailable = 1;
+ result = 0;
+ }
+@@ -10638,10 +10633,15 @@
+ Py_BEGIN_ALLOW_THREADS
+ #ifdef HAVE_MKNODAT
+ if (dir_fd != DEFAULT_DIR_FD) {
++// BLENDER: disable also at compile time for compatibility when linking with older Xcode.
++// https://github.com/python/cpython/issues/97897
++#ifndef __APPLE__
+ if (HAVE_MKNODAT_RUNTIME) {
+ result = mknodat(dir_fd, path->narrow, mode, device);
+
++ } else
++#endif
++ {
+- } else {
+ mknodat_unavailable = 1;
+ result = 0;
+ }
diff --git a/build_files/build_environment/patches/sdl.diff b/build_files/build_environment/patches/sdl.diff
index 742183ecb4c..6caa98f9d68 100644
--- a/build_files/build_environment/patches/sdl.diff
+++ b/build_files/build_environment/patches/sdl.diff
@@ -30,3 +30,19 @@ diff -ru ./src/video/SDL_video.c ./src/video/SDL_video.c
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)
More information about the Bf-blender-cvs
mailing list