Skip to content

Commit 8c81b18

Browse files
authored
Merge branch 'main' into Add-llvm-21-support
2 parents 2a280d1 + 6cf1c06 commit 8c81b18

17 files changed

+227
-78
lines changed

.github/workflows/clang-format.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
runs-on: ubuntu-22.04
1616
steps:
1717
- name: Checkout PR branch
18-
uses: actions/checkout@v4
18+
uses: actions/checkout@v5
1919
with:
2020
ref: ${{ github.event.pull_request.head.sha }}
2121
fetch-depth: 0

.github/workflows/clang-tidy-review.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
runs-on: ubuntu-22.04
1616
steps:
1717
- name: Checkout PR branch
18-
uses: actions/checkout@v4
18+
uses: actions/checkout@v5
1919

2020
- name: Setup Python
2121
uses: actions/setup-python@v5

.github/workflows/deploy-pages.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
emsdk_ver: "3.1.73"
3030

3131
steps:
32-
- uses: actions/checkout@v4
32+
- uses: actions/checkout@v5
3333
with:
3434
fetch-depth: 0
3535

.github/workflows/emscripten.yml

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ jobs:
107107
emsdk_ver: "3.1.73"
108108

109109
steps:
110-
- uses: actions/checkout@v4
110+
- uses: actions/checkout@v5
111111
with:
112112
fetch-depth: 0
113113

