meta-virtualization/recipes-containers/docker/files/0001-dynbinary-use-go-cross-compiler.patch
Bruce Ashfield 103695c7b9 docker-moby: update to 24.0.6
Bumping moby to version v24.0.6, which comprises the following commits:

    c35376c455 volume/local: Don't unmount, restore mounted status
    5d4cc0b5b5 integration/liveRestore: Check volume content
    1d983e2e8a update golangci-lint to v1.54.2
    d2e9a19358 CONTRIBUTING.md: update links to golang docs and blog
    73f6053bb3 api: swagger: update link to Go documentation
    de13951b9d docs/api: update links to Go documentation
    377af4c9b4 Dockerfile: Windows: update Golang download domains to cut down redirects
    088cec8f0f hack: update link to GOPATH documentation
    ed2f5d1d85 c8d/builder: Don't drop fields from created image
    1d10e8633d daemon: Handle NotFound when deleting container lease
    63422515ba c8d/run: Allow running container without image
    49671250f6 c8d/commit: Don't produce an empty layer
    b83f5a89f4 Don't return an error if the lease is not found
    4ac2355d62 hack: use long SHA for DOCKER_GITCOMMIT
    ac2a80fcc3 ci(bin-image): clean up metadata
    5eef5a7f59 ci(bin-image): clean up env var handling
    aaf84dd4cf remove Dockerfile.e2e
    a99e62fa3d distribution: show image schema deprecation on all registries
    e239799583 distribution: update warning for deprecated image formats
    bb22b8a418 ci(bin-image): check repo origin
    fb6784bdf0 gha: set 10-minute timeout on "report" actions
    74bf46aea6 c8d/diff: Reuse mount, mount parent as read-only
    b76a0c7d00 c8d/export: Use ref counted mounter
    54953f2f5a integration: Add test for not breaking overlayfs
    3897724f4a volume/local: Fix debug log typo
    0c131f58ba ci(bin-image): populate DOCKER_GITCOMMIT, take 2
    448ae33f87 ci(bin-image): populate DOCKER_GITCOMMIT
    3ce0dc7e35 bakefile: Remove default value of DOCKER_GITCOMMIT
    600aa7b7a5 c8d/inspect: Ignore manifest with missing config
    5d2c383d72 remove s390x and ppc64ls pipelines
    15bd07b4fd update runc binary to v1.1.9
    cc39fb9f6b Integration test for capabilities
    bf2b8a05a0 Do not drop effective&permitted set
    e67f9dadc6 hack/make/.binary: use with-go-mod.sh
    314b84b023 hack: enable Go modules when building dockerd and docker-proxy
    72947f5022 hack: use Git-free ROOTDIR convention
    7e7bc0f1bc vendor: github.com/containerd/containerd v1.6.22
    5f0df8c534 vendor github.com/containerd/ttrpc v1.1.2
    25b709df48 windows: fix --register-service when executed from within binary directory
    b7d1e98ae7 libnet/d/bridge: Allow IPv6 ICC from any IP address
    749e687e1b integration/windows: Unskip some kill tests
    128838227e hack/test: Don't fail-fast before integration-cli
    b7c5385b81 update to go1.20.7
    4cd50eb1ed TestDaemonProxy: use new scanners to check logs
    a49bca97df Fix daemon proxy test for "reload sanitized"
    d6536d44e9 TestDaemonProxy: check proxy settings early
    a6f8e97342 Improve test daemon logging

Bumping docker-cli to version v24.0.6, which comprises the following commits:

    fab55e13c cli/command/system: fix "docker events" not supporting --format=json
    d3485b9e9 cli/registry: client.iterateEndpoints: remove check for APIVersion1
    613380299 cli/registry: fix client.pullManifestList not de-referencing manifest
    b83959e00 force TestNewHistoryCommandSuccess to use UTC timezone
    28a08a22b un-skip history test and fix golden mismatches
    8e0393932 update cli-docs-tool to v0.6.0
    efd052eb8 docs/reference: run.md: remove stray whitespace
    d9770a962 adding -c option for docker run/build in manpages
    6efe73abe cli/command/manifest: update link to Go documentation
    d97753101 man: update links to Go documentation
    e9f843bf0 docs/reference: update links to Go documentation
    cfbaee468 CONTRIBUTING.md: update links
    daeee4697 update flag-description for --cgroup-parent
    08ad72160 Update docs/command output for volume pruning
    3c4fe7b3e docs: add missing docs for "DOCKER_TLS" env-var
    dc45bcc99 Stop slowing bash init by caching plugins path slowly
    710dd00e9 replace dockerfile/dockerignore with patternmatcher/ignorefile
    bf632329d vendor: github.com/moby/patternmatcher v0.6.0
    3c6c0bce1 cli/registry/client: set actions when authn with token
    65655cc26 cmd/docker: areFlagsSupported: don't Ping if not needed
    11606268f login: Add message about using PATs
    a8987063b docs: document special host-gateway value for add-host
    c0e376854 update to go1.20.7

