Skip to content

Commit 8f2f92b

Browse files
tritaoVergeChris
andauthored
Adds clang 19 support (#1949)
* Initial commit supporting Clang 19 * Fixes link errors. Fixes for failing tests * Fixes failing macOS lib test * Free disk space in LLVM CI. * Free disk space in Ubuntu and macOS CI jobs. * Format new code. --------- Co-authored-by: Christopher Franzwa <[email protected]>
1 parent 9a4c48d commit 8f2f92b

File tree

11 files changed

+283
-234
lines changed

11 files changed

+283
-234
lines changed

.github/workflows/llvm.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,33 @@ jobs:
2525
- uses: actions/checkout@v4
2626
- uses: lukka/get-cmake@latest
2727

28+
- run: df -h
29+
30+
- name: Free Disk Space
31+
if: startsWith(matrix.os, 'ubuntu')
32+
uses: endersonmenezes/free-disk-space@v2
33+
with:
34+
remove_android: true
35+
remove_dotnet: true
36+
remove_haskell: true
37+
remove_tool_cache: true
38+
remove_swap: true
39+
remove_packages: "azure-cli google-cloud-cli microsoft-edge-stable google-chrome-stable firefox postgresql* temurin-* *llvm* mysql* dotnet-sdk-*"
40+
remove_packages_one_command: true
41+
remove_folders: "/usr/share/swift /usr/share/miniconda /usr/share/az* /usr/local/lib/node_modules /usr/local/share/chromium /usr/local/share/powershell /usr/local/julia /usr/local/aws-cli /usr/local/aws-sam-cli /usr/share/gradle"
42+
testing: false
43+
44+
- name: Free Disk Space
45+
if: startsWith(matrix.os, 'macos')
46+
run: |
47+
sudo rm -rf /Library/Frameworks/Mono.framework
48+
sudo rm -rf /Library/Frameworks/Xamarin.iOS.framework
49+
sudo rm -rf /Library/Frameworks/Xamarin.Android.framework
50+
sudo rm -rf /Users/runner/Library/Android
51+
sudo rm -rf /usr/local/share/powershell
52+
sudo find /Applications -type d -name "Xcode_*.app" ! -name "Xcode_$XCODE_VERSION.app" -prune -exec rm -rf "{}" \;
53+
- run: df -h
54+
2855
- name: Install cross compilers
2956
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.platform, 'arm64')
3057
run: sudo apt install -y g++-aarch64-linux-gnu gcc-aarch64-linux-gnu

.github/workflows/main.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,30 @@ jobs:
3838
with:
3939
fetch-depth: 0
4040

41+
- name: Free Disk Space
42+
if: startsWith(matrix.os, 'ubuntu')
43+
uses: endersonmenezes/free-disk-space@v2
44+
with:
45+
remove_android: true
46+
remove_haskell: true
47+
remove_tool_cache: true
48+
remove_swap: true
49+
remove_packages: "azure-cli google-cloud-cli microsoft-edge-stable google-chrome-stable firefox postgresql* temurin-* *llvm* mysql* dotnet-sdk-*"
50+
remove_packages_one_command: true
51+
remove_folders: "/usr/share/swift /usr/share/miniconda /usr/share/az* /usr/local/lib/node_modules /usr/local/share/chromium /usr/local/share/powershell /usr/local/julia /usr/local/aws-cli /usr/local/aws-sam-cli /usr/share/gradle"
52+
testing: false
53+
54+
- name: Free Disk Space
55+
if: startsWith(matrix.os, 'macos')
56+
run: |
57+
sudo rm -rf /Library/Frameworks/Mono.framework
58+
sudo rm -rf /Library/Frameworks/Xamarin.iOS.framework
59+
sudo rm -rf /Library/Frameworks/Xamarin.Android.framework
60+
sudo rm -rf /Users/runner/Library/Android
61+
sudo rm -rf /usr/local/share/powershell
62+
sudo find /Applications -type d -name "Xcode_*.app" ! -name "Xcode_$XCODE_VERSION.app" -prune -exec rm -rf "{}" \;
63+
- run: df -h
64+
4165
- name: Setup emsdk
4266
uses: pyodide/setup-emsdk@v15
4367
with:

build/LLVM.lua

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,8 @@ function SetupLLVMLibs()
137137

138138
filter { "toolset:msc*" }
139139
links { "version" }
140-
140+
links { "ntdll"}
141+
141142
filter {}
142143

143144
if LLVMDirPerConfiguration then
@@ -164,6 +165,7 @@ function SetupLLVMLibs()
164165

