Use fallback implementation for C++ aligned_alloc
authorDaniel Dugovic <dandydand@gmail.com>
Sat, 8 Aug 2020 20:39:29 +0000 (15:39 -0500)
committerJoost VandeVondele <Joost.VandeVondele@gmail.com>
Sun, 9 Aug 2020 15:07:45 +0000 (17:07 +0200)
fixes https://github.com/official-stockfish/Stockfish/issues/2921

closes https://github.com/official-stockfish/Stockfish/pull/2927

No functional change

src/Makefile
src/misc.cpp

index cab7a7e50629021f17a68a4458aee45c74989bc7..b7585a174c6bc87163e584719eeeb339345cd5f4 100644 (file)
@@ -354,8 +354,8 @@ endif
 endif
 
 ifeq ($(KERNEL),Darwin)
-       CXXFLAGS += -arch $(arch) -mmacosx-version-min=10.15
-       LDFLAGS += -arch $(arch) -mmacosx-version-min=10.15
+       CXXFLAGS += -arch $(arch) -mmacosx-version-min=10.13
+       LDFLAGS += -arch $(arch) -mmacosx-version-min=10.13
 endif
 
 ### Travis CI script uses COMPILER to overwrite CXX
index 3d7c75e558fe7c6c83c42b09ee7dccf254ccb095..05f79b450b0192ffe3a39a328bf85097b5f9f056 100644 (file)
@@ -321,9 +321,9 @@ void prefetch(void* addr) {
 ///
 
 void* std_aligned_alloc(size_t alignment, size_t size) {
-#if defined(__APPLE__)
+#if (defined(__APPLE__) && defined(_LIBCPP_HAS_C11_FEATURES)) || defined(__ANDROID__) || defined(__OpenBSD__) || (defined(__GLIBCXX__) && !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC) )
   return aligned_alloc(alignment, size);
-#elif defined(_WIN32)
+#elif (defined(_WIN32) || (defined(__APPLE__) && !defined(_LIBCPP_HAS_C11_FEATURES)))
   return _mm_malloc(size, alignment);
 #else
   return std::aligned_alloc(alignment, size);
@@ -331,9 +331,9 @@ void* std_aligned_alloc(size_t alignment, size_t size) {
 }
 
 void std_aligned_free(void* ptr) {
-#if defined(__APPLE__)
+#if (defined(__APPLE__) && defined(_LIBCPP_HAS_C11_FEATURES)) || defined(__ANDROID__) || defined(__OpenBSD__) || (defined(__GLIBCXX__) && !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC) )
   free(ptr);
-#elif defined(_WIN32)
+#elif (defined(_WIN32) || (defined(__APPLE__) && !defined(_LIBCPP_HAS_C11_FEATURES)))
   _mm_free(ptr);
 #else
   free(ptr);