Merge 'origin/release-2019' into release-2020
[alexxy/gromacs.git] / cmake / gmxCFlags.cmake
index 75e2176868547874645753821d01955aed7b3e2b..a7a68a617cb06d72e97057b2146d38aa5d884c54 100644 (file)
@@ -434,6 +434,25 @@ GMX_TEST_CFLAG(CFLAGS_WARN "/W3;/wd161;/wd177;/wd411;/wd593;/wd981;/wd1418;/wd14
         endif()
     endif()
 
+    # Apple bastardized version of Clang
+    if(${CMAKE_C_COMPILER_ID} MATCHES "AppleClang")
+        if(${CMAKE_C_COMPILER_VERSION} VERSION_GREATER 11.0)
+            # Mac OS Catalina ships with a horribly broken compiler (version 11.0.0.11000033)
+            # that checks stack alignment by default, but their own C library
+            # does not align the stack properly. Embarrassing, Apple...
+            GMX_TEST_CFLAG(CFLAG_NO_STACK_CHECK "-fno-stack-check" GMXC_CFLAGS)
+        endif()
+    endif()
+
+    if(${CMAKE_CXX_COMPILER_ID} MATCHES "AppleClang")
+        if(${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER 11.0)
+            # Mac OS Catalina ships with a horribly broken compiler (version 11.0.0.11000033)
+            # that checks stack alignment by default, but their own C library
+            # does not align the stack properly. Embarrassing, Apple...
+            GMX_TEST_CXXFLAG(CXXFLAG_NO_STACK_CHECK "-fno-stack-check" GMXC_CXXFLAGS)
+        endif()
+    endif()
+
     # Fujitsu compilers on PrimeHPC/Sparc64
     if(${CMAKE_C_COMPILER_ID} MATCHES Fujitsu OR
        (${CMAKE_C_COMPILER_ID} MATCHES unknown AND ${CMAKE_C_COMPILER} MATCHES ^fcc))