mirror of
				https://github.com/bytecodealliance/wasm-micro-runtime.git
				synced 2025-10-31 21:27:30 +00:00 
			
		
		
		
	 0f73ce1076
			
		
	
	
		0f73ce1076
		
			
		
	
	
	
	
		
			
			Update wasi-libc version to resolve the hang issue when running wasi-threads cases. Implement custom sync primitives as a counterpart of `pthread_barrier_wait` to attempt to replace pthread sync primitives since they seem to cause data races when running with the thread sanitizer.
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| # Copyright (C) 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 | |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 | |
| 
 | |
| if (APPLE)
 | |
|     set (HAVE_FLAG_SEARCH_PATHS_FIRST 0)
 | |
|     set (CMAKE_C_LINK_FLAGS "")
 | |
|     set (CMAKE_CXX_LINK_FLAGS "")
 | |
| endif ()
 | |
| 
 | |
| if (NOT DEFINED WASI_SDK_DIR)
 | |
|   set (WASI_SDK_DIR               "/opt/wasi-sdk")
 | |
| endif ()
 | |
| 
 | |
| if (DEFINED WASI_SYSROOT)
 | |
|   set (CMAKE_SYSROOT                "${WASI_SYSROOT}")
 | |
| endif ()
 | |
| 
 | |
| set (CMAKE_C_COMPILER               "${WASI_SDK_DIR}/bin/clang")
 | |
| set (CMAKE_ASM_COMPILER               "${WASI_SDK_DIR}/bin/clang")
 | |
| set (CMAKE_EXE_LINKER_FLAGS         "-target wasm32-wasi-threads")
 | |
| 
 | |
| if ("$ENV{COLLECT_CODE_COVERAGE}" STREQUAL "1" OR COLLECT_CODE_COVERAGE EQUAL 1)
 | |
|   set (CMAKE_C_FLAGS "")
 | |
|   set (CMAKE_CXX_FLAGS "")
 | |
| endif ()
 | |
| 
 | |
| function (compile_sample SOURCE_FILE)
 | |
|   get_filename_component (FILE_NAME ${SOURCE_FILE} NAME_WLE)
 | |
|   set (WASM_MODULE ${FILE_NAME}.wasm)
 | |
|   add_executable (${WASM_MODULE} ${SOURCE_FILE} ${ARGN})
 | |
| 
 | |
|   target_compile_options (${WASM_MODULE} PRIVATE
 | |
|     -pthread -ftls-model=local-exec)
 | |
| 
 | |
|   target_link_options (${WASM_MODULE} PRIVATE
 | |
|     -z stack-size=32768
 | |
|     LINKER:--export=__heap_base
 | |
|     LINKER:--export=__data_end
 | |
|     LINKER:--shared-memory,--max-memory=1966080
 | |
|     LINKER:--export=wasi_thread_start
 | |
|     LINKER:--export=malloc
 | |
|     LINKER:--export=free
 | |
|   )
 | |
| endfunction ()
 | |
| 
 | |
| compile_sample(no_pthread.c wasi_thread_start.S) |