From 62cbdb6619fed2032212cd678cac7a8c6fd73c55 Mon Sep 17 00:00:00 2001 From: Max Lv Date: Wed, 14 Oct 2026 17:24:05 +0800 Subject: [PATCH] Fix the fully static image and the build image for the C++ sources docker/static: the C++ unit tests link the static libstdc++, whose error paths need an unwinder that --rtlib=compiler-rt does not provide; link llvm-libunwind. The programs themselves still need no C++ runtime. docker/build: build in the default bundled mode with CMake instead of against libev/udns (Alpine's Mbed TLS 4 is not supported by system mode). --- docker/build/builder.Dockerfile | 9 ++++----- docker/build/dockerbuild.sh | 5 ++++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/docker/build/builder.Dockerfile b/docker/build/builder.Dockerfile index 8aa92c21..086d6210 100644 --- a/docker/build/builder.Dockerfile +++ b/docker/build/builder.Dockerfile @@ -1,8 +1,7 @@ -# Alpine with China mirror +# Development image for building shadowsocks-c. The default bundled mode +# builds every dependency from third_party/dist, so only a toolchain is +# needed (Alpine's Mbed TLS 4 is not supported by system mode). FROM alpine -MAINTAINER wener -# Better for cache and dev RUN apk add --no-cache --virtual .build-deps \ - alpine-sdk cmake \ - linux-headers libev-dev libsodium-dev mbedtls-static mbedtls-dev pcre2-dev udns-dev + build-base cmake ninja python3 linux-headers diff --git a/docker/build/dockerbuild.sh b/docker/build/dockerbuild.sh index 2b61cc60..e01448cd 100755 --- a/docker/build/dockerbuild.sh +++ b/docker/build/dockerbuild.sh @@ -2,4 +2,7 @@ set -e set -o xtrace -cmake -DBUILD_STATIC=OFF . && make && make install \ No newline at end of file +cmake -S . -B build -G Ninja +cmake --build build +ctest --test-dir build -L 'unit|vendor' --output-on-failure +cmake --install build