Commit c712f18d74

Alex Rønne Petersen <alex@alexrp.com>
2025-02-05 10:15:15
build: Update to LLVM/Clang 20.
1 parent 50cb2fa
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.19
-      libclang-cpp.so.19.1
-      clang-cpp-19.0
-      clang-cpp190
+      libclang-cpp.so.20
+      libclang-cpp.so.20.1
+      clang-cpp-20.0
+      clang-cpp200
       clang-cpp
     NAMES_PER_DIR
     HINTS "${LLVM_LIBDIRS}"
cmake/Findlld.cmake
@@ -9,21 +9,21 @@
 find_path(LLD_INCLUDE_DIRS NAMES lld/Common/Driver.h
     HINTS ${LLVM_INCLUDE_DIRS}
     PATHS
-        /usr/lib/llvm-19/include
-        /usr/local/llvm190/include
-        /usr/local/llvm19/include
-        /usr/local/opt/lld@19/include
-        /opt/homebrew/opt/lld@19/include
+        /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
         /mingw64/include)
 
-find_library(LLD_LIBRARY NAMES lld-19.0 lld190 lld NAMES_PER_DIR
+find_library(LLD_LIBRARY NAMES lld-20.0 lld200 lld NAMES_PER_DIR
     HINTS ${LLVM_LIBDIRS}
     PATHS
-        /usr/lib/llvm-19/lib
-        /usr/local/llvm190/lib
-        /usr/local/llvm19/lib
-        /usr/local/opt/lld@19/lib
-        /opt/homebrew/opt/lld@19/lib
+        /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
 )
 if(EXISTS ${LLD_LIBRARY})
     set(LLD_LIBRARIES ${LLD_LIBRARY})
@@ -34,11 +34,11 @@ else()
             HINTS ${LLVM_LIBDIRS}
             PATHS
                 ${LLD_LIBDIRS}
-                /usr/lib/llvm-19/lib
-                /usr/local/llvm190/lib
-                /usr/local/llvm19/lib
-                /usr/local/opt/lld@19/lib
-                /opt/homebrew/opt/lld@19/lib
+                /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
                 /mingw64/lib
                 /c/msys64/mingw64/lib
                 c:/msys64/mingw64/lib)
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-19 llvm-config-19.0 llvm-config190 llvm-config19 llvm-config NAMES_PER_DIR
+        NAMES llvm-config-20 llvm-config-20.0 llvm-config200 llvm-config20 llvm-config NAMES_PER_DIR
         PATHS
             "/mingw64/bin"
             "/c/msys64/mingw64/bin"
             "c:/msys64/mingw64/bin"
-            "C:/Libraries/llvm-19.0.0/bin")
+            "C:/Libraries/llvm-20.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 19 OR "${LLVM_CONFIG_VERSION}" VERSION_EQUAL 20 OR "${LLVM_CONFIG_VERSION}" VERSION_GREATER 20)
+    if("${LLVM_CONFIG_VERSION}" VERSION_LESS 20 OR "${LLVM_CONFIG_VERSION}" VERSION_EQUAL 21 OR "${LLVM_CONFIG_VERSION}" VERSION_GREATER 21)
       # Save the error message, in case this is the last llvm-config we find
-      list(APPEND LLVM_CONFIG_ERROR_MESSAGES "expected LLVM 19.x but found ${LLVM_CONFIG_VERSION} using ${LLVM_CONFIG_EXE}")
+      list(APPEND LLVM_CONFIG_ERROR_MESSAGES "expected LLVM 20.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 19.x found at ${LLVM_CONFIG_EXE} does not support linking as a shared library")
+          list(APPEND LLVM_CONFIG_ERROR_MESSAGES "LLVM 20.x found at ${LLVM_CONFIG_EXE} does not support linking as a shared library")
         else()
-          list(APPEND LLVM_CONFIG_ERROR_MESSAGES "LLVM 19.x found at ${LLVM_CONFIG_EXE} does not support linking as a static library")
+          list(APPEND LLVM_CONFIG_ERROR_MESSAGES "LLVM 20.x found at ${LLVM_CONFIG_EXE} does not support linking as a static library")
         endif()
 
         # Ignore this directory and try the search again
