diff options
| author | Alex Rønne Petersen <alex@alexrp.com> | 2025-07-16 04:41:14 +0200 |
|---|---|---|
| committer | Alex Rønne Petersen <alex@alexrp.com> | 2025-08-30 06:36:40 +0200 |
| commit | 008affa64559487c6886e27075bb5377ca915b4a (patch) | |
| tree | 88fb362c3666f116279315f968a6a304b4af99e2 | |
| parent | 558bea2a76179fcc00779fdd326e5a866956fc9b (diff) | |
| download | zig-008affa64559487c6886e27075bb5377ca915b4a.tar.gz zig-008affa64559487c6886e27075bb5377ca915b4a.zip | |
build: update to LLVM 21
Closes #20966.
| -rw-r--r-- | CMakeLists.txt | 6 | ||||
| -rw-r--r-- | build.zig | 22 | ||||
| -rw-r--r-- | cmake/Findclang.cmake | 9 | ||||
| -rw-r--r-- | cmake/Findlld.cmake | 38 | ||||
| -rw-r--r-- | cmake/Findllvm.cmake | 33 |
5 files changed, 56 insertions, 52 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 0933a88035..41bc62cead 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -133,9 +133,9 @@ else() set(ZIG_SYSTEM_LIBCXX "stdc++" CACHE STRING "system libcxx name for build.zig") endif() -find_package(llvm 20) -find_package(clang 20) -find_package(lld 20) +find_package(llvm 21) +find_package(clang 21) +find_package(lld 21) if(ZIG_STATIC_ZLIB) if (MSVC) @@ -1176,7 +1176,6 @@ const clang_libs = [_][]const u8{ "clangBasic", "clangEdit", "clangLex", - "clangARCMigrate", "clangRewriteFrontend", "clangRewrite", "clangCrossTU", @@ -1322,30 +1321,31 @@ const llvm_libs = [_][]const u8{ "LLVMOrcTargetProcess", "LLVMOrcShared", "LLVMDWP", + "LLVMDWARFCFIChecker", "LLVMDebugInfoLogicalView", - "LLVMDebugInfoGSYM", "LLVMOption", - "LLVMObjectYAML", "LLVMObjCopy", "LLVMMCA", "LLVMMCDisassembler", "LLVMLTO", + "LLVMFrontendOpenACC", + "LLVMFrontendHLSL", + "LLVMFrontendDriver", + "LLVMExtensions", "LLVMPasses", "LLVMHipStdPar", - "LLVMCFGuard", "LLVMCoroutines", + "LLVMCFGuard", "LLVMipo", + "LLVMInstrumentation", "LLVMVectorize", "LLVMSandboxIR", "LLVMLinker", - "LLVMInstrumentation", "LLVMFrontendOpenMP", - "LLVMFrontendOffloading", - "LLVMFrontendOpenACC", - "LLVMFrontendHLSL", - "LLVMFrontendDriver", + "LLVMFrontendDirective", "LLVMFrontendAtomic", - "LLVMExtensions", + "LLVMFrontendOffloading", + "LLVMObjectYAML", "LLVMDWARFLinkerParallel", "LLVMDWARFLinkerClassic", "LLVMDWARFLinker", @@ -1374,7 +1374,9 @@ const llvm_libs = [_][]const u8{ "LLVMDebugInfoPDB", "LLVMDebugInfoMSF", "LLVMDebugInfoCodeView", + "LLVMDebugInfoGSYM", "LLVMDebugInfoDWARF", + "LLVMDebugInfoDWARFLowLevel", "LLVMObject", "LLVMTextAPI", "LLVMMCParser", diff --git a/cmake/Findclang.cmake b/cmake/Findclang.cmake index e47d9a0b48..4b7363da9c 100644 --- a/cmake/Findclang.cmake +++ b/cmake/Findclang.cmake @@ -17,10 +17,10 @@ find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h if(${LLVM_LINK_MODE} STREQUAL "shared") find_library(CLANG_LIBRARIES NAMES - libclang-cpp.so.20 - libclang-cpp.so.20.1 - clang-cpp-20.0 - clang-cpp200 + libclang-cpp.so.21 + libclang-cpp.so.21.1 + clang-cpp-21.0 + clang-cpp210 clang-cpp NAMES_PER_DIR HINTS "${LLVM_LIBDIRS}" @@ -60,7 +60,6 @@ else() FIND_AND_ADD_CLANG_LIB(clangBasic) FIND_AND_ADD_CLANG_LIB(clangEdit) FIND_AND_ADD_CLANG_LIB(clangLex) - FIND_AND_ADD_CLANG_LIB(clangARCMigrate) FIND_AND_ADD_CLANG_LIB(clangRewriteFrontend) FIND_AND_ADD_CLANG_LIB(clangRewrite) FIND_AND_ADD_CLANG_LIB(clangCrossTU) diff --git a/cmake/Findlld.cmake b/cmake/Findlld.cmake index e6d9ba89ba..61cf1cd883 100644 --- a/cmake/Findlld.cmake +++ b/cmake/Findlld.cmake @@ -9,23 +9,23 @@ find_path(LLD_INCLUDE_DIRS NAMES lld/Common/Driver.h HINTS ${LLVM_INCLUDE_DIRS} PATHS - /usr/lib/llvm-20/include - /usr/local/llvm200/include - /usr/local/llvm20/include - /usr/local/opt/lld@20/include - /opt/homebrew/opt/lld@20/include - /home/linuxbrew/.linuxbrew/opt/lld@20/include + /usr/lib/llvm-21/include + /usr/local/llvm210/include + /usr/local/llvm21/include + /usr/local/opt/lld@21/include + /opt/homebrew/opt/lld@21/include + /home/linuxbrew/.linuxbrew/opt/lld@21/include /mingw64/include) -find_library(LLD_LIBRARY NAMES lld-20.0 lld200 lld NAMES_PER_DIR +find_library(LLD_LIBRARY NAMES lld-21.0 lld210 lld NAMES_PER_DIR HINTS ${LLVM_LIBDIRS} PATHS - /usr/lib/llvm-20/lib - /usr/local/llvm200/lib - /usr/local/llvm20/lib - /usr/local/opt/lld@20/lib - /opt/homebrew/opt/lld@20/lib - /home/linuxbrew/.linuxbrew/opt/lld@20/lib + /usr/lib/llvm-21/lib + /usr/local/llvm210/lib + /usr/local/llvm21/lib + /usr/local/opt/lld@21/lib + /opt/homebrew/opt/lld@21/lib + /home/linuxbrew/.linuxbrew/opt/lld@21/lib ) if(EXISTS ${LLD_LIBRARY}) set(LLD_LIBRARIES ${LLD_LIBRARY}) @@ -36,12 +36,12 @@ else() HINTS ${LLVM_LIBDIRS} PATHS ${LLD_LIBDIRS} - /usr/lib/llvm-20/lib - /usr/local/llvm200/lib - /usr/local/llvm20/lib - /usr/local/opt/lld@20/lib - /opt/homebrew/opt/lld@20/lib - /home/linuxbrew/.linuxbrew/opt/lld@20/lib + /usr/lib/llvm-21/lib + /usr/local/llvm210/lib + /usr/local/llvm21/lib + /usr/local/opt/lld@21/lib + /opt/homebrew/opt/lld@21/lib + /home/linuxbrew/.linuxbrew/opt/lld@21/lib /mingw64/lib /c/msys64/mingw64/lib c:/msys64/mingw64/lib) diff --git a/cmake/Findllvm.cmake b/cmake/Findllvm.cmake index 5ff5de869c..3ecaaf6809 100644 --- a/cmake/Findllvm.cmake +++ b/cmake/Findllvm.cmake @@ -17,12 +17,12 @@ if(ZIG_USE_LLVM_CONFIG) # terminate when the right LLVM version is not found. unset(LLVM_CONFIG_EXE CACHE) find_program(LLVM_CONFIG_EXE - NAMES llvm-config-20 llvm-config-20.0 llvm-config200 llvm-config20 llvm-config NAMES_PER_DIR + NAMES llvm-config-21 llvm-config-21.0 llvm-config210 llvm-config21 llvm-config NAMES_PER_DIR PATHS "/mingw64/bin" "/c/msys64/mingw64/bin" "c:/msys64/mingw64/bin" - "C:/Libraries/llvm-20.0.0/bin") + "C:/Libraries/llvm-21.0.0/bin") if ("${LLVM_CONFIG_EXE}" STREQUAL "LLVM_CONFIG_EXE-NOTFOUND") if (NOT LLVM_CONFIG_ERROR_MESSAGES STREQUAL "") @@ -40,9 +40,9 @@ if(ZIG_USE_LLVM_CONFIG) OUTPUT_STRIP_TRAILING_WHITESPACE) get_filename_component(LLVM_CONFIG_DIR "${LLVM_CONFIG_EXE}" DIRECTORY) - if("${LLVM_CONFIG_VERSION}" VERSION_LESS 20 OR "${LLVM_CONFIG_VERSION}" VERSION_EQUAL 21 OR "${LLVM_CONFIG_VERSION}" VERSION_GREATER 21) + if("${LLVM_CONFIG_VERSION}" VERSION_LESS 21 OR "${LLVM_CONFIG_VERSION}" VERSION_EQUAL 22 OR "${LLVM_CONFIG_VERSION}" VERSION_GREATER 22) # Save the error message, in case this is the last llvm-config we find - list(APPEND LLVM_CONFIG_ERROR_MESSAGES "expected LLVM 20.x but found ${LLVM_CONFIG_VERSION} using ${LLVM_CONFIG_EXE}") + list(APPEND LLVM_CONFIG_ERROR_MESSAGES "expected LLVM 21.x but found ${LLVM_CONFIG_VERSION} using ${LLVM_CONFIG_EXE}") # Ignore this directory and try the search again list(APPEND CMAKE_IGNORE_PATH "${LLVM_CONFIG_DIR}") @@ -66,9 +66,9 @@ if(ZIG_USE_LLVM_CONFIG) if (LLVM_CONFIG_ERROR) # Save the error message, in case this is the last llvm-config we find if (ZIG_SHARED_LLVM) - list(APPEND LLVM_CONFIG_ERROR_MESSAGES "LLVM 20.x found at ${LLVM_CONFIG_EXE} does not support linking as a shared library") + list(APPEND LLVM_CONFIG_ERROR_MESSAGES "LLVM 21.x found at ${LLVM_CONFIG_EXE} does not support linking as a shared library") else() - list(APPEND LLVM_CONFIG_ERROR_MESSAGES "LLVM 20.x found at ${LLVM_CONFIG_EXE} does not support linking as a static library") + list(APPEND LLVM_CONFIG_ERROR_MESSAGES "LLVM 21.x found at ${LLVM_CONFIG_EXE} does not support linking as a static library") endif() # Ignore this directory and try the search again @@ -315,30 +315,31 @@ else() FIND_AND_ADD_LLVM_LIB(LLVMOrcTargetProcess) FIND_AND_ADD_LLVM_LIB(LLVMOrcShared) FIND_AND_ADD_LLVM_LIB(LLVMDWP) + FIND_AND_ADD_LLVM_LIB(LLVMDWARFCFIChecker) FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoLogicalView) - FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoGSYM) FIND_AND_ADD_LLVM_LIB(LLVMOption) - FIND_AND_ADD_LLVM_LIB(LLVMObjectYAML) FIND_AND_ADD_LLVM_LIB(LLVMObjCopy) FIND_AND_ADD_LLVM_LIB(LLVMMCA) FIND_AND_ADD_LLVM_LIB(LLVMMCDisassembler) FIND_AND_ADD_LLVM_LIB(LLVMLTO) + FIND_AND_ADD_LLVM_LIB(LLVMFrontendOpenACC) + FIND_AND_ADD_LLVM_LIB(LLVMFrontendHLSL) + FIND_AND_ADD_LLVM_LIB(LLVMFrontendDriver) + FIND_AND_ADD_LLVM_LIB(LLVMExtensions) FIND_AND_ADD_LLVM_LIB(LLVMPasses) FIND_AND_ADD_LLVM_LIB(LLVMHipStdPar) - FIND_AND_ADD_LLVM_LIB(LLVMCFGuard) FIND_AND_ADD_LLVM_LIB(LLVMCoroutines) + FIND_AND_ADD_LLVM_LIB(LLVMCFGuard) FIND_AND_ADD_LLVM_LIB(LLVMipo) + FIND_AND_ADD_LLVM_LIB(LLVMInstrumentation) FIND_AND_ADD_LLVM_LIB(LLVMVectorize) FIND_AND_ADD_LLVM_LIB(LLVMSandboxIR) FIND_AND_ADD_LLVM_LIB(LLVMLinker) - FIND_AND_ADD_LLVM_LIB(LLVMInstrumentation) FIND_AND_ADD_LLVM_LIB(LLVMFrontendOpenMP) - FIND_AND_ADD_LLVM_LIB(LLVMFrontendOffloading) - FIND_AND_ADD_LLVM_LIB(LLVMFrontendOpenACC) - FIND_AND_ADD_LLVM_LIB(LLVMFrontendHLSL) - FIND_AND_ADD_LLVM_LIB(LLVMFrontendDriver) + FIND_AND_ADD_LLVM_LIB(LLVMFrontendDirective) FIND_AND_ADD_LLVM_LIB(LLVMFrontendAtomic) - FIND_AND_ADD_LLVM_LIB(LLVMExtensions) + FIND_AND_ADD_LLVM_LIB(LLVMFrontendOffloading) + FIND_AND_ADD_LLVM_LIB(LLVMObjectYAML) FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinkerParallel) FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinkerClassic) FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinker) @@ -367,7 +368,9 @@ else() FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoPDB) FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoMSF) FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoCodeView) + FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoGSYM) FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoDWARF) + FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoDWARFLowLevel) FIND_AND_ADD_LLVM_LIB(LLVMObject) FIND_AND_ADD_LLVM_LIB(LLVMTextAPI) FIND_AND_ADD_LLVM_LIB(LLVMMCParser) |
