@@ -66,7 +66,14 @@ function(initialize_wasi_toolchain)
6666 WASI_SYSROOT_OUTPUT CMAKE_SYSROOT
6767 WASI_SDK_BIN_OUTPUT WASI_SDK_BIN
6868 )
69- string (APPEND CMAKE_CXX_FLAGS " -fwasm-exceptions -mllvm -wasm-use-legacy-eh=false -Wl,-lunwind" )
69+
70+ # Add -mllvm flags without triggering unused argument warnings in older versions of clang that don't support them
71+ string (APPEND CMAKE_CXX_FLAGS " --start-no-unused-arguments" )
72+ string (APPEND CMAKE_CXX_FLAGS " -mllvm -wasm-use-legacy-eh=false -Wl,-lunwind" )
73+ string (APPEND CMAKE_CXX_FLAGS " --end-no-unused-arguments" )
74+
75+ # Link against libunwind for exception handling support.
76+ string (APPEND CMAKE_CXX_FLAGS " -fwasm-exceptions" )
7077 string (APPEND CMAKE_EXE_LINKER_FLAGS " -lunwind" )
7178 else ()
7279 include (${CMAKE_CURRENT_FUNCTION_LIST_DIR } /wasi-sdk.bootstrap.cmake )
@@ -123,9 +130,15 @@ function(initialize_wasi_toolchain)
123130 endif ()
124131
125132 if (arg_ENABLE_EXPERIMENTAL_SETJMP)
126- # Enable SJLJ support
133+ # Add -mllvm flags without triggering unused argument warnings in older versions of clang that don't support them
134+ string (APPEND CMAKE_C_FLAGS " --start-no-unused-arguments" )
127135 string (APPEND CMAKE_C_FLAGS " -mllvm -wasm-enable-sjlj -mllvm -wasm-use-legacy-eh=false -Wl,-lsetjmp" )
136+ string (APPEND CMAKE_C_FLAGS " --end-no-unused-arguments" )
137+ string (APPEND CMAKE_CXX_FLAGS " --start-no-unused-arguments" )
128138 string (APPEND CMAKE_CXX_FLAGS " -mllvm -wasm-enable-sjlj -mllvm -wasm-use-legacy-eh=false -Wl,-lsetjmp" )
139+ string (APPEND CMAKE_CXX_FLAGS " --end-no-unused-arguments" )
140+
141+ # Link against setjmp library for setjmp/longjmp support.
129142 string (APPEND CMAKE_EXE_LINKER_FLAGS " -lsetjmp" )
130143 endif ()
131144
0 commit comments