165166
links
166167
{
168+
"clangAPINotes",
167169
"clangFrontend",
168170
"clangDriver",
169171
"clangSerialization",
@@ -185,8 +187,10 @@ function SetupLLVMLibs()
185187
"LLVMPasses",
186188
"LLVMObjCARCOpts",
187189
"LLVMLibDriver",
190+
"LLVMFrontendOffloading",
188191
"LLVMFrontendHLSL",
189192
"LLVMFrontendOpenMP",
193+
"LLVMHipStdPar",
190194
"LLVMOption",
191195
"LLVMCoverage",
192196
"LLVMCoroutines",
@@ -201,6 +205,7 @@ function SetupLLVMLibs()
201205
"LLVMAArch64Disassembler",
202206
"LLVMAArch64Info",
203207
"LLVMAArch64Utils",
208+
"LLVMFrontendDriver",
204209
"LLVMipo",
205210
"LLVMInstrumentation",
206211
"LLVMVectorize",

build/llvm/LLVM-commit

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
6eb36aed86ea276695697093eb8136554c29286b
1+
cd708029e0b2869e80abe31ddb175f7c35361f90

build/llvm/LLVM.lua

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,7 @@ function cmake(gen, conf, builddir, options)
263263
.. ' -DLLVM_INCLUDE_TESTS=false'
264264
.. ' -DLLVM_ENABLE_LIBEDIT=false'
265265
.. ' -DLLVM_ENABLE_LIBXML2=false'
266+
.. ' -DLLVM_ENABLE_MLGO=false'
266267
.. ' -DLLVM_ENABLE_TERMINFO=false'
267268
.. ' -DLLVM_ENABLE_ZLIB=false'
268269
.. ' -DLLVM_ENABLE_ZSTD=false'
@@ -326,7 +327,7 @@ function cmake(gen, conf, builddir, options)
326327
.. ' -DLLVM_TOOL_LLVM_MODEXTRACT_BUILD=false'
327328
.. ' -DLLVM_TOOL_LLVM_MT_BUILD=false'
328329
.. ' -DLLVM_TOOL_LLVM_NM_BUILD=false'
329-
.. ' -DLLVM_TOOL_LLVM_OBJCOPY_BUILD=false'
330+
.. ' -DLLVM_TOOL_LLVM_OBJCOPY_BUILD=true'
330331
.. ' -DLLVM_TOOL_LLVM_OBJDUMP_BUILD=false'
331332
.. ' -DLLVM_TOOL_LLVM_OPT_FUZZER_BUILD=false'
332333
.. ' -DLLVM_TOOL_LLVM_OPT_REPORT_BUILD=false'
@@ -366,7 +367,8 @@ function cmake(gen, conf, builddir, options)
366367
.. ' -DLLVM_TOOL_VERIFY_USELISTORDER_BUILD=false'
367368
.. ' -DLLVM_TOOL_VFABI_DEMANGLE_FUZZER_BUILD=false'
368369
.. ' -DLLVM_TOOL_XCODE_TOOLCHAIN_BUILD=false'
369-
.. ' -DLLVM_TOOL_YAML2OBJ_BUILD=false'
370+
.. ' -DLLVM_TOOL_YAML2OBJ_BUILD=true'
371+
.. ' -DLLVM_TOOL_LLVM_OBJCOPY_BUILD=true'
370372
.. ' -DLLVM_HAVE_LIBXAR=false'
371373
.. ' -DCLANG_BUILD_EXAMPLES=false '
372374
.. ' -DCLANG_BUILD_TOOLS=false'

src/CppParser/ASTNameMangler.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,14 +99,18 @@ std::string ASTNameMangler::GetMangledStructor(const NamedDecl* ND, unsigned Str
9999
return FrontendBuf;
100100
}
101101

102-
std::string ASTNameMangler::GetMangledThunk(const CXXMethodDecl* MD, const ThunkInfo& T, bool /*ElideOverrideInfo*/) const
102+
std::string ASTNameMangler::GetMangledThunk(const CXXMethodDecl* MD, const ThunkInfo& T, bool ElideOverrideInfo) const
103103
{
104104
std::string FrontendBuf;
105105
llvm::raw_string_ostream FOS(FrontendBuf);
106106

107107
// TODO: Enable `ElideOverrideInfo` param if clang is updated to 19
108-
MC->mangleThunk(MD, T, /*ElideOverrideInfo,*/ FOS);
109108

109+
#if LLVM_VERSION_MAJOR >= 19
110+
MC->mangleThunk(MD, T, ElideOverrideInfo, FOS);
111+
#else
112+
MC->mangleThunk(MD, T, FOS);
113+
#endif
110114
return FrontendBuf;
111115
}
112116

0 commit comments

Comments
 (0)