Add osusergo build tar for static binaries
Go 1.11 includes a fix to os/user to be working in a static binary (fixing https://github.com/golang/go/issues/23265). The fix requires `osusergo` build tag to be set for static binaries, which is what this commit adds (also for containerd). [v2: sort build tags alphabetically] Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
This commit is contained in:
parent
7f91801cc8
commit
70cdb1c664
3 changed files with 3 additions and 2 deletions
|
@ -14,7 +14,7 @@ install_containerd() {
|
|||
|
||||
(
|
||||
|
||||
export BUILDTAGS='static_build netgo'
|
||||
export BUILDTAGS='netgo osusergo static_build'
|
||||
export EXTRA_FLAGS='-buildmode=pie'
|
||||
export EXTRA_LDFLAGS='-extldflags "-fno-PIC -static"'
|
||||
|
||||
|
|
|
@ -145,7 +145,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 "autogen netgo static_build $DOCKER_BUILDTAGS" -installsuffix netgo )
|
||||
ORIG_BUILDFLAGS=( -tags "autogen netgo osusergo static_build $DOCKER_BUILDTAGS" -installsuffix netgo )
|
||||
# see https://github.com/golang/go/issues/9369#issuecomment-69864440 for why -installsuffix is necessary here
|
||||
|
||||
# When $DOCKER_INCREMENTAL_BINARY is set in the environment, enable incremental
|
||||
|
|
|
@ -5,6 +5,7 @@ set -e
|
|||
export IAMSTATIC='false'
|
||||
export LDFLAGS_STATIC_DOCKER=''
|
||||
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
|
||||
source "${MAKEDIR}/.binary"
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue