[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