When building on Fedora 36, the build failed. I suspect this is because the rpm tools also set LDFLAGS, but with options that cannot be used; GO_LINKMODE=dynamic + ./scripts/build/binary /go/src/github.com/docker/cli ~/rpmbuild/BUILD/src Building dynamic docker-linux-arm64 + go build -o build/docker-linux-arm64 -tags ' pkcs11' -ldflags '-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -Wl,-dT,/root/rpmbuild/BUILD/src/.package_note-docker-ce-cli-0.0.0.20220330082637.68cad50-0.fc36.aarch64.ld -w -X "github.com/docker/cli/cli/version.GitCommit=68cad50" -X "github.com/docker/cli/cli/version.BuildTime=2022-03-30T20:05:36Z" -X "github.com/docker/cli/cli/version.Version=0.0.0-20220330082637-68cad50" -X "github.com/docker/cli/cli/version.PlatformName=Docker Engine - Community"' -buildmode=pie github.com/docker/cli/cmd/docker # github.com/docker/cli/cmd/docker flag provided but not defined: -Wl,-z,relro usage: link [options] main.o This patch changes the variable we use to `GO_LDFLAGS`, taking a similar approach as containerd, and various other projects using this name: https://grep.app/search?q=GO_LDFLAGS Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
30 lines
729 B
Bash
Executable File
30 lines
729 B
Bash
Executable File
#!/usr/bin/env sh
|
|
#
|
|
# Build a static binary for the host OS/ARCH
|
|
#
|
|
|
|
set -eu
|
|
|
|
. ./scripts/build/.variables
|
|
|
|
if [ "$CGO_ENABLED" = "1" ] && [ "$(go env GOOS)" != "windows" ]; then
|
|
GO_BUILDTAGS="$GO_BUILDTAGS pkcs11"
|
|
fi
|
|
|
|
echo "Building $GO_LINKMODE $(basename "${TARGET}")"
|
|
|
|
export GO111MODULE=auto
|
|
|
|
if [ "$(go env GOOS)" = "windows" ]; then
|
|
if [ ! -x "$(command -v goversioninfo)" ]; then
|
|
>&2 echo "goversioninfo not found, skipping manifesting binary"
|
|
else
|
|
./scripts/build/mkversioninfo
|
|
(set -x ; go generate -v "${SOURCE}")
|
|
fi
|
|
fi
|
|
|
|
(set -x ; go build -o "${TARGET}" -tags "${GO_BUILDTAGS}" -ldflags "${GO_LDFLAGS}" ${GO_BUILDMODE} "${SOURCE}")
|
|
|
|
ln -sf "$(basename "${TARGET}")" "$(dirname "${TARGET}")/docker"
|