From 7f8bc1b339e18f429ac8ba32c7d033c17cdc49ec Mon Sep 17 00:00:00 2001 From: caio Date: Tue, 18 Nov 2025 03:33:32 +0100 Subject: [PATCH] hopefully smaller binary size --- .gitea/workflows/build.yml | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index cd2f0dea8e04..d75c57ae1fd6 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -27,15 +27,13 @@ jobs: zlib1g-dev \ build-essential \ lld \ - clang + clang \ + wget \ + libssl-dev pip3 install PyYAML>=5.1 - name: Install CMake (from source) run: | - apt-get update && apt-get install -y \ - wget \ - libssl-dev - CMAKE_VERSION=3.28.3 cd /tmp wget -q https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}.tar.gz @@ -46,16 +44,25 @@ jobs: make install cmake --version - - name: Configure Clang (using Clang) + - name: Configure LLVM/Clang (lean mode) 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' \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} \ - -DLLVM_ENABLE_LLD=ON + -DLLVM_TARGETS_TO_BUILD='X86' \ + -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON \ + -DLLVM_INCLUDE_TESTS=OFF \ + -DLLVM_INCLUDE_EXAMPLES=OFF \ + -DLLVM_INCLUDE_DOCS=OFF \ + -DLLVM_ENABLE_ASSERTIONS=OFF \ + -DLLVM_ENABLE_RTTI=OFF \ + -DLLVM_ENABLE_EH=OFF \ + -DCMAKE_BUILD_TYPE=MinSizeRel \ + -DLLVM_ENABLE_LLD=ON \ + -DBUILD_SHARED_LIBS=ON \ + -DCMAKE_INSTALL_PREFIX=${INSTALL_PATH} - name: Build Clang run: | @@ -65,13 +72,18 @@ jobs: run: | cmake --install build --prefix ${INSTALL_PATH} - - name: Package artifact + - name: Strip binaries (massive size reduction) run: | - tar -czf clang-p2996.tar.gz -C ${INSTALL_PATH} . + find ${INSTALL_PATH} -type f -exec strip --strip-unneeded {} + || true + + - name: Package artifact (Zstd) + run: | + apt-get update && apt-get install -y zstd + tar --use-compress-program=zstd -cf clang-p2996.tar.zst -C ${INSTALL_PATH} . - name: Upload artifact uses: actions/upload-artifact@v3 with: name: clang-p2996 - path: clang-p2996.tar.gz + path: clang-p2996.tar.zst