diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index d75c57ae1fd6..303329307389 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -44,27 +44,28 @@ jobs: make install cmake --version - - name: Configure LLVM/Clang (lean mode) + - name: Configure LLVM/Clang for Reflection + Runtimes run: | export CC=clang export CXX=clang++ cmake -S llvm -B build \ -DLLVM_ENABLE_PROJECTS='clang;clang-tools-extra' \ + -DLLVM_ENABLE_RUNTIMES='libcxx;libcxxabi;libunwind' \ -DLLVM_TARGETS_TO_BUILD='X86' \ - -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON \ + -DLLVM_INSTALL_TOOLCHAIN_ONLY=OFF \ -DLLVM_INCLUDE_TESTS=OFF \ -DLLVM_INCLUDE_EXAMPLES=OFF \ -DLLVM_INCLUDE_DOCS=OFF \ -DLLVM_ENABLE_ASSERTIONS=OFF \ - -DLLVM_ENABLE_RTTI=OFF \ - -DLLVM_ENABLE_EH=OFF \ + -DLLVM_ENABLE_RTTI=ON \ + -DLLVM_ENABLE_EH=ON \ -DCMAKE_BUILD_TYPE=MinSizeRel \ -DLLVM_ENABLE_LLD=ON \ -DBUILD_SHARED_LIBS=ON \ -DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} - - name: Build Clang + - name: Build Clang + clangd + libc++ run: | cmake --build build --parallel=$(nproc) @@ -72,9 +73,10 @@ jobs: run: | cmake --install build --prefix ${INSTALL_PATH} - - name: Strip binaries (massive size reduction) + - name: Strip binaries (safe mode — leaves symbols needed by libc++) run: | - find ${INSTALL_PATH} -type f -exec strip --strip-unneeded {} + || true + find ${INSTALL_PATH} -type f -not -name "*.a" -not -name "*.so" \ + -exec strip --strip-unneeded {} + 2>/dev/null || true - name: Package artifact (Zstd) run: |