From b7d8add13bc2703a3f892b7670b1e12bd2b16d26 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Tue, 3 Mar 2026 09:23:05 -0600 Subject: [PATCH] Update to LLVM 22.1.0 (#585) Keeping LLVM up-to-date. Closes #595 --- cmake/wasi-sdk-sysroot.cmake | 29 ++++++++++++++++++----------- src/llvm-project | 2 +- tests/CMakeLists.txt | 5 +++++ 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/cmake/wasi-sdk-sysroot.cmake b/cmake/wasi-sdk-sysroot.cmake index 7be2a18..c19d0c6 100644 --- a/cmake/wasi-sdk-sysroot.cmake +++ b/cmake/wasi-sdk-sysroot.cmake @@ -101,7 +101,7 @@ function(define_compiler_rt target) add_dependencies(compiler-rt-build compiler-rt-build-${target}) endfunction() -define_compiler_rt(wasm32-wasi) +define_compiler_rt(wasm32-wasip1) define_compiler_rt(wasm32-wasip1-threads) # In addition to the default installation of `compiler-rt` itself also copy @@ -118,12 +118,12 @@ add_custom_target(compiler-rt-post-build COMMAND ${CMAKE_COMMAND} -E copy_directory ${clang_resource_dir}/include ${wasi_resource_dir}/include - # Copy the `lib/wasm32-unknown-wasi` folder to `lib/wasm32-unknown-wasi{p1,p2}` to ensure that those + # Copy the `lib/wasm32-unknown-wasip1` folder to `lib/wasm32-unknown-wasi{,p2}` to ensure that those # OS-strings also work for looking up the compiler-rt.a file. COMMAND ${CMAKE_COMMAND} -E copy_directory - ${wasi_resource_dir}/lib/wasm32-unknown-wasi ${wasi_resource_dir}/lib/wasm32-unknown-wasip1 + ${wasi_resource_dir}/lib/wasm32-unknown-wasip1 ${wasi_resource_dir}/lib/wasm32-unknown-wasi COMMAND ${CMAKE_COMMAND} -E copy_directory - ${wasi_resource_dir}/lib/wasm32-unknown-wasi ${wasi_resource_dir}/lib/wasm32-unknown-wasip2 + ${wasi_resource_dir}/lib/wasm32-unknown-wasip1 ${wasi_resource_dir}/lib/wasm32-unknown-wasip2 # Copy the `lib/wasm32-unknown-wasip1-threads` folder to `lib/wasm32-unknown-wasi-threads` COMMAND ${CMAKE_COMMAND} -E copy_directory ${wasi_resource_dir}/lib/wasm32-unknown-wasip1-threads ${wasi_resource_dir}/lib/wasm32-unknown-wasi-threads @@ -150,6 +150,12 @@ function(define_wasi_libc_sub target target_suffix lto) list(APPEND extra_cflags_list -fPIC) endif() + # The `wasm32-wasi` target is deprecated in clang, so ignore the deprecation + # warnings for now. + if(${target} STREQUAL wasm32-wasi OR ${target} STREQUAL wasm32-wasi-threads) + list(APPEND extra_cflags_list -Wno-deprecated) + endif() + list(JOIN extra_cflags_list " " extra_cflags) if(${target} MATCHES threads) @@ -174,6 +180,7 @@ function(define_wasi_libc_sub target target_suffix lto) -DTARGET_TRIPLE=${target} -DCMAKE_INSTALL_PREFIX=${wasi_sysroot} -DCMAKE_C_FLAGS=${extra_cflags} + -DCMAKE_ASM_FLAGS=${extra_cflags} -DBUILTINS_LIB=${libcompiler_rt_a} -DUSE_WASM_COMPONENT_LD=OFF -DWASI_SDK_VERSION=${wasi_sdk_version} @@ -245,6 +252,12 @@ function(define_libcxx_sub target target_suffix extra_target_flags extra_libdir_ list(APPEND extra_flags -fwasm-exceptions -mllvm -wasm-use-legacy-eh=false) endif() + # The `wasm32-wasi` target is deprecated in clang, so ignore the deprecation + # warnings for now. + if(${target} STREQUAL wasm32-wasi OR ${target} STREQUAL wasm32-wasi-threads) + list(APPEND extra_flags -Wno-deprecated) + endif() + set(extra_cflags_list ${CMAKE_C_FLAGS} ${extra_flags}) list(JOIN extra_cflags_list " " extra_cflags) set(extra_cxxflags_list ${CMAKE_CXX_FLAGS} ${extra_flags}) @@ -259,21 +272,17 @@ function(define_libcxx_sub target target_suffix extra_target_flags extra_libdir_ -DCMAKE_INSTALL_INCLUDEDIR=${wasi_sysroot}/include/${target} -DCMAKE_STAGING_PREFIX=${wasi_sysroot} -DCMAKE_POSITION_INDEPENDENT_CODE=${pic} - -DCXX_SUPPORTS_CXX11=ON -DLIBCXX_ENABLE_THREADS:BOOL=ON -DLIBCXX_HAS_PTHREAD_API:BOOL=ON -DLIBCXX_HAS_EXTERNAL_THREAD_API:BOOL=OFF - -DLIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY:BOOL=OFF -DLIBCXX_HAS_WIN32_THREAD_API:BOOL=OFF -DLLVM_COMPILER_CHECKED=ON -DLIBCXX_ENABLE_SHARED:BOOL=${pic} - -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY:BOOL=OFF -DLIBCXX_ENABLE_EXCEPTIONS:BOOL=${WASI_SDK_EXCEPTIONS} -DLIBCXX_ENABLE_FILESYSTEM:BOOL=ON -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT:BOOL=OFF -DLIBCXX_CXX_ABI=libcxxabi - -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${llvm_proj_dir}/libcxxabi/include - -DLIBCXX_HAS_MUSL_LIBC:BOOL=ON + -DLIBCXX_HAS_MUSL_LIBC:BOOL=OFF -DLIBCXX_ABI_VERSION=2 -DLIBCXXABI_ENABLE_EXCEPTIONS:BOOL=${WASI_SDK_EXCEPTIONS} -DLIBCXXABI_ENABLE_SHARED:BOOL=${pic} @@ -281,9 +290,7 @@ function(define_libcxx_sub target target_suffix extra_target_flags extra_libdir_ -DLIBCXXABI_ENABLE_THREADS:BOOL=ON -DLIBCXXABI_HAS_PTHREAD_API:BOOL=ON -DLIBCXXABI_HAS_EXTERNAL_THREAD_API:BOOL=OFF - -DLIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY:BOOL=OFF -DLIBCXXABI_HAS_WIN32_THREAD_API:BOOL=OFF - -DLIBCXXABI_ENABLE_PIC:BOOL=${pic} -DLIBCXXABI_USE_LLVM_UNWINDER:BOOL=${WASI_SDK_EXCEPTIONS} -DLIBUNWIND_ENABLE_SHARED:BOOL=${pic} -DLIBUNWIND_ENABLE_THREADS:BOOL=ON diff --git a/src/llvm-project b/src/llvm-project index 222fc11..4434dab 160000 --- a/src/llvm-project +++ b/src/llvm-project @@ -1 +1 @@ -Subproject commit 222fc11f2b8f25f6a0f4976272ef1bb7bf49521d +Subproject commit 4434dabb69916856b824f68a64b029c67175e532 diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index a213392..3ed4776 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -88,6 +88,11 @@ function(add_testcase runwasi test) target_link_options(${target_name} PRIVATE -pthread) endif() + if(target STREQUAL wasm32-wasi OR target STREQUAL wasm32-wasi-threads) + target_compile_options(${target_name} PRIVATE -Wno-deprecated) + target_link_options(${target_name} PRIVATE -Wno-deprecated) + endif() + if(runwasi) set(runner ${runwasi}) if(${runner} MATCHES wasmtime)