@@ -197,10 +197,10 @@ else()
   FIND_AND_ADD_LLVM_LIB(LLVMXRay)
   FIND_AND_ADD_LLVM_LIB(LLVMLibDriver)
   FIND_AND_ADD_LLVM_LIB(LLVMDlltoolDriver)
+  FIND_AND_ADD_LLVM_LIB(LLVMTelemetry)
   FIND_AND_ADD_LLVM_LIB(LLVMTextAPIBinaryReader)
   FIND_AND_ADD_LLVM_LIB(LLVMCoverage)
   FIND_AND_ADD_LLVM_LIB(LLVMLineEditor)
-  FIND_AND_ADD_LLVM_LIB(LLVMSandboxIR)
   FIND_AND_ADD_LLVM_LIB(LLVMXCoreDisassembler)
   FIND_AND_ADD_LLVM_LIB(LLVMXCoreCodeGen)
   FIND_AND_ADD_LLVM_LIB(LLVMXCoreDesc)
@@ -227,6 +227,10 @@ else()
   FIND_AND_ADD_LLVM_LIB(LLVMSystemZCodeGen)
   FIND_AND_ADD_LLVM_LIB(LLVMSystemZDesc)
   FIND_AND_ADD_LLVM_LIB(LLVMSystemZInfo)
+  FIND_AND_ADD_LLVM_LIB(LLVMSPIRVCodeGen)
+  FIND_AND_ADD_LLVM_LIB(LLVMSPIRVDesc)
+  FIND_AND_ADD_LLVM_LIB(LLVMSPIRVInfo)
+  FIND_AND_ADD_LLVM_LIB(LLVMSPIRVAnalysis)
   FIND_AND_ADD_LLVM_LIB(LLVMSparcDisassembler)
   FIND_AND_ADD_LLVM_LIB(LLVMSparcAsmParser)
   FIND_AND_ADD_LLVM_LIB(LLVMSparcCodeGen)
@@ -325,6 +329,7 @@ else()
   FIND_AND_ADD_LLVM_LIB(LLVMCoroutines)
   FIND_AND_ADD_LLVM_LIB(LLVMipo)
   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)
@@ -332,11 +337,11 @@ else()
   FIND_AND_ADD_LLVM_LIB(LLVMFrontendOpenACC)
   FIND_AND_ADD_LLVM_LIB(LLVMFrontendHLSL)
   FIND_AND_ADD_LLVM_LIB(LLVMFrontendDriver)
+  FIND_AND_ADD_LLVM_LIB(LLVMFrontendAtomic)
   FIND_AND_ADD_LLVM_LIB(LLVMExtensions)
   FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinkerParallel)
   FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinkerClassic)
   FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinker)
-  FIND_AND_ADD_LLVM_LIB(LLVMCodeGenData)
   FIND_AND_ADD_LLVM_LIB(LLVMGlobalISel)
   FIND_AND_ADD_LLVM_LIB(LLVMMIRParser)
   FIND_AND_ADD_LLVM_LIB(LLVMAsmPrinter)
@@ -345,6 +350,7 @@ else()
   FIND_AND_ADD_LLVM_LIB(LLVMTarget)
   FIND_AND_ADD_LLVM_LIB(LLVMObjCARCOpts)
   FIND_AND_ADD_LLVM_LIB(LLVMCodeGenTypes)
+  FIND_AND_ADD_LLVM_LIB(LLVMCGData)
   FIND_AND_ADD_LLVM_LIB(LLVMIRPrinter)
   FIND_AND_ADD_LLVM_LIB(LLVMInterfaceStub)
   FIND_AND_ADD_LLVM_LIB(LLVMFileCheck)
@@ -360,6 +366,7 @@ else()
   FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoBTF)
   FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoPDB)
   FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoMSF)