@@ -203,7 +203,6 @@ jobs:
203203
-DLLVM_EXTERNAL_CLING_SOURCE_DIR=../../cling \
204204
-DCMAKE_BUILD_TYPE=Release \
205205
-DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten \
206-
-DLLVM_ENABLE_ASSERTIONS=ON \
207206
-DLLVM_TARGETS_TO_BUILD="${{ matrix.llvm_targets_to_build }}" \
208207
-DLLVM_ENABLE_LIBEDIT=OFF \
209208
-DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects }}" \
@@ -222,6 +221,9 @@ jobs:
222221
-DLLVM_ENABLE_LIBPFM=OFF \
223222
-DCLANG_BUILD_TOOLS=OFF \
224223
-DLLVM_NATIVE_TOOL_DIR=$NATIVE_DIR \
224+
-DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \
225+
-DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \
226+
-DLLVM_ENABLE_LTO=Full \
225227
../llvm
226228
emmake ninja clang cling lld gtest_main
227229
else
@@ -234,7 +236,6 @@ jobs:
234236
cd build
235237
emcmake cmake -DCMAKE_BUILD_TYPE=Release \
236238
-DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten \
237-
-DLLVM_ENABLE_ASSERTIONS=ON \
238239
-DLLVM_TARGETS_TO_BUILD="${{ matrix.llvm_targets_to_build }}" \
239240
-DLLVM_ENABLE_LIBEDIT=OFF \
240241
-DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects }}" \
@@ -253,6 +254,9 @@ jobs:
253254
-DCLANG_BUILD_TOOLS=OFF \
254255
-G Ninja \
255256
-DLLVM_NATIVE_TOOL_DIR=$NATIVE_DIR \
257+
-DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \
258+
-DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \
259+
-DLLVM_ENABLE_LTO=Full \
256260
../llvm
257261
emmake ninja libclang clangInterpreter clangStaticAnalyzerCore lldWasm
258262
fi
@@ -312,7 +316,6 @@ jobs:
312316
-DLLVM_EXTERNAL_CLING_SOURCE_DIR=../../cling `
313317
-DCMAKE_BUILD_TYPE=Release `
314318
-DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten `
315-
-DLLVM_ENABLE_ASSERTIONS=ON `
316319
-DLLVM_TARGETS_TO_BUILD="${{ matrix.llvm_targets_to_build }}" `
317320
-DLLVM_ENABLE_LIBEDIT=OFF `
318321
-DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects }}" `
@@ -330,6 +333,9 @@ jobs:
330333
-DLLVM_BUILD_TOOLS=OFF `
331334
-DLLVM_ENABLE_LIBPFM=OFF `
332335
-DCLANG_BUILD_TOOLS=OFF `
336+
-DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" `
337+
-DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" `
338+
-DLLVM_ENABLE_LTO=Full `
333339
-DLLVM_NATIVE_TOOL_DIR="$env:NATIVE_DIR" `
334340
..\llvm
335341
emmake make clang cling lld gtest_main
@@ -358,7 +364,6 @@ jobs:
358364
echo "Apply clang${{ matrix.clang-runtime }}-*.patch patches:"
359365
emcmake cmake -DCMAKE_BUILD_TYPE=Release `
360366
-DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten `
361-
-DLLVM_ENABLE_ASSERTIONS=ON `
362367
-DLLVM_TARGETS_TO_BUILD="${{ matrix.llvm_targets_to_build }}" `
363368
-DLLVM_ENABLE_LIBEDIT=OFF `
364369
-DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects }}" `
@@ -375,6 +380,9 @@ jobs:
375380
-DLLVM_BUILD_TOOLS=OFF `
376381
-DLLVM_ENABLE_LIBPFM=OFF `
377382
-DCLANG_BUILD_TOOLS=OFF `
383+
-DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" `
384+
-DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" `
385+
-DLLVM_ENABLE_LTO=Full `
378386
-G Ninja `
379387
-DLLVM_NATIVE_TOOL_DIR="$env:NATIVE_DIR" `
380388
..\llvm
@@ -490,7 +498,7 @@ jobs:
490498
emsdk_ver: "3.1.73"
491499

492500
steps:
493-
- uses: actions/checkout@v4
501+
- uses: actions/checkout@v5
494502
with:
495503
fetch-depth: 0
496504

@@ -584,6 +592,15 @@ jobs:
584592
fi
585593
586594
emmake make -j ${{ env.ncpus }} check-cppinterop
595+
os="${{ matrix.os }}"
596+
if [[ "${os}" != macos* ]] ; then
597+
actual_size=$(stat -c%s "./lib/libclangCppInterOp.so")
598+
max_size=$((40 * 1024 * 1024))
599+
if [[ "$actual_size" -gt "$max_size" ]]; then
600+
echo "Error: libclangCppInterOp.so is larger than 40 MB."
601+
exit 1
602+
fi
603+
fi
587604
cd ./unittests/CppInterOp/
588605
# Fresh install browsers, and run Emscripten tests in them
589606
# This is to match the Emscripten build instructions, where
@@ -746,7 +763,12 @@ jobs:
746763
-DSYSROOT_PATH=$SYSROOT_PATH \
747764
../
748765
fi
749-
emmake make -j ${{ env.ncpus }} check-cppinterop
766+
os="${{ matrix.os }}"
767+
if [[ "${os}" != macos* ]] ; then
768+
EMCC_CORES=1 emmake make -j 1 check-cppinterop
769+
else
770+
EMCC_CORES=2 emmake make -j 2 check-cppinterop
771+
fi
750772
cd ./unittests/CppInterOp/
751773
# Explaination of options for emrun
752774
# --browser (name of browser on path)

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ jobs:
247247
llvm_targets_to_build: "host;NVPTX"
248248

249249
steps:
250-
- uses: actions/checkout@v4
250+
- uses: actions/checkout@v5
251251
with:
252252
fetch-depth: 0
253253

.github/workflows/markdown-linter.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424

2525
steps:
2626
- name: Checkout code
27-
uses: actions/checkout@v4
27+
uses: actions/checkout@v5
2828
with:
2929
# super-linter needs the full git history to get the
3030
# list of files that changed across commits

Emscripten-build-instructions.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ mkdir build
8080
cd build
8181
emcmake cmake -DCMAKE_BUILD_TYPE=Release \
8282
-DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten \
83-
-DLLVM_ENABLE_ASSERTIONS=ON \
8483
-DLLVM_TARGETS_TO_BUILD="WebAssembly" \
8584
-DLLVM_ENABLE_LIBEDIT=OFF \
8685
-DLLVM_ENABLE_PROJECTS="clang;lld" \
@@ -98,6 +97,9 @@ emcmake cmake -DCMAKE_BUILD_TYPE=Release \
9897
-DLLVM_ENABLE_LIBPFM=OFF \
9998
-DCLANG_BUILD_TOOLS=OFF \
10099
-DLLVM_NATIVE_TOOL_DIR=$NATIVE_DIR \
100+
-DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \
101+
-DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \
102+
-DLLVM_ENABLE_LTO=Full \
101103
../llvm
102104
emmake make libclang -j $(nproc --all)
103105
emmake make clangInterpreter clangStaticAnalyzerCore -j $(nproc --all)
@@ -118,7 +120,6 @@ mkdir build
118120
cd build
119121
emcmake cmake -DCMAKE_BUILD_TYPE=Release `
120122
-DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten `
121-
-DLLVM_ENABLE_ASSERTIONS=ON `
122123
-DLLVM_TARGETS_TO_BUILD="WebAssembly" `
123124
-DLLVM_ENABLE_LIBEDIT=OFF `
124125
-DLLVM_ENABLE_PROJECTS="clang;lld" `
@@ -137,6 +138,9 @@ emcmake cmake -DCMAKE_BUILD_TYPE=Release `
137138
-DCLANG_BUILD_TOOLS=OFF `
138139
-DLLVM_NATIVE_TOOL_DIR="$env:NATIVE_DIR" `
139140
-G Ninja `
141+
-DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" `
142+
-DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" `
143+
-DLLVM_ENABLE_LTO=Full `
140144
..\llvm
141145
emmake ninja libclang clangInterpreter clangStaticAnalyzerCore lldWasm
142146
```

