build: Update to LLVM/Clang 20.

This commit is contained in:
Alex Rønne Petersen 2025-02-05 10:15:15 +01:00
parent 50cb2fa0a2
commit c712f18d74
No known key found for this signature in database
5 changed files with 47 additions and 35 deletions

View file

@ -132,9 +132,9 @@ else()
set(ZIG_SYSTEM_LIBCXX "stdc++" CACHE STRING "system libcxx name for build.zig") set(ZIG_SYSTEM_LIBCXX "stdc++" CACHE STRING "system libcxx name for build.zig")
endif() endif()
find_package(llvm 19) find_package(llvm 20)
find_package(clang 19) find_package(clang 20)
find_package(lld 19) find_package(lld 20)
if(ZIG_STATIC_ZLIB) if(ZIG_STATIC_ZLIB)
if (MSVC) if (MSVC)

View file

@ -1166,10 +1166,10 @@ const llvm_libs = [_][]const u8{
"LLVMXRay", "LLVMXRay",
"LLVMLibDriver", "LLVMLibDriver",
"LLVMDlltoolDriver", "LLVMDlltoolDriver",
"LLVMTelemetry",
"LLVMTextAPIBinaryReader", "LLVMTextAPIBinaryReader",
"LLVMCoverage", "LLVMCoverage",
"LLVMLineEditor", "LLVMLineEditor",
"LLVMSandboxIR",
"LLVMXCoreDisassembler", "LLVMXCoreDisassembler",
"LLVMXCoreCodeGen", "LLVMXCoreCodeGen",
"LLVMXCoreDesc", "LLVMXCoreDesc",
@ -1196,6 +1196,10 @@ const llvm_libs = [_][]const u8{
"LLVMSystemZCodeGen", "LLVMSystemZCodeGen",
"LLVMSystemZDesc", "LLVMSystemZDesc",
"LLVMSystemZInfo", "LLVMSystemZInfo",
"LLVMSPIRVCodeGen",
"LLVMSPIRVDesc",
"LLVMSPIRVInfo",
"LLVMSPIRVAnalysis",
"LLVMSparcDisassembler", "LLVMSparcDisassembler",
"LLVMSparcAsmParser", "LLVMSparcAsmParser",
"LLVMSparcCodeGen", "LLVMSparcCodeGen",
@ -1294,6 +1298,7 @@ const llvm_libs = [_][]const u8{
"LLVMCoroutines", "LLVMCoroutines",
"LLVMipo", "LLVMipo",
"LLVMVectorize", "LLVMVectorize",
"LLVMSandboxIR",
"LLVMLinker", "LLVMLinker",
"LLVMInstrumentation", "LLVMInstrumentation",
"LLVMFrontendOpenMP", "LLVMFrontendOpenMP",
@ -1301,11 +1306,11 @@ const llvm_libs = [_][]const u8{
"LLVMFrontendOpenACC", "LLVMFrontendOpenACC",
"LLVMFrontendHLSL", "LLVMFrontendHLSL",
"LLVMFrontendDriver", "LLVMFrontendDriver",
"LLVMFrontendAtomic",
"LLVMExtensions", "LLVMExtensions",
"LLVMDWARFLinkerParallel", "LLVMDWARFLinkerParallel",
"LLVMDWARFLinkerClassic", "LLVMDWARFLinkerClassic",
"LLVMDWARFLinker", "LLVMDWARFLinker",
"LLVMCodeGenData",
"LLVMGlobalISel", "LLVMGlobalISel",
"LLVMMIRParser", "LLVMMIRParser",
"LLVMAsmPrinter", "LLVMAsmPrinter",
@ -1314,6 +1319,7 @@ const llvm_libs = [_][]const u8{
"LLVMTarget", "LLVMTarget",
"LLVMObjCARCOpts", "LLVMObjCARCOpts",
"LLVMCodeGenTypes", "LLVMCodeGenTypes",
"LLVMCGData",
"LLVMIRPrinter", "LLVMIRPrinter",
"LLVMInterfaceStub", "LLVMInterfaceStub",
"LLVMFileCheck", "LLVMFileCheck",
@ -1329,6 +1335,7 @@ const llvm_libs = [_][]const u8{
"LLVMDebugInfoBTF", "LLVMDebugInfoBTF",
"LLVMDebugInfoPDB", "LLVMDebugInfoPDB",
"LLVMDebugInfoMSF", "LLVMDebugInfoMSF",
"LLVMDebugInfoCodeView",
"LLVMDebugInfoDWARF", "LLVMDebugInfoDWARF",
"LLVMObject", "LLVMObject",
"LLVMTextAPI", "LLVMTextAPI",
@ -1336,7 +1343,6 @@ const llvm_libs = [_][]const u8{
"LLVMIRReader", "LLVMIRReader",
"LLVMAsmParser", "LLVMAsmParser",
"LLVMMC", "LLVMMC",
"LLVMDebugInfoCodeView",
"LLVMBitReader", "LLVMBitReader",
"LLVMFuzzerCLI", "LLVMFuzzerCLI",
"LLVMCore", "LLVMCore",

View file

@ -17,10 +17,10 @@ find_path(CLANG_INCLUDE_DIRS NAMES clang/Frontend/ASTUnit.h
if(${LLVM_LINK_MODE} STREQUAL "shared") if(${LLVM_LINK_MODE} STREQUAL "shared")
find_library(CLANG_LIBRARIES find_library(CLANG_LIBRARIES
NAMES NAMES
libclang-cpp.so.19 libclang-cpp.so.20
libclang-cpp.so.19.1 libclang-cpp.so.20.1
clang-cpp-19.0 clang-cpp-20.0
clang-cpp190 clang-cpp200
clang-cpp clang-cpp
NAMES_PER_DIR NAMES_PER_DIR
HINTS "${LLVM_LIBDIRS}" HINTS "${LLVM_LIBDIRS}"

View file

@ -9,21 +9,21 @@
find_path(LLD_INCLUDE_DIRS NAMES lld/Common/Driver.h find_path(LLD_INCLUDE_DIRS NAMES lld/Common/Driver.h
HINTS ${LLVM_INCLUDE_DIRS} HINTS ${LLVM_INCLUDE_DIRS}
PATHS PATHS
/usr/lib/llvm-19/include /usr/lib/llvm-20/include
/usr/local/llvm190/include /usr/local/llvm200/include
/usr/local/llvm19/include /usr/local/llvm20/include
/usr/local/opt/lld@19/include /usr/local/opt/lld@20/include
/opt/homebrew/opt/lld@19/include /opt/homebrew/opt/lld@20/include
/mingw64/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} HINTS ${LLVM_LIBDIRS}
PATHS PATHS
/usr/lib/llvm-19/lib /usr/lib/llvm-20/lib
/usr/local/llvm190/lib /usr/local/llvm200/lib
/usr/local/llvm19/lib /usr/local/llvm20/lib
/usr/local/opt/lld@19/lib /usr/local/opt/lld@20/lib
/opt/homebrew/opt/lld@19/lib /opt/homebrew/opt/lld@20/lib
) )
if(EXISTS ${LLD_LIBRARY}) if(EXISTS ${LLD_LIBRARY})
set(LLD_LIBRARIES ${LLD_LIBRARY}) set(LLD_LIBRARIES ${LLD_LIBRARY})
@ -34,11 +34,11 @@ else()
HINTS ${LLVM_LIBDIRS} HINTS ${LLVM_LIBDIRS}
PATHS PATHS
${LLD_LIBDIRS} ${LLD_LIBDIRS}
/usr/lib/llvm-19/lib /usr/lib/llvm-20/lib
/usr/local/llvm190/lib /usr/local/llvm200/lib
/usr/local/llvm19/lib /usr/local/llvm20/lib
/usr/local/opt/lld@19/lib /usr/local/opt/lld@20/lib
/opt/homebrew/opt/lld@19/lib /opt/homebrew/opt/lld@20/lib
/mingw64/lib /mingw64/lib
/c/msys64/mingw64/lib /c/msys64/mingw64/lib
c:/msys64/mingw64/lib) c:/msys64/mingw64/lib)

View file

@ -17,12 +17,12 @@ if(ZIG_USE_LLVM_CONFIG)
# terminate when the right LLVM version is not found. # terminate when the right LLVM version is not found.
unset(LLVM_CONFIG_EXE CACHE) unset(LLVM_CONFIG_EXE CACHE)
find_program(LLVM_CONFIG_EXE 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 PATHS
"/mingw64/bin" "/mingw64/bin"
"/c/msys64/mingw64/bin" "/c/msys64/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 ("${LLVM_CONFIG_EXE}" STREQUAL "LLVM_CONFIG_EXE-NOTFOUND")
if (NOT LLVM_CONFIG_ERROR_MESSAGES STREQUAL "") if (NOT LLVM_CONFIG_ERROR_MESSAGES STREQUAL "")
@ -40,9 +40,9 @@ if(ZIG_USE_LLVM_CONFIG)
OUTPUT_STRIP_TRAILING_WHITESPACE) OUTPUT_STRIP_TRAILING_WHITESPACE)
get_filename_component(LLVM_CONFIG_DIR "${LLVM_CONFIG_EXE}" DIRECTORY) 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 # 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 # Ignore this directory and try the search again
list(APPEND CMAKE_IGNORE_PATH "${LLVM_CONFIG_DIR}") list(APPEND CMAKE_IGNORE_PATH "${LLVM_CONFIG_DIR}")
@ -66,9 +66,9 @@ if(ZIG_USE_LLVM_CONFIG)
if (LLVM_CONFIG_ERROR) if (LLVM_CONFIG_ERROR)
# Save the error message, in case this is the last llvm-config we find # Save the error message, in case this is the last llvm-config we find
if (ZIG_SHARED_LLVM) 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() 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() endif()
# Ignore this directory and try the search again # Ignore this directory and try the search again
@ -197,10 +197,10 @@ else()
FIND_AND_ADD_LLVM_LIB(LLVMXRay) FIND_AND_ADD_LLVM_LIB(LLVMXRay)
FIND_AND_ADD_LLVM_LIB(LLVMLibDriver) FIND_AND_ADD_LLVM_LIB(LLVMLibDriver)
FIND_AND_ADD_LLVM_LIB(LLVMDlltoolDriver) FIND_AND_ADD_LLVM_LIB(LLVMDlltoolDriver)
FIND_AND_ADD_LLVM_LIB(LLVMTelemetry)
FIND_AND_ADD_LLVM_LIB(LLVMTextAPIBinaryReader) FIND_AND_ADD_LLVM_LIB(LLVMTextAPIBinaryReader)
FIND_AND_ADD_LLVM_LIB(LLVMCoverage) FIND_AND_ADD_LLVM_LIB(LLVMCoverage)
FIND_AND_ADD_LLVM_LIB(LLVMLineEditor) FIND_AND_ADD_LLVM_LIB(LLVMLineEditor)
FIND_AND_ADD_LLVM_LIB(LLVMSandboxIR)
FIND_AND_ADD_LLVM_LIB(LLVMXCoreDisassembler) FIND_AND_ADD_LLVM_LIB(LLVMXCoreDisassembler)
FIND_AND_ADD_LLVM_LIB(LLVMXCoreCodeGen) FIND_AND_ADD_LLVM_LIB(LLVMXCoreCodeGen)
FIND_AND_ADD_LLVM_LIB(LLVMXCoreDesc) FIND_AND_ADD_LLVM_LIB(LLVMXCoreDesc)
@ -227,6 +227,10 @@ else()
FIND_AND_ADD_LLVM_LIB(LLVMSystemZCodeGen) FIND_AND_ADD_LLVM_LIB(LLVMSystemZCodeGen)
FIND_AND_ADD_LLVM_LIB(LLVMSystemZDesc) FIND_AND_ADD_LLVM_LIB(LLVMSystemZDesc)
FIND_AND_ADD_LLVM_LIB(LLVMSystemZInfo) 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(LLVMSparcDisassembler)
FIND_AND_ADD_LLVM_LIB(LLVMSparcAsmParser) FIND_AND_ADD_LLVM_LIB(LLVMSparcAsmParser)
FIND_AND_ADD_LLVM_LIB(LLVMSparcCodeGen) FIND_AND_ADD_LLVM_LIB(LLVMSparcCodeGen)
@ -325,6 +329,7 @@ else()
FIND_AND_ADD_LLVM_LIB(LLVMCoroutines) FIND_AND_ADD_LLVM_LIB(LLVMCoroutines)
FIND_AND_ADD_LLVM_LIB(LLVMipo) FIND_AND_ADD_LLVM_LIB(LLVMipo)
FIND_AND_ADD_LLVM_LIB(LLVMVectorize) FIND_AND_ADD_LLVM_LIB(LLVMVectorize)
FIND_AND_ADD_LLVM_LIB(LLVMSandboxIR)
FIND_AND_ADD_LLVM_LIB(LLVMLinker) FIND_AND_ADD_LLVM_LIB(LLVMLinker)
FIND_AND_ADD_LLVM_LIB(LLVMInstrumentation) FIND_AND_ADD_LLVM_LIB(LLVMInstrumentation)
FIND_AND_ADD_LLVM_LIB(LLVMFrontendOpenMP) FIND_AND_ADD_LLVM_LIB(LLVMFrontendOpenMP)
@ -332,11 +337,11 @@ else()
FIND_AND_ADD_LLVM_LIB(LLVMFrontendOpenACC) FIND_AND_ADD_LLVM_LIB(LLVMFrontendOpenACC)
FIND_AND_ADD_LLVM_LIB(LLVMFrontendHLSL) FIND_AND_ADD_LLVM_LIB(LLVMFrontendHLSL)
FIND_AND_ADD_LLVM_LIB(LLVMFrontendDriver) FIND_AND_ADD_LLVM_LIB(LLVMFrontendDriver)
FIND_AND_ADD_LLVM_LIB(LLVMFrontendAtomic)
FIND_AND_ADD_LLVM_LIB(LLVMExtensions) FIND_AND_ADD_LLVM_LIB(LLVMExtensions)
FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinkerParallel) FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinkerParallel)
FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinkerClassic) FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinkerClassic)
FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinker) FIND_AND_ADD_LLVM_LIB(LLVMDWARFLinker)
FIND_AND_ADD_LLVM_LIB(LLVMCodeGenData)
FIND_AND_ADD_LLVM_LIB(LLVMGlobalISel) FIND_AND_ADD_LLVM_LIB(LLVMGlobalISel)
FIND_AND_ADD_LLVM_LIB(LLVMMIRParser) FIND_AND_ADD_LLVM_LIB(LLVMMIRParser)
FIND_AND_ADD_LLVM_LIB(LLVMAsmPrinter) FIND_AND_ADD_LLVM_LIB(LLVMAsmPrinter)
@ -345,6 +350,7 @@ else()
FIND_AND_ADD_LLVM_LIB(LLVMTarget) FIND_AND_ADD_LLVM_LIB(LLVMTarget)
FIND_AND_ADD_LLVM_LIB(LLVMObjCARCOpts) FIND_AND_ADD_LLVM_LIB(LLVMObjCARCOpts)
FIND_AND_ADD_LLVM_LIB(LLVMCodeGenTypes) FIND_AND_ADD_LLVM_LIB(LLVMCodeGenTypes)
FIND_AND_ADD_LLVM_LIB(LLVMCGData)
FIND_AND_ADD_LLVM_LIB(LLVMIRPrinter) FIND_AND_ADD_LLVM_LIB(LLVMIRPrinter)
FIND_AND_ADD_LLVM_LIB(LLVMInterfaceStub) FIND_AND_ADD_LLVM_LIB(LLVMInterfaceStub)
FIND_AND_ADD_LLVM_LIB(LLVMFileCheck) FIND_AND_ADD_LLVM_LIB(LLVMFileCheck)
@ -360,6 +366,7 @@ else()
FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoBTF) FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoBTF)
FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoPDB) FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoPDB)
FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoMSF) FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoMSF)
FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoCodeView)
FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoDWARF) FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoDWARF)
FIND_AND_ADD_LLVM_LIB(LLVMObject) FIND_AND_ADD_LLVM_LIB(LLVMObject)
FIND_AND_ADD_LLVM_LIB(LLVMTextAPI) FIND_AND_ADD_LLVM_LIB(LLVMTextAPI)
@ -367,7 +374,6 @@ else()
FIND_AND_ADD_LLVM_LIB(LLVMIRReader) FIND_AND_ADD_LLVM_LIB(LLVMIRReader)
FIND_AND_ADD_LLVM_LIB(LLVMAsmParser) FIND_AND_ADD_LLVM_LIB(LLVMAsmParser)
FIND_AND_ADD_LLVM_LIB(LLVMMC) FIND_AND_ADD_LLVM_LIB(LLVMMC)
FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoCodeView)
FIND_AND_ADD_LLVM_LIB(LLVMBitReader) FIND_AND_ADD_LLVM_LIB(LLVMBitReader)
FIND_AND_ADD_LLVM_LIB(LLVMFuzzerCLI) FIND_AND_ADD_LLVM_LIB(LLVMFuzzerCLI)
FIND_AND_ADD_LLVM_LIB(LLVMCore) FIND_AND_ADD_LLVM_LIB(LLVMCore)