Skip to content

Commit 13c69a5

Browse files
authored
Add llvm 20 Emscripten jobs
1 parent a3111e0 commit 13c69a5

File tree

4 files changed

+73
-3
lines changed

4 files changed

+73
-3
lines changed

.github/workflows/deploy-pages.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ jobs:
2121
fail-fast: false
2222
matrix:
2323
include:
24-
- name: osx15-arm-clang-repl-19-emscripten_wasm
24+
- name: osx15-arm-clang-repl-20-emscripten_wasm
2525
os: macos-15
26-
clang-runtime: '19'
26+
clang-runtime: '20'
2727
cling: Off
2828
micromamba_shell_init: bash
2929
emsdk_ver: "3.1.73"

.github/workflows/emscripten.yml

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,27 @@ jobs:
4242
llvm_enable_projects: "clang;lld"
4343
llvm_targets_to_build: "WebAssembly"
4444
emsdk_ver: "3.1.73"
45+
- name: ubu24-arm-clang-repl-20-emscripten
46+
os: ubuntu-24.04-arm
47+
clang-runtime: '20'
48+
cling: Off
49+
llvm_enable_projects: "clang;lld"
50+
llvm_targets_to_build: "WebAssembly"
51+
emsdk_ver: "3.1.73"
52+
- name: osx15-arm-clang-repl-20-emscripten
53+
os: macos-15
54+
clang-runtime: '20'
55+
cling: Off
56+
llvm_enable_projects: "clang;lld"
57+
llvm_targets_to_build: "WebAssembly"
58+
emsdk_ver: "3.1.73"
59+
- name: ubu24-x86-clang-repl-20-emscripten
60+
os: ubuntu-24.04
61+
clang-runtime: '20'
62+
cling: Off
63+
llvm_enable_projects: "clang;lld"
64+
llvm_targets_to_build: "WebAssembly"
65+
emsdk_ver: "3.1.73"
4566

4667
steps:
4768
- uses: actions/checkout@v4
@@ -212,7 +233,7 @@ jobs:
212233
else
213234
# Apply patches
214235
llvm_vers=$(echo "${{ matrix.clang-runtime }}" | tr '[:lower:]' '[:upper:]')
215-
if [[ "${llvm_vers}" == "19" ]]; then
236+
if [[ "${llvm_vers}" == "19" || "${llvm_vers}" == "20" ]]; then
216237
git apply -v ../patches/llvm/emscripten-clang${{ matrix.clang-runtime }}-*.patch
217238
echo "Apply emscripten-clang${{ matrix.clang-runtime }}-*.patch patches:"
218239
fi
@@ -387,6 +408,24 @@ jobs:
387408
cling: Off
388409
micromamba_shell_init: bash
389410
emsdk_ver: "3.1.73"
411+
- name: ubu24-x86-clang-repl-20-emscripten_wasm
412+
os: ubuntu-24.04
413+
clang-runtime: '20'
414+
cling: Off
415+
micromamba_shell_init: bash
416+
emsdk_ver: "3.1.73"
417+
- name: osx15-arm-clang-repl-20-emscripten_wasm
418+
os: macos-15
419+
clang-runtime: '20'
420+
cling: Off
421+
micromamba_shell_init: bash
422+
emsdk_ver: "3.1.73"
423+
- name: ubu24-arm-clang-repl-20-emscripten_wasm
424+
os: ubuntu-24.04-arm
425+
clang-runtime: '20'
426+
cling: Off
427+
micromamba_shell_init: bash
428+
emsdk_ver: "3.1.73"
390429

391430
steps:
392431
- uses: actions/checkout@v4
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
diff --git a/llvm/cmake/modules/CrossCompile.cmake b/llvm/cmake/modules/CrossCompile.cmake
2+
index 6af47b51d4c6..c635e7f5be9e 100644
3+
--- a/llvm/cmake/modules/CrossCompile.cmake
4+
+++ b/llvm/cmake/modules/CrossCompile.cmake
5+
@@ -70,8 +70,8 @@ function(llvm_create_cross_target project_name target_name toolchain buildtype)
6+
add_custom_command(OUTPUT ${${project_name}_${target_name}_BUILD}/CMakeCache.txt
7+
COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}"
8+
-DCMAKE_MAKE_PROGRAM="${CMAKE_MAKE_PROGRAM}"
9+
- -DCMAKE_C_COMPILER_LAUNCHER="${CMAKE_C_COMPILER_LAUNCHER}"
10+
- -DCMAKE_CXX_COMPILER_LAUNCHER="${CMAKE_CXX_COMPILER_LAUNCHER}"
11+
+ -DCMAKE_C_COMPILER="clang"
12+
+ -DCMAKE_CXX_COMPILER="clang++"
13+
${CROSS_TOOLCHAIN_FLAGS_${target_name}} ${CMAKE_CURRENT_SOURCE_DIR}
14+
${CROSS_TOOLCHAIN_FLAGS_${project_name}_${target_name}}
15+
-DLLVM_TARGET_IS_CROSSCOMPILE_HOST=TRUE
16+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
diff --git a/clang/lib/Interpreter/Wasm.cpp b/clang/lib/Interpreter/Wasm.cpp
2+
index aa10b160ccf8..184867e2b55f 100644
3+
--- a/clang/lib/Interpreter/Wasm.cpp
4+
+++ b/clang/lib/Interpreter/Wasm.cpp
5+
@@ -76,8 +76,8 @@ llvm::Error WasmIncrementalExecutor::addModule(PartialTranslationUnit &PTU) {
6+
llvm::TargetMachine *TargetMachine = Target->createTargetMachine(
7+
PTU.TheModule->getTargetTriple(), "", "", TO, llvm::Reloc::Model::PIC_);
8+
PTU.TheModule->setDataLayout(TargetMachine->createDataLayout());
9+
- std::string ObjectFileName = PTU.TheModule->getName().str() + ".o";
10+
- std::string BinaryFileName = PTU.TheModule->getName().str() + ".wasm";
11+
+ std::string ObjectFileName = "/tmp/" + PTU.TheModule->getName().str() + ".o";
12+
+ std::string BinaryFileName = "/tmp/" + PTU.TheModule->getName().str() + ".wasm";
13+
14+
std::error_code Error;
15+
llvm::raw_fd_ostream ObjectFileOutput(llvm::StringRef(ObjectFileName), Error);

0 commit comments

Comments
 (0)