diff --git a/Dockerfile b/Dockerfile index 7e51c14836..6334ce3db6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -553,6 +553,7 @@ ARG TARGETPLATFORM RUN --mount=type=cache,sharing=locked,id=moby-build-aptlib,target=/var/lib/apt \ --mount=type=cache,sharing=locked,id=moby-build-aptcache,target=/var/cache/apt \ xx-apt-get install --no-install-recommends -y \ + dpkg-dev \ gcc \ libapparmor-dev \ libc6-dev \ @@ -581,7 +582,7 @@ RUN --mount=type=bind,target=. \ set -e target=$([ "$DOCKER_STATIC" = "1" ] && echo "binary" || echo "dynbinary") xx-go --wrap - ./hack/make.sh $target + PKG_CONFIG=$(xx-go env PKG_CONFIG) ./hack/make.sh $target xx-verify $([ "$DOCKER_STATIC" = "1" ] && echo "--static") /tmp/bundles/${target}-daemon/dockerd$([ "$(xx-info os)" = "windows" ] && echo ".exe") xx-verify $([ "$DOCKER_STATIC" = "1" ] && echo "--static") /tmp/bundles/${target}-daemon/docker-proxy$([ "$(xx-info os)" = "windows" ] && echo ".exe") mkdir /build diff --git a/hack/make/.binary b/hack/make/.binary index 1d66e12523..64fbadcd79 100644 --- a/hack/make/.binary +++ b/hack/make/.binary @@ -16,59 +16,22 @@ source "${MAKEDIR}/.go-autogen" ( export GOGC=${DOCKER_BUILD_GOGC:-1000} - # for non-sandboxed invocation - if ! command -v xx-go > /dev/null 2>&1; then - if [ "$(go env GOOS)/$(go env GOARCH)" != "$(go env GOHOSTOS)/$(go env GOHOSTARCH)" ]; then - # must be cross-compiling! - case "$(go env GOOS)/$(go env GOARCH)" in - windows/amd64) - export CC="${CC:-x86_64-w64-mingw32-gcc}" - export CGO_ENABLED=1 - ;; - linux/arm) - case "${GOARM}" in - 5) - export CC="${CC:-arm-linux-gnueabi-gcc}" - export CGO_ENABLED=1 - export CGO_CFLAGS="-march=armv5t" - export CGO_CXXFLAGS="-march=armv5t" - ;; - 6) - export CC="${CC:-arm-linux-gnueabi-gcc}" - export CGO_ENABLED=1 - export CGO_CFLAGS="-march=armv6" - export CGO_CXXFLAGS="-march=armv6" - ;; - 7) - export CC="${CC:-arm-linux-gnueabihf-gcc}" - export CGO_ENABLED=1 - export CGO_CFLAGS="-march=armv7-a" - export CGO_CXXFLAGS="-march=armv7-a" - ;; - *) - export CC="${CC:-arm-linux-gnueabihf-gcc}" - export CGO_ENABLED=1 - ;; - esac - ;; - linux/arm64) - export CC="${CC:-aarch64-linux-gnu-gcc}" - export CGO_ENABLED=1 - ;; - linux/amd64) - export CC="${CC:-x86_64-linux-gnu-gcc}" - export CGO_ENABLED=1 - ;; - linux/ppc64le) - export CC="${CC:-powerpc64le-linux-gnu-gcc}" - export CGO_ENABLED=1 - ;; - linux/s390x) - export CC="${CC:-s390x-linux-gnu-gcc}" - export CGO_ENABLED=1 - ;; - esac - fi + if [ "$(go env GOOS)/$(go env GOARCH)" = "linux/arm" ]; then + # specify name of the target ARM architecture + case "$(go env GOARM)" in + 5) + export CGO_CFLAGS="-march=armv5t" + export CGO_CXXFLAGS="-march=armv5t" + ;; + 6) + export CGO_CFLAGS="-march=armv6" + export CGO_CXXFLAGS="-march=armv6" + ;; + 7) + export CGO_CFLAGS="-march=armv7-a" + export CGO_CXXFLAGS="-march=armv7-a" + ;; + esac fi # -buildmode=pie is not supported on Windows arm64 and Linux mips*, ppc64be @@ -90,7 +53,7 @@ source "${MAKEDIR}/.go-autogen" if [ -z "$PLATFORM_NAME" ]; then PLATFORM_NAME="$(go env GOOS)/$(go env GOARCH)" if [ -n "$(go env GOARM)" ]; then - PLATFORM_NAME+="/$(go env GOARM)" + PLATFORM_NAME+="/v$(go env GOARM)" elif [ -n "$(go env GOAMD64)" ] && [ "$(go env GOAMD64)" != "v1" ]; then PLATFORM_NAME+="/$(go env GOAMD64)" fi