diff --git a/.docker/build-linux.sh b/.docker/build-linux.sh index 11b647b2..0cebe53d 100755 --- a/.docker/build-linux.sh +++ b/.docker/build-linux.sh @@ -97,7 +97,7 @@ case "-$BUILD_TYPE-" in ;; *-clang-*) case "-$BUILD_DIST-" in - *-ubuntu-*) + *-ubuntu-*|*-alpine-*) export CC=clang$CLANG_VERSION CXX=clang++$CLANG_VERSION ;; *) @@ -126,7 +126,7 @@ case "-$BUILD_TYPE-" in CMAKE_ARGS="${CMAKE_ARGS} -DCMAKE_BUILD_TYPE=MinSizeRel" CMAKE_ARGS="${CMAKE_ARGS} -DWITH_BENCHMARKS=1" export CFLAGS="-ffunction-sections -fdata-sections -fvisibility=hidden -fmerge-all-constants" - export CXXFLAGS="$CFLAGS" + export CXXFLAGS="${CFLAGS}" export LDFLAGS="-Wl,--gc-sections" ;; *-reldbg-*) @@ -137,6 +137,16 @@ case "-$BUILD_TYPE-" in exit 1 esac +case "-$BUILD_TYPE-" in + *-lto-*) + CMAKE_ARGS="${CMAKE_ARGS} -DDISABLE_MOLD=1" + export CFLAGS="${CFLAGS} -flto" + export CXXFLAGS="${CXXFLAGS} -flto" + export LDFLAGS="${LDFLAGS} -flto" + export COMPILER="${COMPILER}-lto" + ;; +esac + case "-$BUILD_TYPE-" in *-asan-*) CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_ASAN=1" @@ -196,7 +206,7 @@ fi if [[ "-$BUILD_TYPE-" == *-static-* ]]; then CMAKE_ARGS_NONSTATIC="${CMAKE_ARGS}" export LDFLAGS="-L/opt/static-libs/$COMPILER/lib" - CMAKE_ARGS="${CMAKE_ARGS} -DSTATIC_BUILD_DO_NOT_USE=1 -DWITH_UNIVERSAL_BINARY=1 -DWITH_PXATTR=1" + CMAKE_ARGS="${CMAKE_ARGS} -DSTATIC_BUILD_DO_NOT_USE=1 -DWITH_UNIVERSAL_BINARY=1 -DWITH_FUSE_EXTRACT_BINARY=1 -DWITH_PXATTR=1" CMAKE_ARGS="${CMAKE_ARGS} -DSTATIC_BUILD_EXTRA_PREFIX=/opt/static-libs/$COMPILER" fi diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ddcd5c08..8ed8d560 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -344,6 +344,18 @@ jobs: - arch: arm64v8 dist: alpine build_type: clang-relsize-ninja-static + - arch: amd64 + dist: alpine + build_type: gcc-relsize-lto-ninja-static + - arch: arm64v8 + dist: alpine + build_type: gcc-relsize-lto-ninja-static + - arch: amd64 + dist: alpine + build_type: clang-relsize-lto-ninja-static + - arch: arm64v8 + dist: alpine + build_type: clang-relsize-lto-ninja-static - arch: amd64 dist: alpine build_type: clang-reldbg-stacktrace-ninja-static