mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-03 14:21:30 +00:00 
			
		
		
		
	Patch by Arrowdodger. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140064 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			30 lines
		
	
	
		
			755 B
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			755 B
		
	
	
	
		
			CMake
		
	
	
	
	
	
# atomic builtins are required for threading support.
 | 
						|
 | 
						|
INCLUDE(CheckCXXSourceCompiles)
 | 
						|
 | 
						|
CHECK_CXX_SOURCE_COMPILES("
 | 
						|
#ifdef _MSC_VER
 | 
						|
#include <windows.h>
 | 
						|
#endif
 | 
						|
int main() {
 | 
						|
#ifdef _MSC_VER
 | 
						|
        volatile LONG val = 1;
 | 
						|
        MemoryBarrier();
 | 
						|
        InterlockedCompareExchange(&val, 0, 1);
 | 
						|
        InterlockedIncrement(&val);
 | 
						|
        InterlockedDecrement(&val);
 | 
						|
#else
 | 
						|
        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);
 | 
						|
#endif
 | 
						|
        return 0;
 | 
						|
      }
 | 
						|
" LLVM_HAS_ATOMICS)
 | 
						|
 | 
						|
if( NOT LLVM_HAS_ATOMICS )
 | 
						|
  message(STATUS "Warning: LLVM will be built thread-unsafe because atomic builtins are missing")
 | 
						|
endif()
 |