forked from OSchip/llvm-project
Implement cmake LLVM_MULTITHREADED gcc atomic builtin checks.
llvm-svn: 76221
This commit is contained in:
parent
46f079e33f
commit
64c6d42a9a
|
@ -76,6 +76,9 @@ if( LLVM_USING_GLIBC )
|
|||
add_llvm_definitions( -D_GNU_SOURCE )
|
||||
endif()
|
||||
|
||||
# Define LLVM_MULTITHREADED if gcc atomic builtins exists.
|
||||
include(CheckAtomic)
|
||||
|
||||
include(CheckCXXCompilerFlag)
|
||||
check_cxx_compiler_flag("-fPIC" SUPPORTS_FPIC_FLAG)
|
||||
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
# atomic builtins are required for threading support.
|
||||
|
||||
INCLUDE(CheckCXXSourceCompiles)
|
||||
|
||||
CHECK_CXX_SOURCE_COMPILES("
|
||||
int main() {
|
||||
volatile unsigned long val = 1;
|
||||
__sync_synchronize();
|
||||
__sync_val_compare_and_swap(&val, 1, 0);
|
||||
__sync_add_and_fetch(&val, 1);
|
||||
__sync_sub_and_fetch(&val, 1);
|
||||
return 0;
|
||||
}
|
||||
" LLVM_MULTITHREADED)
|
||||
|
||||
if( NOT LLVM_MULTITHREADED )
|
||||
message(STATUS "Warning: LLVM will be built thread-unsafe because atomic builtins are missing")
|
||||
endif()
|
|
@ -467,6 +467,9 @@
|
|||
/* Installation directory for man pages */
|
||||
#undef LLVM_MANDIR
|
||||
|
||||
/* Build multithreading support into LLVM */
|
||||
#cmakedefine LLVM_MULTITHREADED ${LLVM_MULTITHREADED}
|
||||
|
||||
/* Define if this is Unixish platform */
|
||||
#cmakedefine LLVM_ON_UNIX ${LLVM_ON_UNIX}
|
||||
|
||||
|
|
Loading…
Reference in New Issue