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 CXXFLAGS="${CFLAGS}"
export LDFLAGS="-Wl,--gc-sections" export LDFLAGS="-Wl,--gc-sections"
fi fi
export COMPILER="${COMPILER}-minsize"
;; ;;
*-reldbg-*) *-reldbg-*)
CMAKE_ARGS="${CMAKE_ARGS} -DCMAKE_BUILD_TYPE=RelWithDebInfo" CMAKE_ARGS="${CMAKE_ARGS} -DCMAKE_BUILD_TYPE=RelWithDebInfo"

View File

@ -37,11 +37,9 @@ if [[ "$PKGS" == ":ubuntu" ]]; then
COMPILERS="clang gcc" COMPILERS="clang gcc"
elif [[ "$PKGS" == ":alpine" ]]; then elif [[ "$PKGS" == ":alpine" ]]; then
PKGS="benchmark,brotli,cpptrace,double-conversion,flac,fmt,fuse,glog,libarchive,lz4,openssl,xxhash,zstd" 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_CFLAGS="-ffunction-sections -fdata-sections -fmerge-all-constants"
export COMMON_CXXFLAGS="$COMMON_CFLAGS" export COMMON_CXXFLAGS="$COMMON_CFLAGS"
COMPILERS="clang gcc clang-lto gcc-lto" COMPILERS="clang clang-lto clang-minsize-lto gcc"
elif [[ "$PKGS" == ":none" ]]; then elif [[ "$PKGS" == ":none" ]]; then
echo "No libraries to build" echo "No libraries to build"
exit 0 exit 0
@ -123,18 +121,10 @@ for COMPILER in $COMPILERS; do
clang*) clang*)
export CC="$CLANG" export CC="$CLANG"
export CXX="${CLANG/clang/clang++}" export CXX="${CLANG/clang/clang++}"
if [[ -n "$CLANG_OPTIMIZE" ]]; then
export CFLAGS="$CFLAGS $CLANG_OPTIMIZE"
export CXXFLAGS="$CXXFLAGS $CLANG_OPTIMIZE"
fi
;; ;;
gcc*) gcc*)
export CC="$GCC" export CC="$GCC"
export CXX="${GCC/gcc/g++}" 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" echo "Unknown compiler: $COMPILER"
@ -142,6 +132,13 @@ for COMPILER in $COMPILERS; do
;; ;;
esac esac
case "-$COMPILER-" in
*-minsize-*)
export CFLAGS="$CFLAGS -Os"
export CXXFLAGS="$CXXFLAGS -Os"
;;
esac
case "$COMPILER" in case "$COMPILER" in
*-lto) *-lto)
export CFLAGS="$CFLAGS -flto" export CFLAGS="$CFLAGS -flto"

View File

@ -332,12 +332,12 @@ jobs:
- arch: arm64v8 - arch: arm64v8
dist: alpine dist: alpine
build_type: clang-release-ninja-static build_type: clang-release-ninja-static
- arch: amd64 # - arch: amd64
dist: alpine # dist: alpine
build_type: clang-relsize-ninja-static # build_type: clang-relsize-ninja-static
- arch: arm64v8 # - arch: arm64v8
dist: alpine # dist: alpine
build_type: clang-relsize-ninja-static # build_type: clang-relsize-ninja-static
# - arch: amd64 # - arch: amd64
# dist: alpine # dist: alpine
# build_type: gcc-release-lto-ninja-static # build_type: gcc-release-lto-ninja-static