+  FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoCodeView)
   FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoDWARF)
   FIND_AND_ADD_LLVM_LIB(LLVMObject)
   FIND_AND_ADD_LLVM_LIB(LLVMTextAPI)
@@ -367,7 +374,6 @@ else()
   FIND_AND_ADD_LLVM_LIB(LLVMIRReader)
   FIND_AND_ADD_LLVM_LIB(LLVMAsmParser)
   FIND_AND_ADD_LLVM_LIB(LLVMMC)
-  FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoCodeView)
   FIND_AND_ADD_LLVM_LIB(LLVMBitReader)
   FIND_AND_ADD_LLVM_LIB(LLVMFuzzerCLI)
   FIND_AND_ADD_LLVM_LIB(LLVMCore)
build.zig
@@ -1166,10 +1166,10 @@ const llvm_libs = [_][]const u8{
     "LLVMXRay",
     "LLVMLibDriver",
     "LLVMDlltoolDriver",
+    "LLVMTelemetry",
     "LLVMTextAPIBinaryReader",
     "LLVMCoverage",
     "LLVMLineEditor",
-    "LLVMSandboxIR",
     "LLVMXCoreDisassembler",
     "LLVMXCoreCodeGen",
     "LLVMXCoreDesc",
@@ -1196,6 +1196,10 @@ const llvm_libs = [_][]const u8{
     "LLVMSystemZCodeGen",
     "LLVMSystemZDesc",
     "LLVMSystemZInfo",
+    "LLVMSPIRVCodeGen",
+    "LLVMSPIRVDesc",
+    "LLVMSPIRVInfo",
+    "LLVMSPIRVAnalysis",
     "LLVMSparcDisassembler",
     "LLVMSparcAsmParser",
     "LLVMSparcCodeGen",
@@ -1294,6 +1298,7 @@ const llvm_libs = [_][]const u8{
     "LLVMCoroutines",
     "LLVMipo",
     "LLVMVectorize",
+    "LLVMSandboxIR",
     "LLVMLinker",
     "LLVMInstrumentation",
     "LLVMFrontendOpenMP",
@@ -1301,11 +1306,11 @@ const llvm_libs = [_][]const u8{
     "LLVMFrontendOpenACC",
     "LLVMFrontendHLSL",
     "LLVMFrontendDriver",
+    "LLVMFrontendAtomic",
     "LLVMExtensions",
     "LLVMDWARFLinkerParallel",
     "LLVMDWARFLinkerClassic",
     "LLVMDWARFLinker",
-    "LLVMCodeGenData",
     "LLVMGlobalISel",
     "LLVMMIRParser",
     "LLVMAsmPrinter",
@@ -1314,6 +1319,7 @@ const llvm_libs = [_][]const u8{
     "LLVMTarget",
     "LLVMObjCARCOpts",
     "LLVMCodeGenTypes",
+    "LLVMCGData",
     "LLVMIRPrinter",
     "LLVMInterfaceStub",
     "LLVMFileCheck",
@@ -1329,6 +1335,7 @@ const llvm_libs = [_][]const u8{
     "LLVMDebugInfoBTF",
     "LLVMDebugInfoPDB",
     "LLVMDebugInfoMSF",
+    "LLVMDebugInfoCodeView",
     "LLVMDebugInfoDWARF",
     "LLVMObject",
     "LLVMTextAPI",
@@ -1336,7 +1343,6 @@ const llvm_libs = [_][]const u8{
     "LLVMIRReader",
     "LLVMAsmParser",
     "LLVMMC",
-    "LLVMDebugInfoCodeView",
     "LLVMBitReader",
     "LLVMFuzzerCLI",
     "LLVMCore",
CMakeLists.txt
@@ -132,9 +132,9 @@ else()
     set(ZIG_SYSTEM_LIBCXX "stdc++" CACHE STRING "system libcxx name for build.zig")
 endif()
 
-find_package(llvm 19)
-find_package(clang 19)
-find_package(lld 19)
+find_package(llvm 20)
+find_package(clang 20)
+find_package(lld 20)
 
 if(ZIG_STATIC_ZLIB)
     if (MSVC)