mirror of
				https://github.com/bytecodealliance/wasm-micro-runtime.git
				synced 2025-10-31 13:17:31 +00:00 
			
		
		
		
	 16a4d71b34
			
		
	
	
		16a4d71b34
		
			
		
	
	
	
	
		
			
			Implement the GC (Garbage Collection) feature for interpreter mode, AOT mode and LLVM-JIT mode, and support most features of the latest spec proposal, and also enable the stringref feature. Use `cmake -DWAMR_BUILD_GC=1/0` to enable/disable the feature, and `wamrc --enable-gc` to generate the AOT file with GC supported. And update the AOT file version from 2 to 3 since there are many AOT ABI breaks, including the changes of AOT file format, the changes of AOT module/memory instance layouts, the AOT runtime APIs for the AOT code to invoke and so on.
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| # Copyright (C) 2019 Intel Corporation.  All rights reserved.
 | |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 | |
| 
 | |
| set (IWASM_GC_DIR ${CMAKE_CURRENT_LIST_DIR})
 | |
| 
 | |
| add_definitions (-DWASM_ENABLE_GC=1)
 | |
| 
 | |
| if (WAMR_TEST_GC EQUAL 1)
 | |
|   add_definitions (-DGC_MANUALLY=1 -DGC_IN_EVERY_ALLOCATION=1)
 | |
| endif ()
 | |
| 
 | |
| include_directories (${IWASM_GC_DIR})
 | |
| 
 | |
| file (GLOB source_all ${IWASM_GC_DIR}/*.c)
 | |
| 
 | |
| set (IWASM_GC_SOURCE ${source_all})
 | |
| 
 | |
| if (WAMR_BUILD_STRINGREF EQUAL 1)
 | |
|   set (IWASM_STRINGREF_DIR ${CMAKE_CURRENT_LIST_DIR}/stringref)
 | |
| 
 | |
|   add_definitions (-DWASM_ENABLE_STRINGREF=1)
 | |
| 
 | |
|   include_directories (${IWASM_STRINGREF_DIR})
 | |
| 
 | |
|   if (NOT DEFINED WAMR_STRINGREF_IMPL_SOURCE)
 | |
|     message(FATAL_ERROR "stringref feature enabled, but WAMR_STRINGREF_IMPL_SOURCE not set" )
 | |
|   else ()
 | |
|     if (${WAMR_STRINGREF_IMPL_SOURCE} STREQUAL "STUB")
 | |
|       set (IWASM_STRINGREF_SOURCE ${IWASM_STRINGREF_DIR}/stringref_stub.c)
 | |
|     else()
 | |
|       set (IWASM_STRINGREF_SOURCE ${WAMR_STRINGREF_IMPL_SOURCE})
 | |
|     endif()
 | |
|   endif ()
 | |
| 
 | |
|   set (IWASM_GC_SOURCE ${IWASM_GC_SOURCE} ${IWASM_STRINGREF_SOURCE})
 | |
| endif ()
 |