From b99cb472f1b7f844ee5960bebc604a5c2a48d7ef Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Tue, 8 Apr 2025 00:00:00 +0200 Subject: [PATCH] build: do a real non-size-optimized LTO build --- .docker/build-linux.sh | 1 + .docker/install-static-libs.sh | 19 ++++++++----------- .github/workflows/build.yml | 12 ++++++------ 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/.docker/build-linux.sh b/.docker/build-linux.sh index 7b6f393f..c9eaca06 100755 --- a/.docker/build-linux.sh +++ b/.docker/build-linux.sh @@ -139,6 +139,7 @@ case "-$BUILD_TYPE-" in export CXXFLAGS="${CFLAGS}" export LDFLAGS="-Wl,--gc-sections" fi + export COMPILER="${COMPILER}-minsize" ;; *-reldbg-*) CMAKE_ARGS="${CMAKE_ARGS} -DCMAKE_BUILD_TYPE=RelWithDebInfo" diff --git a/.docker/install-static-libs.sh b/.docker/install-static-libs.sh index c0dfa650..99fa01b6 100644 --- a/.docker/install-static-libs.sh +++ b/.docker/install-static-libs.sh @@ -37,11 +37,9 @@ if [[ "$PKGS" == ":ubuntu" ]]; then COMPILERS="clang gcc" elif [[ "$PKGS" == ":alpine" ]]; then PKGS="benchmark,brotli,cpptrace,double-conversion,flac,fmt,fuse,glog,libarchive,lz4,openssl,xxhash,zstd" - export CLANG_OPTIMIZE="-Os" - export GCC_OPTIMIZE="-O2" # gcc -Os is painfully slow export COMMON_CFLAGS="-ffunction-sections -fdata-sections -fmerge-all-constants" export COMMON_CXXFLAGS="$COMMON_CFLAGS" - COMPILERS="clang gcc clang-lto gcc-lto" + COMPILERS="clang clang-lto clang-minsize-lto gcc" elif [[ "$PKGS" == ":none" ]]; then echo "No libraries to build" exit 0 @@ -123,18 +121,10 @@ for COMPILER in $COMPILERS; do clang*) export CC="$CLANG" export CXX="${CLANG/clang/clang++}" - if [[ -n "$CLANG_OPTIMIZE" ]]; then - export CFLAGS="$CFLAGS $CLANG_OPTIMIZE" - export CXXFLAGS="$CXXFLAGS $CLANG_OPTIMIZE" - fi ;; gcc*) export CC="$GCC" export CXX="${GCC/gcc/g++}" - if [[ -n "$GCC_OPTIMIZE" ]]; then - export CFLAGS="$CFLAGS $GCC_OPTIMIZE" - export CXXFLAGS="$CXXFLAGS $GCC_OPTIMIZE" - fi ;; *) echo "Unknown compiler: $COMPILER" @@ -142,6 +132,13 @@ for COMPILER in $COMPILERS; do ;; esac + case "-$COMPILER-" in + *-minsize-*) + export CFLAGS="$CFLAGS -Os" + export CXXFLAGS="$CXXFLAGS -Os" + ;; + esac + case "$COMPILER" in *-lto) export CFLAGS="$CFLAGS -flto" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6ec81bc4..2ce28de1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -332,12 +332,12 @@ jobs: - arch: arm64v8 dist: alpine build_type: clang-release-ninja-static - - arch: amd64 - dist: alpine - build_type: clang-relsize-ninja-static - - arch: arm64v8 - dist: alpine - build_type: clang-relsize-ninja-static + # - arch: amd64 + # dist: alpine + # build_type: clang-relsize-ninja-static + # - arch: arm64v8 + # dist: alpine + # build_type: clang-relsize-ninja-static # - arch: amd64 # dist: alpine # build_type: gcc-release-lto-ninja-static