From 0c008cc4f8c059752c7b31cfc5ed7d05baee97be Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 18 Jan 2023 20:12:23 +0100 Subject: [PATCH 1/4] hack: remove -installsuffix build flag Has been introduced in 232d59baeb13778abc242a602ca434d83e1eb6e8 to work around a bug with "go build" but not required anymore since go 1.5: https://github.com/golang/go/commit/4dab6d01f12591f256d36b32cd6480ef679458f1 Signed-off-by: CrazyMax --- hack/make.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hack/make.sh b/hack/make.sh index a420d3a9ad..39a3ed4951 100755 --- a/hack/make.sh +++ b/hack/make.sh @@ -112,8 +112,7 @@ LDFLAGS_STATIC='' EXTLDFLAGS_STATIC='-static' # ORIG_BUILDFLAGS is necessary for the cross target which cannot always build # with options like -race. -ORIG_BUILDFLAGS=(-tags "netgo osusergo static_build $DOCKER_BUILDTAGS" -installsuffix netgo) -# see https://github.com/golang/go/issues/9369#issuecomment-69864440 for why -installsuffix is necessary here +ORIG_BUILDFLAGS=(-tags "netgo osusergo static_build $DOCKER_BUILDTAGS") BUILDFLAGS=(${BUILDFLAGS} "${ORIG_BUILDFLAGS[@]}") From b80f16157e7ce98eeeb874c575bb34a1caa88e8d Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 18 Jan 2023 20:14:52 +0100 Subject: [PATCH 2/4] hack: remove ORIG_BUILDFLAGS var This var was used for the cross target but it has been removed in 8086f4012330d1c1058e07fc4e5e4522dd432c20 so not necessary anymore Signed-off-by: CrazyMax --- hack/make.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/hack/make.sh b/hack/make.sh index 39a3ed4951..3a10e08aed 100755 --- a/hack/make.sh +++ b/hack/make.sh @@ -110,11 +110,7 @@ fi LDFLAGS_STATIC='' EXTLDFLAGS_STATIC='-static' -# ORIG_BUILDFLAGS is necessary for the cross target which cannot always build -# with options like -race. -ORIG_BUILDFLAGS=(-tags "netgo osusergo static_build $DOCKER_BUILDTAGS") - -BUILDFLAGS=(${BUILDFLAGS} "${ORIG_BUILDFLAGS[@]}") +BUILDFLAGS=(${BUILDFLAGS} -tags "netgo osusergo static_build $DOCKER_BUILDTAGS") LDFLAGS_STATIC_DOCKER=" $LDFLAGS_STATIC From 877baae03e1810b6a6afaa8b767b8df25f5c5cae Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 18 Jan 2023 20:24:31 +0100 Subject: [PATCH 3/4] hack: remove unnecessary vars in make.sh script Signed-off-by: CrazyMax --- hack/make.sh | 8 +------- hack/make/.binary | 2 +- hack/make/dynbinary-daemon | 2 +- hack/make/dynbinary-proxy | 2 +- 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/hack/make.sh b/hack/make.sh index 3a10e08aed..189ee5aa8b 100755 --- a/hack/make.sh +++ b/hack/make.sh @@ -108,14 +108,8 @@ if [ -z "$DOCKER_DEBUG" ]; then LDFLAGS='-w' fi -LDFLAGS_STATIC='' -EXTLDFLAGS_STATIC='-static' BUILDFLAGS=(${BUILDFLAGS} -tags "netgo osusergo static_build $DOCKER_BUILDTAGS") - -LDFLAGS_STATIC_DOCKER=" - $LDFLAGS_STATIC - -extldflags \"$EXTLDFLAGS_STATIC\" -" +LDFLAGS_STATIC="-extldflags -static" if [ "$(uname -s)" = 'FreeBSD' ]; then # Tell cgo the compiler is Clang, not GCC diff --git a/hack/make/.binary b/hack/make/.binary index 64fbadcd79..0e7022ce41 100644 --- a/hack/make/.binary +++ b/hack/make/.binary @@ -65,7 +65,7 @@ source "${MAKEDIR}/.go-autogen" "${BUILDFLAGS[@]}" \ -ldflags " $LDFLAGS - $LDFLAGS_STATIC_DOCKER + $LDFLAGS_STATIC $DOCKER_LDFLAGS " \ ${GO_PACKAGE} diff --git a/hack/make/dynbinary-daemon b/hack/make/dynbinary-daemon index efb69df754..22dfe288ef 100644 --- a/hack/make/dynbinary-daemon +++ b/hack/make/dynbinary-daemon @@ -4,7 +4,7 @@ set -e [ -z "$KEEPDEST" ] && rm -rf "$DEST" ( - export LDFLAGS_STATIC_DOCKER='' + export LDFLAGS_STATIC='' export BUILDFLAGS=("${BUILDFLAGS[@]/netgo /}") # disable netgo, since we don't need it for a dynamic binary export BUILDFLAGS=("${BUILDFLAGS[@]/osusergo /}") # ditto for osusergo export BUILDFLAGS=("${BUILDFLAGS[@]/static_build /}") # we're not building a "static" binary here diff --git a/hack/make/dynbinary-proxy b/hack/make/dynbinary-proxy index 048bd9d2b2..d732df13a4 100644 --- a/hack/make/dynbinary-proxy +++ b/hack/make/dynbinary-proxy @@ -3,7 +3,7 @@ set -e ( - export LDFLAGS_STATIC_DOCKER='' + export LDFLAGS_STATIC='' export BUILDFLAGS=("${BUILDFLAGS[@]/netgo /}") # disable netgo, since we don't need it for a dynamic binary export BUILDFLAGS=("${BUILDFLAGS[@]/osusergo /}") # ditto for osusergo export BUILDFLAGS=("${BUILDFLAGS[@]/static_build /}") # we're not building a "static" binary here From 170a1c4709bfaf449393e5fc985d18c2e2af27bd Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Wed, 18 Jan 2023 22:03:34 +0100 Subject: [PATCH 4/4] hack: display build cmd when DOCKER_DEBUG set Signed-off-by: CrazyMax --- hack/make/.binary | 13 ++++--------- hack/make/.go-autogen | 13 ++++++------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/hack/make/.binary b/hack/make/.binary index 0e7022ce41..fc489d72f9 100644 --- a/hack/make/.binary +++ b/hack/make/.binary @@ -60,15 +60,10 @@ source "${MAKEDIR}/.go-autogen" fi echo "Building $([ "$DOCKER_STATIC" = "1" ] && echo "static" || echo "dynamic") $DEST/$BINARY_FULLNAME ($PLATFORM_NAME)..." - go build \ - -o "$DEST/$BINARY_FULLNAME" \ - "${BUILDFLAGS[@]}" \ - -ldflags " - $LDFLAGS - $LDFLAGS_STATIC - $DOCKER_LDFLAGS - " \ - ${GO_PACKAGE} + if [ -n "$DOCKER_DEBUG" ]; then + set -x + fi + go build -o "$DEST/$BINARY_FULLNAME" "${BUILDFLAGS[@]}" -ldflags "$LDFLAGS $LDFLAGS_STATIC $DOCKER_LDFLAGS" ${GO_PACKAGE} ) echo "Created binary: $DEST/$BINARY_FULLNAME" diff --git a/hack/make/.go-autogen b/hack/make/.go-autogen index de1708dce7..ae676e87c0 100644 --- a/hack/make/.go-autogen +++ b/hack/make/.go-autogen @@ -1,13 +1,12 @@ #!/usr/bin/env bash LDFLAGS="${LDFLAGS} \ - -X \"github.com/docker/docker/dockerversion.Version=${VERSION}\" \ - -X \"github.com/docker/docker/dockerversion.GitCommit=${GITCOMMIT}\" \ - -X \"github.com/docker/docker/dockerversion.BuildTime=${BUILDTIME}\" \ - -X \"github.com/docker/docker/dockerversion.PlatformName=${PLATFORM}\" \ - -X \"github.com/docker/docker/dockerversion.ProductName=${PRODUCT}\" \ - -X \"github.com/docker/docker/dockerversion.DefaultProductLicense=${DEFAULT_PRODUCT_LICENSE}\" \ -" +-X \"github.com/docker/docker/dockerversion.Version=${VERSION}\" \ +-X \"github.com/docker/docker/dockerversion.GitCommit=${GITCOMMIT}\" \ +-X \"github.com/docker/docker/dockerversion.BuildTime=${BUILDTIME}\" \ +-X \"github.com/docker/docker/dockerversion.PlatformName=${PLATFORM}\" \ +-X \"github.com/docker/docker/dockerversion.ProductName=${PRODUCT}\" \ +-X \"github.com/docker/docker/dockerversion.DefaultProductLicense=${DEFAULT_PRODUCT_LICENSE}\" " # Compile the Windows resources into the sources if [ "$(go env GOOS)" = "windows" ]; then