build: do a real non-size-optimized LTO build

This commit is contained in:
Marcus Holland-Moritz 2025-04-08 00:00:00 +02:00
parent 37849ee37c
commit b99cb472f1
3 changed files with 15 additions and 17 deletions

View File

@ -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"

View File

@ -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"

View File

@ -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