docs/Emscripten-build-instructions.rst

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,6 @@ and osx
100100
cd build
101101
emcmake cmake -DCMAKE_BUILD_TYPE=Release \
102102
-DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten \
103-
-DLLVM_ENABLE_ASSERTIONS=ON \
104103
-DLLVM_TARGETS_TO_BUILD="WebAssembly" \
105104
-DLLVM_ENABLE_LIBEDIT=OFF \
106105
-DLLVM_ENABLE_PROJECTS="clang;lld" \
@@ -118,6 +117,9 @@ and osx
118117
-DLLVM_ENABLE_LIBPFM=OFF \
119118
-DCLANG_BUILD_TOOLS=OFF \
120119
-DLLVM_NATIVE_TOOL_DIR=$NATIVE_DIR \
120+
-DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \
121+
-DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \
122+
-DLLVM_ENABLE_LTO=Full \
121123
../llvm
122124
emmake make libclang -j $(nproc --all)
123125
emmake make clangInterpreter clangStaticAnalyzerCore -j $(nproc --all)
@@ -138,7 +140,6 @@ or executing
138140
cd build
139141
emcmake cmake -DCMAKE_BUILD_TYPE=Release `
140142
-DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten `
141-
-DLLVM_ENABLE_ASSERTIONS=ON `
142143
-DLLVM_TARGETS_TO_BUILD="WebAssembly" `
143144
-DLLVM_ENABLE_LIBEDIT=OFF `
144145
-DLLVM_ENABLE_PROJECTS="clang;lld" `
@@ -157,6 +158,9 @@ or executing
157158
-DCLANG_BUILD_TOOLS=OFF `
158159
-DLLVM_NATIVE_TOOL_DIR="$env:NATIVE_DIR" `
159160
-G Ninja `
161+
-DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" `
162+
-DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" `
163+
-DLLVM_ENABLE_LTO=Full `
160164
..\llvm
161165
emmake ninja libclang clangInterpreter clangStaticAnalyzerCore lldWasm
162166

lib/CppInterOp/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,10 +127,16 @@ if(EMSCRIPTEN)
127127
set_target_properties(clangCppInterOp
128128
PROPERTIES NO_SONAME 1
129129
)
130+
target_compile_options(clangCppInterOp
131+
PRIVATE "SHELL: -Oz"
132+
PRIVATE "SHELL: -flto"
133+
)
130134
target_link_options(clangCppInterOp
131135
PRIVATE "SHELL: -s WASM_BIGINT"
132136
PRIVATE "SHELL: -s SIDE_MODULE=1"
133137
PRIVATE "SHELL: ${SYMBOLS_LIST}"
138+
PRIVATE "SHELL: -Oz"
139+
PRIVATE "SHELL: -flto"
134140
)
135141
else()
136142
target_link_options(clangCppInterOp

lib/CppInterOp/CXCppInterOp.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -437,7 +437,7 @@ CXString clang_getTypeAsString(CXQualType type) {
437437
clang::PrintingPolicy Policy = C.getPrintingPolicy();
438438
Policy.Bool = true; // Print bool instead of _Bool.
439439
Policy.SuppressTagKeyword = true; // Do not print `class std::string`.
440-
return makeCXString(compat::FixTypeName(QT.getAsString(Policy)));
440+
return makeCXString(QT.getAsString(Policy));
441441
}
442442

443443
CXQualType clang_getComplexType(CXQualType eltype) {

0 commit comments

Comments
 (0)