From 028503cf67df0d4d909710d00a02fa0902aeec60 Mon Sep 17 00:00:00 2001 From: mcbarton Date: Tue, 1 Jul 2025 15:37:56 +0100 Subject: [PATCH 1/6] Use Oz and flto flags to reduce Emscripten shared library size --- .github/workflows/emscripten.yml | 28 +++++++++++++++++++++++++- Emscripten-build-instructions.md | 6 ++++++ docs/Emscripten-build-instructions.rst | 6 ++++++ lib/CppInterOp/CMakeLists.txt | 6 ++++++ lib/CppInterOp/exports.ld | 3 ++- 5 files changed, 47 insertions(+), 2 deletions(-) diff --git a/.github/workflows/emscripten.yml b/.github/workflows/emscripten.yml index 75fb1f310..64f89120f 100644 --- a/.github/workflows/emscripten.yml +++ b/.github/workflows/emscripten.yml @@ -194,6 +194,9 @@ jobs: -DLLVM_ENABLE_LIBPFM=OFF \ -DCLANG_BUILD_TOOLS=OFF \ -DLLVM_NATIVE_TOOL_DIR=$NATIVE_DIR \ + -DCMAKE_C_FLAGS_RELEASE="-Oz -g0" \ + -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0" \ + -DLLVM_ENABLE_LTO=Full \ ../llvm emmake ninja clang cling lld gtest_main else @@ -225,6 +228,9 @@ jobs: -DCLANG_BUILD_TOOLS=OFF \ -G Ninja \ -DLLVM_NATIVE_TOOL_DIR=$NATIVE_DIR \ + -DCMAKE_C_FLAGS_RELEASE="-Oz -g0" \ + -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0" \ + -DLLVM_ENABLE_LTO=Full \ ../llvm emmake ninja libclang clangInterpreter clangStaticAnalyzerCore lldWasm fi @@ -295,6 +301,9 @@ jobs: -DLLVM_BUILD_TOOLS=OFF ` -DLLVM_ENABLE_LIBPFM=OFF ` -DCLANG_BUILD_TOOLS=OFF ` + -DCMAKE_C_FLAGS_RELEASE="-Oz -g0" ` + -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0" ` + -DLLVM_ENABLE_LTO=Full ` ..\llvm emmake make clang cling lld gtest_main } @@ -335,6 +344,9 @@ jobs: -DLLVM_BUILD_TOOLS=OFF ` -DLLVM_ENABLE_LIBPFM=OFF ` -DCLANG_BUILD_TOOLS=OFF ` + -DCMAKE_C_FLAGS_RELEASE="-Oz -g0" ` + -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0" ` + -DLLVM_ENABLE_LTO=Full ` -G Ninja ` ..\llvm emmake ninja libclang clangInterpreter clangStaticAnalyzerCore lldWasm @@ -519,6 +531,15 @@ jobs: fi emmake make -j ${{ env.ncpus }} check-cppinterop + os="${{ matrix.os }}" + if [[ "${os}" != macos* ]] ; then + actual_size=$(stat -c%s "./lib/libclangCppInterOp.so") + max_size=$((46 * 1024 * 1024)) + if [[ "$actual_size" -gt "$max_size" ]]; then + echo "Error: libclangCppInterOp.so is larger than 46 MB." + exit 1 + fi + fi cd ./unittests/CppInterOp/ # Fresh install browsers, and run Emscripten tests in them # This is to match the Emscripten build instructions, where @@ -673,7 +694,12 @@ jobs: -DSYSROOT_PATH=$SYSROOT_PATH \ ../ fi - emmake make -j ${{ env.ncpus }} check-cppinterop + os="${{ matrix.os }}" + if [[ "${os}" != macos* ]] ; then + EMCC_CORES=1 emmake make -j 1 check-cppinterop + else + EMCC_CORES=2 emmake make -j 2 check-cppinterop + fi cd ./unittests/CppInterOp/ # Explaination of options for emrun # --browser (name of browser on path) diff --git a/Emscripten-build-instructions.md b/Emscripten-build-instructions.md index 7bf9fa849..1b24bb9fb 100644 --- a/Emscripten-build-instructions.md +++ b/Emscripten-build-instructions.md @@ -99,6 +99,9 @@ emcmake cmake -DCMAKE_BUILD_TYPE=Release \ -DLLVM_ENABLE_LIBPFM=OFF \ -DCLANG_BUILD_TOOLS=OFF \ -DLLVM_NATIVE_TOOL_DIR=$NATIVE_DIR \ + -DCMAKE_C_FLAGS_RELEASE="-Oz -g0" \ + -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0" \ + -DLLVM_ENABLE_LTO=Full \ ../llvm emmake make libclang -j $(nproc --all) emmake make clangInterpreter clangStaticAnalyzerCore -j $(nproc --all) @@ -130,6 +133,9 @@ emcmake cmake -DCMAKE_BUILD_TYPE=Release ` -DLLVM_ENABLE_LIBPFM=OFF ` -DCLANG_BUILD_TOOLS=OFF ` -G Ninja ` + -DCMAKE_C_FLAGS_RELEASE="-Oz -g0" ` + -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0" ` + -DLLVM_ENABLE_LTO=Full ` ..\llvm emmake ninja libclang clangInterpreter clangStaticAnalyzerCore lldWasm ``` diff --git a/docs/Emscripten-build-instructions.rst b/docs/Emscripten-build-instructions.rst index 385988631..0fe1a0491 100644 --- a/docs/Emscripten-build-instructions.rst +++ b/docs/Emscripten-build-instructions.rst @@ -119,6 +119,9 @@ and osx -DLLVM_ENABLE_LIBPFM=OFF \ -DCLANG_BUILD_TOOLS=OFF \ -DLLVM_NATIVE_TOOL_DIR=$NATIVE_DIR \ + -DCMAKE_C_FLAGS_RELEASE="-Oz -g0" \ + -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0" \ + -DLLVM_ENABLE_LTO=Full \ ../llvm emmake make libclang -j $(nproc --all) emmake make clangInterpreter clangStaticAnalyzerCore -j $(nproc --all) @@ -150,6 +153,9 @@ or executing -DLLVM_ENABLE_LIBPFM=OFF ` -DCLANG_BUILD_TOOLS=OFF ` -G Ninja ` + -DCMAKE_C_FLAGS_RELEASE="-Oz -g0" ` + -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0" ` + -DLLVM_ENABLE_LTO=Full ` ..\llvm emmake ninja libclang clangInterpreter clangStaticAnalyzerCore lldWasm diff --git a/lib/CppInterOp/CMakeLists.txt b/lib/CppInterOp/CMakeLists.txt index 142d4d5d9..5a4fa9f96 100644 --- a/lib/CppInterOp/CMakeLists.txt +++ b/lib/CppInterOp/CMakeLists.txt @@ -127,10 +127,16 @@ if(EMSCRIPTEN) set_target_properties(clangCppInterOp PROPERTIES NO_SONAME 1 ) + target_compile_options(clangCppInterOp + PRIVATE "SHELL: -Oz" + PRIVATE "SHELL: -flto" + ) target_link_options(clangCppInterOp PRIVATE "SHELL: -s WASM_BIGINT" PRIVATE "SHELL: -s SIDE_MODULE=1" PRIVATE "SHELL: ${SYMBOLS_LIST}" + PRIVATE "SHELL: -Oz" + PRIVATE "SHELL: -flto" ) else() target_link_options(clangCppInterOp diff --git a/lib/CppInterOp/exports.ld b/lib/CppInterOp/exports.ld index 49b7b0d83..e22490f2a 100644 --- a/lib/CppInterOp/exports.ld +++ b/lib/CppInterOp/exports.ld @@ -50,4 +50,5 @@ -Wl,--export=_ZNK5clang4Type14isFloatingTypeEv -Wl,--export=_ZNK5clang12FunctionDecl12getNumParamsEv -Wl,--export=__clang_Interpreter_SetValueNoAlloc --Wl,--export=__clang_Interpreter_SetValueWithAlloc \ No newline at end of file +-Wl,--export=__clang_Interpreter_SetValueWithAlloc +-Wl,--export=_ZN4llvm15SmallVectorBaseIjE8set_sizeEm \ No newline at end of file From 22421d299e06629d4d9bc5e3240f99d62d4d07b9 Mon Sep 17 00:00:00 2001 From: mcbarton Date: Sun, 20 Jul 2025 21:08:40 +0100 Subject: [PATCH 2/6] Turn assertions off --- .github/workflows/emscripten.yml | 24 ++++++++++++------------ Emscripten-build-instructions.md | 12 ++++++------ docs/Emscripten-build-instructions.rst | 12 ++++++------ 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/.github/workflows/emscripten.yml b/.github/workflows/emscripten.yml index 64f89120f..cb563d143 100644 --- a/.github/workflows/emscripten.yml +++ b/.github/workflows/emscripten.yml @@ -175,7 +175,7 @@ jobs: -DLLVM_EXTERNAL_CLING_SOURCE_DIR=../../cling \ -DCMAKE_BUILD_TYPE=Release \ -DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten \ - -DLLVM_ENABLE_ASSERTIONS=ON \ + -DLLVM_ENABLE_ASSERTIONS=OFF \ -DLLVM_TARGETS_TO_BUILD="${{ matrix.llvm_targets_to_build }}" \ -DLLVM_ENABLE_LIBEDIT=OFF \ -DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects }}" \ @@ -194,8 +194,8 @@ jobs: -DLLVM_ENABLE_LIBPFM=OFF \ -DCLANG_BUILD_TOOLS=OFF \ -DLLVM_NATIVE_TOOL_DIR=$NATIVE_DIR \ - -DCMAKE_C_FLAGS_RELEASE="-Oz -g0" \ - -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0" \ + -DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \ + -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \ -DLLVM_ENABLE_LTO=Full \ ../llvm emmake ninja clang cling lld gtest_main @@ -209,7 +209,7 @@ jobs: cd build emcmake cmake -DCMAKE_BUILD_TYPE=Release \ -DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten \ - -DLLVM_ENABLE_ASSERTIONS=ON \ + -DLLVM_ENABLE_ASSERTIONS=OFF \ -DLLVM_TARGETS_TO_BUILD="${{ matrix.llvm_targets_to_build }}" \ -DLLVM_ENABLE_LIBEDIT=OFF \ -DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects }}" \ @@ -228,8 +228,8 @@ jobs: -DCLANG_BUILD_TOOLS=OFF \ -G Ninja \ -DLLVM_NATIVE_TOOL_DIR=$NATIVE_DIR \ - -DCMAKE_C_FLAGS_RELEASE="-Oz -g0" \ - -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0" \ + -DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \ + -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \ -DLLVM_ENABLE_LTO=Full \ ../llvm emmake ninja libclang clangInterpreter clangStaticAnalyzerCore lldWasm @@ -283,7 +283,7 @@ jobs: -DLLVM_EXTERNAL_CLING_SOURCE_DIR=../../cling ` -DCMAKE_BUILD_TYPE=Release ` -DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten ` - -DLLVM_ENABLE_ASSERTIONS=ON ` + -DLLVM_ENABLE_ASSERTIONS=OFF ` -DLLVM_TARGETS_TO_BUILD="${{ matrix.llvm_targets_to_build }}" ` -DLLVM_ENABLE_LIBEDIT=OFF ` -DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects }}" ` @@ -301,8 +301,8 @@ jobs: -DLLVM_BUILD_TOOLS=OFF ` -DLLVM_ENABLE_LIBPFM=OFF ` -DCLANG_BUILD_TOOLS=OFF ` - -DCMAKE_C_FLAGS_RELEASE="-Oz -g0" ` - -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0" ` + -DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" ` + -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" ` -DLLVM_ENABLE_LTO=Full ` ..\llvm emmake make clang cling lld gtest_main @@ -327,7 +327,7 @@ jobs: echo "Apply clang${{ matrix.clang-runtime }}-*.patch patches:" emcmake cmake -DCMAKE_BUILD_TYPE=Release ` -DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten ` - -DLLVM_ENABLE_ASSERTIONS=ON ` + -DLLVM_ENABLE_ASSERTIONS=OFF ` -DLLVM_TARGETS_TO_BUILD="${{ matrix.llvm_targets_to_build }}" ` -DLLVM_ENABLE_LIBEDIT=OFF ` -DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects }}" ` @@ -344,8 +344,8 @@ jobs: -DLLVM_BUILD_TOOLS=OFF ` -DLLVM_ENABLE_LIBPFM=OFF ` -DCLANG_BUILD_TOOLS=OFF ` - -DCMAKE_C_FLAGS_RELEASE="-Oz -g0" ` - -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0" ` + -DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" ` + -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" ` -DLLVM_ENABLE_LTO=Full ` -G Ninja ` ..\llvm diff --git a/Emscripten-build-instructions.md b/Emscripten-build-instructions.md index 1b24bb9fb..7766df37e 100644 --- a/Emscripten-build-instructions.md +++ b/Emscripten-build-instructions.md @@ -81,7 +81,7 @@ mkdir build cd build emcmake cmake -DCMAKE_BUILD_TYPE=Release \ -DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten \ - -DLLVM_ENABLE_ASSERTIONS=ON \ + -DLLVM_ENABLE_ASSERTIONS=OFF \ -DLLVM_TARGETS_TO_BUILD="WebAssembly" \ -DLLVM_ENABLE_LIBEDIT=OFF \ -DLLVM_ENABLE_PROJECTS="clang;lld" \ @@ -99,8 +99,8 @@ emcmake cmake -DCMAKE_BUILD_TYPE=Release \ -DLLVM_ENABLE_LIBPFM=OFF \ -DCLANG_BUILD_TOOLS=OFF \ -DLLVM_NATIVE_TOOL_DIR=$NATIVE_DIR \ - -DCMAKE_C_FLAGS_RELEASE="-Oz -g0" \ - -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0" \ + -DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \ + -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \ -DLLVM_ENABLE_LTO=Full \ ../llvm emmake make libclang -j $(nproc --all) @@ -115,7 +115,7 @@ mkdir build cd build emcmake cmake -DCMAKE_BUILD_TYPE=Release ` -DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten ` - -DLLVM_ENABLE_ASSERTIONS=ON ` + -DLLVM_ENABLE_ASSERTIONS=OFF ` -DLLVM_TARGETS_TO_BUILD="WebAssembly" ` -DLLVM_ENABLE_LIBEDIT=OFF ` -DLLVM_ENABLE_PROJECTS="clang;lld" ` @@ -133,8 +133,8 @@ emcmake cmake -DCMAKE_BUILD_TYPE=Release ` -DLLVM_ENABLE_LIBPFM=OFF ` -DCLANG_BUILD_TOOLS=OFF ` -G Ninja ` - -DCMAKE_C_FLAGS_RELEASE="-Oz -g0" ` - -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0" ` + -DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" ` + -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" ` -DLLVM_ENABLE_LTO=Full ` ..\llvm emmake ninja libclang clangInterpreter clangStaticAnalyzerCore lldWasm diff --git a/docs/Emscripten-build-instructions.rst b/docs/Emscripten-build-instructions.rst index 0fe1a0491..05b47721f 100644 --- a/docs/Emscripten-build-instructions.rst +++ b/docs/Emscripten-build-instructions.rst @@ -101,7 +101,7 @@ and osx cd build emcmake cmake -DCMAKE_BUILD_TYPE=Release \ -DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten \ - -DLLVM_ENABLE_ASSERTIONS=ON \ + -DLLVM_ENABLE_ASSERTIONS=OFF \ -DLLVM_TARGETS_TO_BUILD="WebAssembly" \ -DLLVM_ENABLE_LIBEDIT=OFF \ -DLLVM_ENABLE_PROJECTS="clang;lld" \ @@ -119,8 +119,8 @@ and osx -DLLVM_ENABLE_LIBPFM=OFF \ -DCLANG_BUILD_TOOLS=OFF \ -DLLVM_NATIVE_TOOL_DIR=$NATIVE_DIR \ - -DCMAKE_C_FLAGS_RELEASE="-Oz -g0" \ - -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0" \ + -DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \ + -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \ -DLLVM_ENABLE_LTO=Full \ ../llvm emmake make libclang -j $(nproc --all) @@ -135,7 +135,7 @@ or executing cd build emcmake cmake -DCMAKE_BUILD_TYPE=Release ` -DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten ` - -DLLVM_ENABLE_ASSERTIONS=ON ` + -DLLVM_ENABLE_ASSERTIONS=OFF ` -DLLVM_TARGETS_TO_BUILD="WebAssembly" ` -DLLVM_ENABLE_LIBEDIT=OFF ` -DLLVM_ENABLE_PROJECTS="clang;lld" ` @@ -153,8 +153,8 @@ or executing -DLLVM_ENABLE_LIBPFM=OFF ` -DCLANG_BUILD_TOOLS=OFF ` -G Ninja ` - -DCMAKE_C_FLAGS_RELEASE="-Oz -g0" ` - -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0" ` + -DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" ` + -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" ` -DLLVM_ENABLE_LTO=Full ` ..\llvm emmake ninja libclang clangInterpreter clangStaticAnalyzerCore lldWasm From b7aa806db3d6ac75be7d568bc9214a12f8c5998e Mon Sep 17 00:00:00 2001 From: mcbarton Date: Sun, 20 Jul 2025 21:11:23 +0100 Subject: [PATCH 3/6] Change upper limit shared library size --- .github/workflows/emscripten.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/emscripten.yml b/.github/workflows/emscripten.yml index cb563d143..56d74e952 100644 --- a/.github/workflows/emscripten.yml +++ b/.github/workflows/emscripten.yml @@ -534,9 +534,9 @@ jobs: os="${{ matrix.os }}" if [[ "${os}" != macos* ]] ; then actual_size=$(stat -c%s "./lib/libclangCppInterOp.so") - max_size=$((46 * 1024 * 1024)) + max_size=$((40 * 1024 * 1024)) if [[ "$actual_size" -gt "$max_size" ]]; then - echo "Error: libclangCppInterOp.so is larger than 46 MB." + echo "Error: libclangCppInterOp.so is larger than 40 MB." exit 1 fi fi From 48d8d7df7d38fe1c7a5b0e92493e68a306e5eb9e Mon Sep 17 00:00:00 2001 From: mcbarton <150042563+mcbarton@users.noreply.github.com> Date: Mon, 21 Jul 2025 20:16:59 +0100 Subject: [PATCH 4/6] Remove LLVM_ENABLE_ASSERTIONS=OFF since its the default --- .github/workflows/emscripten.yml | 4 ---- Emscripten-build-instructions.md | 2 -- docs/Emscripten-build-instructions.rst | 2 -- 3 files changed, 8 deletions(-) diff --git a/.github/workflows/emscripten.yml b/.github/workflows/emscripten.yml index 56d74e952..94dc9b3e6 100644 --- a/.github/workflows/emscripten.yml +++ b/.github/workflows/emscripten.yml @@ -175,7 +175,6 @@ jobs: -DLLVM_EXTERNAL_CLING_SOURCE_DIR=../../cling \ -DCMAKE_BUILD_TYPE=Release \ -DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten \ - -DLLVM_ENABLE_ASSERTIONS=OFF \ -DLLVM_TARGETS_TO_BUILD="${{ matrix.llvm_targets_to_build }}" \ -DLLVM_ENABLE_LIBEDIT=OFF \ -DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects }}" \ @@ -209,7 +208,6 @@ jobs: cd build emcmake cmake -DCMAKE_BUILD_TYPE=Release \ -DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten \ - -DLLVM_ENABLE_ASSERTIONS=OFF \ -DLLVM_TARGETS_TO_BUILD="${{ matrix.llvm_targets_to_build }}" \ -DLLVM_ENABLE_LIBEDIT=OFF \ -DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects }}" \ @@ -283,7 +281,6 @@ jobs: -DLLVM_EXTERNAL_CLING_SOURCE_DIR=../../cling ` -DCMAKE_BUILD_TYPE=Release ` -DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten ` - -DLLVM_ENABLE_ASSERTIONS=OFF ` -DLLVM_TARGETS_TO_BUILD="${{ matrix.llvm_targets_to_build }}" ` -DLLVM_ENABLE_LIBEDIT=OFF ` -DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects }}" ` @@ -327,7 +324,6 @@ jobs: echo "Apply clang${{ matrix.clang-runtime }}-*.patch patches:" emcmake cmake -DCMAKE_BUILD_TYPE=Release ` -DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten ` - -DLLVM_ENABLE_ASSERTIONS=OFF ` -DLLVM_TARGETS_TO_BUILD="${{ matrix.llvm_targets_to_build }}" ` -DLLVM_ENABLE_LIBEDIT=OFF ` -DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects }}" ` diff --git a/Emscripten-build-instructions.md b/Emscripten-build-instructions.md index 7766df37e..b6621e1c4 100644 --- a/Emscripten-build-instructions.md +++ b/Emscripten-build-instructions.md @@ -81,7 +81,6 @@ mkdir build cd build emcmake cmake -DCMAKE_BUILD_TYPE=Release \ -DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten \ - -DLLVM_ENABLE_ASSERTIONS=OFF \ -DLLVM_TARGETS_TO_BUILD="WebAssembly" \ -DLLVM_ENABLE_LIBEDIT=OFF \ -DLLVM_ENABLE_PROJECTS="clang;lld" \ @@ -115,7 +114,6 @@ mkdir build cd build emcmake cmake -DCMAKE_BUILD_TYPE=Release ` -DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten ` - -DLLVM_ENABLE_ASSERTIONS=OFF ` -DLLVM_TARGETS_TO_BUILD="WebAssembly" ` -DLLVM_ENABLE_LIBEDIT=OFF ` -DLLVM_ENABLE_PROJECTS="clang;lld" ` diff --git a/docs/Emscripten-build-instructions.rst b/docs/Emscripten-build-instructions.rst index 05b47721f..ccddf649b 100644 --- a/docs/Emscripten-build-instructions.rst +++ b/docs/Emscripten-build-instructions.rst @@ -101,7 +101,6 @@ and osx cd build emcmake cmake -DCMAKE_BUILD_TYPE=Release \ -DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten \ - -DLLVM_ENABLE_ASSERTIONS=OFF \ -DLLVM_TARGETS_TO_BUILD="WebAssembly" \ -DLLVM_ENABLE_LIBEDIT=OFF \ -DLLVM_ENABLE_PROJECTS="clang;lld" \ @@ -135,7 +134,6 @@ or executing cd build emcmake cmake -DCMAKE_BUILD_TYPE=Release ` -DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten ` - -DLLVM_ENABLE_ASSERTIONS=OFF ` -DLLVM_TARGETS_TO_BUILD="WebAssembly" ` -DLLVM_ENABLE_LIBEDIT=OFF ` -DLLVM_ENABLE_PROJECTS="clang;lld" ` From a6246f14ff9bee87833d609eec7c4f1a38af46fa Mon Sep 17 00:00:00 2001 From: mcbarton Date: Tue, 29 Jul 2025 12:33:06 +0100 Subject: [PATCH 5/6] Update exports.ld Update CMakeLists.txt Update emscripten.yml Update deploy-pages.yml Update docs Add new exported symbol Revert "Update exports.ld" This reverts commit 26026fe76fa22270252ac3dc377e9fe294678281. From e748750c4415198a3ecef14db3f2883cb9be59de Mon Sep 17 00:00:00 2001 From: mcbarton Date: Tue, 29 Jul 2025 19:30:24 +0100 Subject: [PATCH 6/6] Update emscripten.yml --- .github/workflows/emscripten.yml | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/.github/workflows/emscripten.yml b/.github/workflows/emscripten.yml index 3df68d992..27d4fe9dd 100644 --- a/.github/workflows/emscripten.yml +++ b/.github/workflows/emscripten.yml @@ -516,8 +516,6 @@ jobs: -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON \ -DLLVM_ENABLE_WERROR=On \ -DSYSROOT_PATH=$SYSROOT_PATH \ - -DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \ - -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \ ../ else emcmake cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \ @@ -531,8 +529,6 @@ jobs: -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON \ -DLLVM_ENABLE_WERROR=On \ -DSYSROOT_PATH=$SYSROOT_PATH \ - -DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \ - -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \ ../ fi @@ -686,8 +682,6 @@ jobs: -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON \ -DLLVM_ENABLE_WERROR=On \ -DSYSROOT_PATH=$SYSROOT_PATH \ - -DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \ - -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \ ../ else emcmake cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \ @@ -700,8 +694,6 @@ jobs: -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON \ -DLLVM_ENABLE_WERROR=On \ -DSYSROOT_PATH=$SYSROOT_PATH \ - -DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \ - -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \ ../ fi os="${{ matrix.os }}" @@ -834,8 +826,6 @@ jobs: -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON ` -DLLVM_ENABLE_WERROR=On ` -DSYSROOT_PATH="$env:SYSROOT_PATH" ` - -DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" ` - -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" ` ..\ } else @@ -851,8 +841,6 @@ jobs: -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON ` -DLLVM_ENABLE_WERROR=On ` -DSYSROOT_PATH="$env:SYSROOT_PATH" ` - -DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" ` - -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" ` ..\ } function Error-OnFailure { @@ -961,8 +949,6 @@ jobs: -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON ` -DLLVM_ENABLE_WERROR=On ` -DSYSROOT_PATH="$env:SYSROOT_PATH" ` - -DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" ` - -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" ` ..\ } else @@ -977,8 +963,6 @@ jobs: -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON ` -DLLVM_ENABLE_WERROR=On ` -DSYSROOT_PATH="$env:SYSROOT_PATH" ` - -DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" ` - -DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" ` ..\ } Error-OnFailure { emmake make -j ${{ env.ncpus }} check-cppinterop }