authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-01-17 05:13:13+01:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-04-25 21:49:39+02:00
log2b6ab594358cead1b9b97c062715b5c313edc391
tree37bd5b3b54bcffe9cd039d041ccc25606035627f
parent54573e354286f8f93f5ba003ff009b089a32dc25
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

cmake: update to LLVM 22

closes https://codeberg.org/ziglang/zig/issues/30558

5 files changed, 60 insertions(+), 44 deletions(-)

CMakeLists.txt+3-3
...@@ -133,9 +133,9 @@ else()...@@ -133,9 +133,9 @@ else()
133 set(ZIG_SYSTEM_LIBCXX "stdc++" CACHE STRING "system libcxx name for build.zig")133 set(ZIG_SYSTEM_LIBCXX "stdc++" CACHE STRING "system libcxx name for build.zig")
134endif()134endif()
135135
136find_package(llvm 21)136find_package(llvm 22)
137find_package(clang 21)137find_package(clang 22)
138find_package(lld 21)138find_package(lld 22)
139139
140if(ZIG_STATIC_ZLIB)140if(ZIG_STATIC_ZLIB)
141 if (MSVC)141 if (MSVC)
build.zig+14-6
...@@ -1207,13 +1207,16 @@ const zig_cpp_sources = [_][]const u8{...@@ -1207,13 +1207,16 @@ const zig_cpp_sources = [_][]const u8{
1207const clang_libs = [_][]const u8{1207const clang_libs = [_][]const u8{
1208 "clangFrontendTool",1208 "clangFrontendTool",
1209 "clangCodeGen",1209 "clangCodeGen",
1210 "clangStaticAnalyzerFrontend",
1211 "clangStaticAnalyzerCheckers",
1212 "clangStaticAnalyzerCore",
1213 "clangCrossTU",
1210 "clangFrontend",1214 "clangFrontend",
1211 "clangDriver",1215 "clangDriver",
1216 "clangOptions",
1212 "clangSerialization",1217 "clangSerialization",
1213 "clangSema",1218 "clangSema",
1214 "clangStaticAnalyzerFrontend",1219 "clangAnalysisLifetimeSafety",
1215 "clangStaticAnalyzerCheckers",
1216 "clangStaticAnalyzerCore",
1217 "clangAnalysis",1220 "clangAnalysis",
1218 "clangASTMatchers",1221 "clangASTMatchers",
1219 "clangAST",1222 "clangAST",
...@@ -1225,8 +1228,9 @@ const clang_libs = [_][]const u8{...@@ -1225,8 +1228,9 @@ const clang_libs = [_][]const u8{
1225 "clangLex",1228 "clangLex",
1226 "clangRewriteFrontend",1229 "clangRewriteFrontend",
1227 "clangRewrite",1230 "clangRewrite",
1228 "clangCrossTU",
1229 "clangIndex",1231 "clangIndex",
1232 "clangFormat",
1233 "clangToolingInclusions",
1230 "clangToolingCore",1234 "clangToolingCore",
1231 "clangExtractAPI",1235 "clangExtractAPI",
1232 "clangSupport",1236 "clangSupport",
...@@ -1374,11 +1378,12 @@ const llvm_libs = [_][]const u8{...@@ -1374,11 +1378,12 @@ const llvm_libs = [_][]const u8{
1374 "LLVMObjCopy",1378 "LLVMObjCopy",
1375 "LLVMMCA",1379 "LLVMMCA",
1376 "LLVMMCDisassembler",1380 "LLVMMCDisassembler",
1381 "LLVMDTLTO",
1377 "LLVMLTO",1382 "LLVMLTO",
1378 "LLVMFrontendOpenACC",1383 "LLVMFrontendOpenACC",
1379 "LLVMFrontendHLSL",
1380 "LLVMFrontendDriver",1384 "LLVMFrontendDriver",
1381 "LLVMExtensions",1385 "LLVMExtensions",
1386 "LLVMPlugins",
1382 "LLVMPasses",1387 "LLVMPasses",
1383 "LLVMHipStdPar",1388 "LLVMHipStdPar",
1384 "LLVMCoroutines",1389 "LLVMCoroutines",
...@@ -1405,6 +1410,7 @@ const llvm_libs = [_][]const u8{...@@ -1405,6 +1410,7 @@ const llvm_libs = [_][]const u8{
1405 "LLVMObjCARCOpts",1410 "LLVMObjCARCOpts",
1406 "LLVMCodeGenTypes",1411 "LLVMCodeGenTypes",
1407 "LLVMCGData",1412 "LLVMCGData",
1413 "LLVMCAS",
1408 "LLVMIRPrinter",1414 "LLVMIRPrinter",
1409 "LLVMInterfaceStub",1415 "LLVMInterfaceStub",
1410 "LLVMFileCheck",1416 "LLVMFileCheck",
...@@ -1423,15 +1429,17 @@ const llvm_libs = [_][]const u8{...@@ -1423,15 +1429,17 @@ const llvm_libs = [_][]const u8{
1423 "LLVMDebugInfoCodeView",1429 "LLVMDebugInfoCodeView",
1424 "LLVMDebugInfoGSYM",1430 "LLVMDebugInfoGSYM",
1425 "LLVMDebugInfoDWARF",1431 "LLVMDebugInfoDWARF",
1426 "LLVMDebugInfoDWARFLowLevel",
1427 "LLVMObject",1432 "LLVMObject",
1428 "LLVMTextAPI",1433 "LLVMTextAPI",
1429 "LLVMMCParser",1434 "LLVMMCParser",
1430 "LLVMIRReader",1435 "LLVMIRReader",
1431 "LLVMAsmParser",1436 "LLVMAsmParser",
1432 "LLVMMC",1437 "LLVMMC",
1438 "LLVMDebugInfoDWARFLowLevel",
1433 "LLVMBitReader",1439 "LLVMBitReader",
1440 "LLVMFrontendHLSL",
1434 "LLVMFuzzerCLI",1441 "LLVMFuzzerCLI",
1442 "LLVMABI",
1435 "LLVMCore",1443 "LLVMCore",
1436 "LLVMRemarks",1444 "LLVMRemarks",
1437 "LLVMBitstreamReader",1445 "LLVMBitstreamReader",
cmake/Findclang.cmake+12-8
...@@ -17,10 +17,10 @@ find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h...@@ -17,10 +17,10 @@ find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h
17if(${LLVM_LINK_MODE} STREQUAL "shared")17if(${LLVM_LINK_MODE} STREQUAL "shared")
18 find_library(CLANG_LIBRARIES18 find_library(CLANG_LIBRARIES
19 NAMES19 NAMES
20 libclang-cpp.so.2120 libclang-cpp.so.22
21 libclang-cpp.so.21.121 libclang-cpp.so.22.1
22 clang-cpp-21.022 clang-cpp-22.0
23 clang-cpp21023 clang-cpp220
24 clang-cpp24 clang-cpp
25 NAMES_PER_DIR25 NAMES_PER_DIR
26 HINTS "${LLVM_LIBDIRS}"26 HINTS "${LLVM_LIBDIRS}"
...@@ -44,13 +44,16 @@ else()...@@ -44,13 +44,16 @@ else()
4444
45 FIND_AND_ADD_CLANG_LIB(clangFrontendTool)45 FIND_AND_ADD_CLANG_LIB(clangFrontendTool)
46 FIND_AND_ADD_CLANG_LIB(clangCodeGen)46 FIND_AND_ADD_CLANG_LIB(clangCodeGen)
47 FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerFrontend)
48 FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerCheckers)
49 FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerCore)
50 FIND_AND_ADD_CLANG_LIB(clangCrossTU)
47 FIND_AND_ADD_CLANG_LIB(clangFrontend)51 FIND_AND_ADD_CLANG_LIB(clangFrontend)
48 FIND_AND_ADD_CLANG_LIB(clangDriver)52 FIND_AND_ADD_CLANG_LIB(clangDriver)
53 FIND_AND_ADD_CLANG_LIB(clangOptions)
49 FIND_AND_ADD_CLANG_LIB(clangSerialization)54 FIND_AND_ADD_CLANG_LIB(clangSerialization)
50 FIND_AND_ADD_CLANG_LIB(clangSema)55 FIND_AND_ADD_CLANG_LIB(clangSema)
51 FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerFrontend)56 FIND_AND_ADD_CLANG_LIB(clangAnalysisLifetimeSafety)
52 FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerCheckers)
53 FIND_AND_ADD_CLANG_LIB(clangStaticAnalyzerCore)
54 FIND_AND_ADD_CLANG_LIB(clangAnalysis)57 FIND_AND_ADD_CLANG_LIB(clangAnalysis)
55 FIND_AND_ADD_CLANG_LIB(clangASTMatchers)58 FIND_AND_ADD_CLANG_LIB(clangASTMatchers)
56 FIND_AND_ADD_CLANG_LIB(clangAST)59 FIND_AND_ADD_CLANG_LIB(clangAST)
...@@ -62,8 +65,9 @@ else()...@@ -62,8 +65,9 @@ else()
62 FIND_AND_ADD_CLANG_LIB(clangLex)65 FIND_AND_ADD_CLANG_LIB(clangLex)
63 FIND_AND_ADD_CLANG_LIB(clangRewriteFrontend)66 FIND_AND_ADD_CLANG_LIB(clangRewriteFrontend)
64 FIND_AND_ADD_CLANG_LIB(clangRewrite)67 FIND_AND_ADD_CLANG_LIB(clangRewrite)
65 FIND_AND_ADD_CLANG_LIB(clangCrossTU)
66 FIND_AND_ADD_CLANG_LIB(clangIndex)68 FIND_AND_ADD_CLANG_LIB(clangIndex)
69 FIND_AND_ADD_CLANG_LIB(clangFormat)
70 FIND_AND_ADD_CLANG_LIB(clangToolingInclusions)
67 FIND_AND_ADD_CLANG_LIB(clangToolingCore)71 FIND_AND_ADD_CLANG_LIB(clangToolingCore)
68 FIND_AND_ADD_CLANG_LIB(clangExtractAPI)72 FIND_AND_ADD_CLANG_LIB(clangExtractAPI)
69 FIND_AND_ADD_CLANG_LIB(clangSupport)73 FIND_AND_ADD_CLANG_LIB(clangSupport)
cmake/Findlld.cmake+19-19
...@@ -9,23 +9,23 @@...@@ -9,23 +9,23 @@
9find_path(LLD_INCLUDE_DIRS NAMES lld/Common/Driver.h9find_path(LLD_INCLUDE_DIRS NAMES lld/Common/Driver.h
10 HINTS ${LLVM_INCLUDE_DIRS}10 HINTS ${LLVM_INCLUDE_DIRS}
11 PATHS11 PATHS
12 /usr/lib/llvm-21/include12 /usr/lib/llvm-22/include
13 /usr/local/llvm210/include13 /usr/local/llvm220/include
14 /usr/local/llvm21/include14 /usr/local/llvm22/include
15 /usr/local/opt/lld@21/include15 /usr/local/opt/lld@22/include
16 /opt/homebrew/opt/lld@21/include16 /opt/homebrew/opt/lld@22/include
17 /home/linuxbrew/.linuxbrew/opt/lld@21/include17 /home/linuxbrew/.linuxbrew/opt/lld@22/include
18 /mingw64/include)18 /mingw64/include)
1919
20find_library(LLD_LIBRARY NAMES lld-21.0 lld210 lld NAMES_PER_DIR20find_library(LLD_LIBRARY NAMES lld-22.0 lld220 lld NAMES_PER_DIR
21 HINTS ${LLVM_LIBDIRS}21 HINTS ${LLVM_LIBDIRS}
22 PATHS22 PATHS
23 /usr/lib/llvm-21/lib23 /usr/lib/llvm-22/lib
24 /usr/local/llvm210/lib24 /usr/local/llvm220/lib
25 /usr/local/llvm21/lib25 /usr/local/llvm22/lib
26 /usr/local/opt/lld@21/lib26 /usr/local/opt/lld@22/lib
27 /opt/homebrew/opt/lld@21/lib27 /opt/homebrew/opt/lld@22/lib
28 /home/linuxbrew/.linuxbrew/opt/lld@21/lib28 /home/linuxbrew/.linuxbrew/opt/lld@22/lib
29)29)
30if(EXISTS ${LLD_LIBRARY})30if(EXISTS ${LLD_LIBRARY})
31 set(LLD_LIBRARIES ${LLD_LIBRARY})31 set(LLD_LIBRARIES ${LLD_LIBRARY})
...@@ -36,12 +36,12 @@ else()...@@ -36,12 +36,12 @@ else()
36 HINTS ${LLVM_LIBDIRS}36 HINTS ${LLVM_LIBDIRS}
37 PATHS37 PATHS
38 ${LLD_LIBDIRS}38 ${LLD_LIBDIRS}
39 /usr/lib/llvm-21/lib39 /usr/lib/llvm-22/lib
40 /usr/local/llvm210/lib40 /usr/local/llvm220/lib
41 /usr/local/llvm21/lib41 /usr/local/llvm22/lib
42 /usr/local/opt/lld@21/lib42 /usr/local/opt/lld@22/lib
43 /opt/homebrew/opt/lld@21/lib43 /opt/homebrew/opt/lld@22/lib
44 /home/linuxbrew/.linuxbrew/opt/lld@21/lib44 /home/linuxbrew/.linuxbrew/opt/lld@22/lib
45 /mingw64/lib45 /mingw64/lib
46 /c/msys64/mingw64/lib46 /c/msys64/mingw64/lib
47 c:/msys64/mingw64/lib)47 c:/msys64/mingw64/lib)
cmake/Findllvm.cmake+12-8
...@@ -17,12 +17,12 @@ if(ZIG_USE_LLVM_CONFIG)...@@ -17,12 +17,12 @@ if(ZIG_USE_LLVM_CONFIG)
17 # terminate when the right LLVM version is not found.17 # terminate when the right LLVM version is not found.
18 unset(LLVM_CONFIG_EXE CACHE)18 unset(LLVM_CONFIG_EXE CACHE)
19 find_program(LLVM_CONFIG_EXE19 find_program(LLVM_CONFIG_EXE
20 NAMES llvm-config-21 llvm-config-21.0 llvm-config210 llvm-config21 llvm-config NAMES_PER_DIR20 NAMES llvm-config-22 llvm-config-22.0 llvm-config220 llvm-config22 llvm-config NAMES_PER_DIR
21 PATHS21 PATHS
22 "/mingw64/bin"22 "/mingw64/bin"
23 "/c/msys64/mingw64/bin"23 "/c/msys64/mingw64/bin"
24 "c:/msys64/mingw64/bin"24 "c:/msys64/mingw64/bin"
25 "C:/Libraries/llvm-21.0.0/bin")25 "C:/Libraries/llvm-22.0.0/bin")
2626
27 if ("${LLVM_CONFIG_EXE}" STREQUAL "LLVM_CONFIG_EXE-NOTFOUND")27 if ("${LLVM_CONFIG_EXE}" STREQUAL "LLVM_CONFIG_EXE-NOTFOUND")
28 if (NOT LLVM_CONFIG_ERROR_MESSAGES STREQUAL "")28 if (NOT LLVM_CONFIG_ERROR_MESSAGES STREQUAL "")
...@@ -40,9 +40,9 @@ if(ZIG_USE_LLVM_CONFIG)...@@ -40,9 +40,9 @@ if(ZIG_USE_LLVM_CONFIG)
40 OUTPUT_STRIP_TRAILING_WHITESPACE)40 OUTPUT_STRIP_TRAILING_WHITESPACE)
4141
42 get_filename_component(LLVM_CONFIG_DIR "${LLVM_CONFIG_EXE}" DIRECTORY)42 get_filename_component(LLVM_CONFIG_DIR "${LLVM_CONFIG_EXE}" DIRECTORY)
43 if("${LLVM_CONFIG_VERSION}" VERSION_LESS 21 OR "${LLVM_CONFIG_VERSION}" VERSION_EQUAL 22 OR "${LLVM_CONFIG_VERSION}" VERSION_GREATER 22)43 if("${LLVM_CONFIG_VERSION}" VERSION_LESS 22 OR "${LLVM_CONFIG_VERSION}" VERSION_EQUAL 23 OR "${LLVM_CONFIG_VERSION}" VERSION_GREATER 23)
44 # Save the error message, in case this is the last llvm-config we find44 # Save the error message, in case this is the last llvm-config we find
45 list(APPEND LLVM_CONFIG_ERROR_MESSAGES "expected LLVM 21.x but found ${LLVM_CONFIG_VERSION} using ${LLVM_CONFIG_EXE}")45 list(APPEND LLVM_CONFIG_ERROR_MESSAGES "expected LLVM 22.x but found ${LLVM_CONFIG_VERSION} using ${LLVM_CONFIG_EXE}")
4646
47 # Ignore this directory and try the search again47 # Ignore this directory and try the search again
48 list(APPEND CMAKE_IGNORE_PATH "${LLVM_CONFIG_DIR}")48 list(APPEND CMAKE_IGNORE_PATH "${LLVM_CONFIG_DIR}")
...@@ -66,9 +66,9 @@ if(ZIG_USE_LLVM_CONFIG)...@@ -66,9 +66,9 @@ if(ZIG_USE_LLVM_CONFIG)
66 if (LLVM_CONFIG_ERROR)66 if (LLVM_CONFIG_ERROR)
67 # Save the error message, in case this is the last llvm-config we find67 # Save the error message, in case this is the last llvm-config we find
68 if (ZIG_SHARED_LLVM)68 if (ZIG_SHARED_LLVM)
69 list(APPEND LLVM_CONFIG_ERROR_MESSAGES "LLVM 21.x found at ${LLVM_CONFIG_EXE} does not support linking as a shared library")69 list(APPEND LLVM_CONFIG_ERROR_MESSAGES "LLVM 22.x found at ${LLVM_CONFIG_EXE} does not support linking as a shared library")
70 else()70 else()
71 list(APPEND LLVM_CONFIG_ERROR_MESSAGES "LLVM 21.x found at ${LLVM_CONFIG_EXE} does not support linking as a static library")71 list(APPEND LLVM_CONFIG_ERROR_MESSAGES "LLVM 22.x found at ${LLVM_CONFIG_EXE} does not support linking as a static library")
72 endif()72 endif()
7373
74 # Ignore this directory and try the search again74 # Ignore this directory and try the search again
...@@ -321,11 +321,12 @@ else()...@@ -321,11 +321,12 @@ else()
321 FIND_AND_ADD_LLVM_LIB(LLVMObjCopy)321 FIND_AND_ADD_LLVM_LIB(LLVMObjCopy)
322 FIND_AND_ADD_LLVM_LIB(LLVMMCA)322 FIND_AND_ADD_LLVM_LIB(LLVMMCA)
323 FIND_AND_ADD_LLVM_LIB(LLVMMCDisassembler)323 FIND_AND_ADD_LLVM_LIB(LLVMMCDisassembler)
324 FIND_AND_ADD_LLVM_LIB(LLVMDTLTO)
324 FIND_AND_ADD_LLVM_LIB(LLVMLTO)325 FIND_AND_ADD_LLVM_LIB(LLVMLTO)
325 FIND_AND_ADD_LLVM_LIB(LLVMFrontendOpenACC)326 FIND_AND_ADD_LLVM_LIB(LLVMFrontendOpenACC)
326 FIND_AND_ADD_LLVM_LIB(LLVMFrontendHLSL)
327 FIND_AND_ADD_LLVM_LIB(LLVMFrontendDriver)327 FIND_AND_ADD_LLVM_LIB(LLVMFrontendDriver)
328 FIND_AND_ADD_LLVM_LIB(LLVMExtensions)328 FIND_AND_ADD_LLVM_LIB(LLVMExtensions)
329 FIND_AND_ADD_LLVM_LIB(LLVMPlugins)
329 FIND_AND_ADD_LLVM_LIB(LLVMPasses)330 FIND_AND_ADD_LLVM_LIB(LLVMPasses)
330 FIND_AND_ADD_LLVM_LIB(LLVMHipStdPar)331 FIND_AND_ADD_LLVM_LIB(LLVMHipStdPar)
331 FIND_AND_ADD_LLVM_LIB(LLVMCoroutines)332 FIND_AND_ADD_LLVM_LIB(LLVMCoroutines)
...@@ -352,6 +353,7 @@ else()...@@ -352,6 +353,7 @@ else()
352 FIND_AND_ADD_LLVM_LIB(LLVMObjCARCOpts)353 FIND_AND_ADD_LLVM_LIB(LLVMObjCARCOpts)
353 FIND_AND_ADD_LLVM_LIB(LLVMCodeGenTypes)354 FIND_AND_ADD_LLVM_LIB(LLVMCodeGenTypes)
354 FIND_AND_ADD_LLVM_LIB(LLVMCGData)355 FIND_AND_ADD_LLVM_LIB(LLVMCGData)
356 FIND_AND_ADD_LLVM_LIB(LLVMCAS)
355 FIND_AND_ADD_LLVM_LIB(LLVMIRPrinter)357 FIND_AND_ADD_LLVM_LIB(LLVMIRPrinter)
356 FIND_AND_ADD_LLVM_LIB(LLVMInterfaceStub)358 FIND_AND_ADD_LLVM_LIB(LLVMInterfaceStub)
357 FIND_AND_ADD_LLVM_LIB(LLVMFileCheck)359 FIND_AND_ADD_LLVM_LIB(LLVMFileCheck)
...@@ -370,15 +372,17 @@ else()...@@ -370,15 +372,17 @@ else()
370 FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoCodeView)372 FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoCodeView)
371 FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoGSYM)373 FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoGSYM)
372 FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoDWARF)374 FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoDWARF)
373 FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoDWARFLowLevel)
374 FIND_AND_ADD_LLVM_LIB(LLVMObject)375 FIND_AND_ADD_LLVM_LIB(LLVMObject)
375 FIND_AND_ADD_LLVM_LIB(LLVMTextAPI)376 FIND_AND_ADD_LLVM_LIB(LLVMTextAPI)
376 FIND_AND_ADD_LLVM_LIB(LLVMMCParser)377 FIND_AND_ADD_LLVM_LIB(LLVMMCParser)
377 FIND_AND_ADD_LLVM_LIB(LLVMIRReader)378 FIND_AND_ADD_LLVM_LIB(LLVMIRReader)
378 FIND_AND_ADD_LLVM_LIB(LLVMAsmParser)379 FIND_AND_ADD_LLVM_LIB(LLVMAsmParser)
379 FIND_AND_ADD_LLVM_LIB(LLVMMC)380 FIND_AND_ADD_LLVM_LIB(LLVMMC)
381 FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoDWARFLowLevel)
380 FIND_AND_ADD_LLVM_LIB(LLVMBitReader)382 FIND_AND_ADD_LLVM_LIB(LLVMBitReader)
383 FIND_AND_ADD_LLVM_LIB(LLVMFrontendHLSL)
381 FIND_AND_ADD_LLVM_LIB(LLVMFuzzerCLI)384 FIND_AND_ADD_LLVM_LIB(LLVMFuzzerCLI)
385 FIND_AND_ADD_LLVM_LIB(LLVMABI)
382 FIND_AND_ADD_LLVM_LIB(LLVMCore)386 FIND_AND_ADD_LLVM_LIB(LLVMCore)
383 FIND_AND_ADD_LLVM_LIB(LLVMRemarks)387 FIND_AND_ADD_LLVM_LIB(LLVMRemarks)
384 FIND_AND_ADD_LLVM_LIB(LLVMBitstreamReader)388 FIND_AND_ADD_LLVM_LIB(LLVMBitstreamReader)