Disable OpenMP for llvm-gcc 4.2.x
authorRoland Schulz <roland@utk.edu>
Sun, 29 Apr 2012 15:10:51 +0000 (11:10 -0400)
committerRoland Schulz <roland@utk.edu>
Sun, 29 Apr 2012 15:12:38 +0000 (11:12 -0400)
Fixes #900

Change-Id: Ibd80b2e3768e25f5091441a65785f539dc3b7050

cmake/gmxCFlags.cmake

index cc6a5d64354d5096ce838d402a0faa5cc954bc3d..868f3acc23fdcca60d92d2eeac6a5c9b648a2f7d 100644 (file)
@@ -30,6 +30,17 @@ MACRO(gmx_c_flags)
 
     # gcc
     if(CMAKE_COMPILER_IS_GNUCC)
+
+        #Fix for LLVM OpenMP bug (redmine 900). Needs to run before OpenMP flags are set below.
+        if(GMX_OPENMP)
+            exec_program(${CMAKE_C_COMPILER} ARGS --version OUTPUT_VARIABLE _compiler_output)
+            if(_compiler_output MATCHES "llvm.*4\\.2")
+                message(STATUS "OpenMP multithreading not supported with llvm-gcc 4.2, disabled")
+                set(GMX_OPENMP OFF CACHE BOOL
+                    "OpenMP multithreading not not supported with llvm-gcc 4.2, disabled!" FORCE)
+            endif()
+        endif()
+
         #flags are added in reverse order and -Wno* need to appear after -Wall
         if(NOT GMX_OPENMP)
             GMX_TEST_CFLAG(CFLAGS_PRAGMA "-Wno-unknown-pragmas" GMXC_CFLAGS)