We refresh one patch to adapt to the new build script structure.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2023-09-15 17:30:40 +00:00

112 lines
4.0 KiB
Diff

From 3ce6089417b8c6c4e8279e6ef60213436ebf8793 Mon Sep 17 00:00:00 2001
From: Bruce Ashfield <bruce.ashfield@gmail.com>
Date: Tue, 30 Jun 2020 22:23:33 -0400
Subject: [PATCH] dynbinary: use go cross compiler
MJ: use ${GO} also in "go env" calls, because native go:
$ go env GOARM
5
while go cross compiler for my target:
$ ${GO} env GOARM
7
this can lead to:
error: switch '-mcpu=cortex-a9' conflicts with switch '-march=armv5t' [-Werror]
but even after fixing it to use "better" -march it still doesn't match with -mcpu
set in our GOBUILDFLAGS, causing e.g.:
error: switch '-mcpu=cortex-a9' conflicts with switch '-march=armv7-a+simd' [-Werror]
so drop CGO_CFLAGS/CGO_CXXFLAGS as in OE builds we don't need them
as long as ${GO} and GOBUILDFLAGS are respected
it was added in:
https://github.com/moby/moby/commit/12558c8d6ea9f388b54eb94ba6b9eb4a9fc5c9f2
and it wasn't an issue before:
https://github.com/moby/moby/commit/8c12a6648b368cc2acaea0339d6c57c920ed265c
because it was using 'case "${GOARM}" in' and ${GOARM} was empty in our builds
Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
hack/make/.binary | 37 ++++++++-----------------------------
1 file changed, 8 insertions(+), 29 deletions(-)
Index: import/hack/make/.binary
===================================================================
--- import.orig/hack/make/.binary
+++ import/hack/make/.binary
@@ -3,7 +3,7 @@
# a helper to provide ".exe" when it's appropriate
binary_extension() {
- if [ "$(go env GOOS)" = 'windows' ]; then
+ if [ "$(${GO} env GOOS)" = 'windows' ]; then
echo -n '.exe'
fi
}
@@ -16,33 +16,12 @@
(
export GOGC=${DOCKER_BUILD_GOGC:-1000}
- if [ "$(go env GOOS)/$(go env GOARCH)" != "$(go env GOHOSTOS)/$(go env GOHOSTARCH)" ]; then
- # must be cross-compiling!
- 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
- fi
-
# -buildmode=pie is not supported on Windows arm64 and Linux mips*, ppc64be
# https://github.com/golang/go/blob/go1.19.4/src/cmd/internal/sys/supported.go#L125-L132
if ! [ "$DOCKER_STATIC" = "1" ]; then
# -buildmode=pie not supported when -race is enabled
if [[ " $BUILDFLAGS " != *" -race "* ]]; then
- case "$(go env GOOS)/$(go env GOARCH)" in
+ case "$(${GO} env GOOS)/$(${GO} env GOARCH)" in
windows/arm64 | linux/mips* | linux/ppc64) ;;
*)
BUILDFLAGS+=("-buildmode=pie")
@@ -66,11 +45,11 @@
# only necessary for non-sandboxed invocation where TARGETPLATFORM is empty
PLATFORM_NAME=$TARGETPLATFORM
if [ -z "$PLATFORM_NAME" ]; then
- PLATFORM_NAME="$(go env GOOS)/$(go env GOARCH)"
- if [ -n "$(go env GOARM)" ]; then
- PLATFORM_NAME+="/v$(go env GOARM)"
- elif [ -n "$(go env GOAMD64)" ] && [ "$(go env GOAMD64)" != "v1" ]; then
- PLATFORM_NAME+="/$(go env GOAMD64)"
+ PLATFORM_NAME="$(${GO} env GOOS)/$(${GO} env GOARCH)"
+ if [ -n "$(${GO} env GOARM)" ]; then
+ PLATFORM_NAME+="/v$(${GO} env GOARM)"
+ elif [ -n "$(${GO} env GOAMD64)" ] && [ "$(${GO} env GOAMD64)" != "v1" ]; then
+ PLATFORM_NAME+="/$(${GO} env GOAMD64)"
fi
fi
@@ -78,7 +57,7 @@
if [ -n "$DOCKER_DEBUG" ]; then
set -x
fi
- ./hack/with-go-mod.sh go build -mod=vendor -modfile=vendor.mod -o "$DEST/$BINARY_FULLNAME" "${BUILDFLAGS[@]}" -ldflags "$LDFLAGS $LDFLAGS_STATIC $DOCKER_LDFLAGS" "$GO_PACKAGE"
+ ./hack/with-go-mod.sh ${GO} build -trimpath -mod=vendor -modfile=vendor.mod -o "$DEST/$BINARY_FULLNAME" "${BUILDFLAGS[@]}" -ldflags "$LDFLAGS $LDFLAGS_STATIC $DOCKER_LDFLAGS" "$GO_PACKAGE"
)
echo "Created binary: $DEST/$BINARY_FULLNAME"