Skip to content

Commit 2678a8f

Browse files
committed
OMP fix
1 parent be80b12 commit 2678a8f

File tree

1 file changed

+28
-2
lines changed

1 file changed

+28
-2
lines changed

torch/lib/TH/CMakeLists.txt

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ IF(NOT TH_INSTALL_BIN_SUBDIR
2020
SET(TH_INSTALL_CMAKE_SUBDIR "share/cmake/TH" CACHE PATH "TH install cmake subdirectory")
2121
ENDIF()
2222

23+
INCLUDE (CheckIncludeFile)
24+
INCLUDE (CheckCSourceCompiles)
25+
INCLUDE (CheckCSourceRuns)
26+
2327
#######################################################################
2428
##### flags section
2529
######################################################################
@@ -43,6 +47,30 @@ IF(UNIX)
4347
ENDIF(UNIX)
4448

4549
# OpenMP support?
50+
FIND_PACKAGE(MKL)
51+
MESSAGE(STATUS ${MKL_LIBRARIES})
52+
IF (MKL_FOUND AND CMAKE_COMPILER_IS_GNUCC)
53+
MESSAGE(WARNING "MKL needs libiomp to use multithreading that conflicts with "
54+
"gcc's libgomp. Trying to hack around that.")
55+
56+
SET(BACKUP_FLAGS ${CMAKE_REQUIRED_FLAGS})
57+
SET(CMAKE_REQUIRED_FLAGS "-Wl,--as-needed" ${CMAKE_REQUIRED_FLAGS})
58+
CHECK_C_SOURCE_RUNS("
59+
int main()
60+
{
61+
return 0;
62+
}" HAVE_LINK_AS_NEEDED)
63+
SET(CMAKE_REQUIRED_FLAGS ${BACKUP_FLAGS})
64+
65+
IF (HAVE_LINK_AS_NEEDED)
66+
MESSAGE(STATUS "Adding -Wl,--as-needed")
67+
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,--as-needed")
68+
ELSE ()
69+
MESSAGE(WARNING "--as-needed flag not supported. OMP might not work properly")
70+
ENDIF ()
71+
ENDIF ()
72+
73+
4674
SET(WITH_OPENMP ON CACHE BOOL "OpenMP support if available?")
4775
IF (APPLE AND CMAKE_COMPILER_IS_GNUCC)
4876
EXEC_PROGRAM (uname ARGS -v OUTPUT_VARIABLE DARWIN_VERSION)
@@ -89,8 +117,6 @@ IF (CORTEXA9_FOUND)
89117
SET(CMAKE_C_FLAGS "-mcpu=cortex-a9 ${CMAKE_C_FLAGS}")
90118
ENDIF (CORTEXA9_FOUND)
91119

92-
INCLUDE (CheckIncludeFile)
93-
INCLUDE (CheckCSourceCompiles)
94120
CHECK_INCLUDE_FILE(cpuid.h HAVE_CPUID_H)
95121
# Check for a cpuid intrinsic
96122
IF(HAVE_CPUID_H)

0 commit comments

Comments
 (0)