[Bf-blender-cvs] [0062b34e941] master: macOS: Patch OpenImageIO's ustring for ARM.
Stefan Werner
noreply at git.blender.org
Thu Nov 26 12:26:21 CET 2020
Commit: 0062b34e9413631cecf992af6fde146a5ddcf866
Author: Stefan Werner
Date: Thu Nov 26 12:22:56 2020 +0100
Branches: master
https://developer.blender.org/rB0062b34e9413631cecf992af6fde146a5ddcf866
macOS: Patch OpenImageIO's ustring for ARM.
OpenImageIO's ustring makes assumptions about the interals of
std::string which aren't true on macOS/ARM. A patch for OpenImageIO
addresses this for macOS/ARM builds only, at the expense of potentially
duplicated allocations of strings.
===================================================================
M build_files/build_environment/patches/openimageio.diff
===================================================================
diff --git a/build_files/build_environment/patches/openimageio.diff b/build_files/build_environment/patches/openimageio.diff
index d05fc1f295f..9db037db288 100644
--- a/build_files/build_environment/patches/openimageio.diff
+++ b/build_files/build_environment/patches/openimageio.diff
@@ -34,3 +34,24 @@ diff -Naur orig/src/include/OpenImageIO/platform.h external_openimageio/src/incl
# include <windows.h>
#endif
+diff -Naur orig/src/libutil/ustring.cpp external_openimageio/src/libutil/ustring.cpp
+--- orig/src/libutil/ustring.cpp 2020-05-11 05:43:52.000000000 +0200
++++ external_openimageio/src/libutil/ustring.cpp 2020-11-26 12:06:08.000000000 +0100
+@@ -337,6 +337,8 @@
+ // the std::string to make it point to our chars! In such a case, the
+ // destructor will be careful not to allow a deallocation.
+
++ // Disable internal std::string for Apple silicon based Macs
++#if !(defined(__APPLE__) && defined(__arm64__))
+ #if defined(__GNUC__) && !defined(_LIBCPP_VERSION) \
+ && defined(_GLIBCXX_USE_CXX11_ABI) && _GLIBCXX_USE_CXX11_ABI
+ // NEW gcc ABI
+@@ -382,7 +384,7 @@
+ return;
+ }
+ #endif
+-
++#endif
+ // Remaining cases - just assign the internal string. This may result
+ // in double allocation for the chars. If you care about that, do
+ // something special for your platform, much like we did for gcc and
\ No newline at end of file
More information about the Bf-blender-cvs
mailing list