From 0ca6d77e6e17ea378ff04b59f971dc1338e0ddc2 Mon Sep 17 00:00:00 2001 From: Nalin Dahyabhai Date: Tue, 24 Nov 2015 11:14:17 -0500 Subject: [PATCH 1/2] Revert "prevent journald from being built on ARM" This reverts commit 6f6f10a75f8b447637e8a89d685452871899e9c0, so that we can apply a different workaround. Signed-off-by: Nalin Dahyabhai (github: nalind) --- daemon/logger/journald/journald.go | 2 +- daemon/logger/journald/journald_unsupported.go | 2 +- daemon/logger/journald/read.go | 2 +- daemon/logger/journald/read_unsupported.go | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/daemon/logger/journald/journald.go b/daemon/logger/journald/journald.go index 97c379c35e..c729b56d19 100644 --- a/daemon/logger/journald/journald.go +++ b/daemon/logger/journald/journald.go @@ -1,4 +1,4 @@ -// +build linux,!arm +// +build linux // Package journald provides the log driver for forwarding server logs // to endpoints that receive the systemd format. diff --git a/daemon/logger/journald/journald_unsupported.go b/daemon/logger/journald/journald_unsupported.go index 8e9034aea5..d52ca92e4f 100644 --- a/daemon/logger/journald/journald_unsupported.go +++ b/daemon/logger/journald/journald_unsupported.go @@ -1,4 +1,4 @@ -// +build !linux linux,arm +// +build !linux package journald diff --git a/daemon/logger/journald/read.go b/daemon/logger/journald/read.go index 0477c042ae..80c1fbda7a 100644 --- a/daemon/logger/journald/read.go +++ b/daemon/logger/journald/read.go @@ -1,4 +1,4 @@ -// +build linux,cgo,!static_build,journald,!arm +// +build linux,cgo,!static_build,journald package journald diff --git a/daemon/logger/journald/read_unsupported.go b/daemon/logger/journald/read_unsupported.go index 35aa7c38ae..b43abdcaf7 100644 --- a/daemon/logger/journald/read_unsupported.go +++ b/daemon/logger/journald/read_unsupported.go @@ -1,4 +1,4 @@ -// +build !linux !cgo static_build !journald linux,arm +// +build !linux !cgo static_build !journald package journald From 800505729b280a19fb0c2779b1081b6c4e20d43c Mon Sep 17 00:00:00 2001 From: Nalin Dahyabhai Date: Tue, 24 Nov 2015 15:19:16 -0500 Subject: [PATCH 2/2] Use -z,muldefs on arm,x86 Assume that the linker can make sense of us passing in the -z,muldefs option to tell it to ignore symbol-multiply-defined errors triggered by https://github.com/golang/go/issues/9510. We should be able to stop doing this once we move to Go 1.6. Signed-off-by: Nalin Dahyabhai (github: nalind) --- hack/make/binary | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/hack/make/binary b/hack/make/binary index 5ddce8db49..584ab8509a 100644 --- a/hack/make/binary +++ b/hack/make/binary @@ -25,6 +25,22 @@ if [ "$(go env GOHOSTOS)/$(go env GOHOSTARCH)" == "windows/amd64" ] && [ "$(go e export LDFLAGS_STATIC_DOCKER="$LDFLAGS_STATIC_DOCKER -linkmode=internal" fi +if [ "$(go env GOOS)" == "linux" ] ; then + case "$(go env GOARCH)" in + arm*|386) + # linking for Linux on arm or x86 needs external linking to avoid + # https://github.com/golang/go/issues/9510 until we move to Go 1.6 + if [ "$IAMSTATIC" == "true" ] ; then + export EXTLDFLAGS_STATIC="$EXTLDFLAGS_STATIC -zmuldefs" + export LDFLAGS_STATIC_DOCKER="$LDFLAGS_STATIC -extldflags \"$EXTLDFLAGS_STATIC\"" + + else + export LDFLAGS="$LDFLAGS -extldflags -zmuldefs" + fi + ;; + esac +fi + if [ "$IAMSTATIC" == "true" ] && [ "$(go env GOHOSTOS)" == "linux" ] && [ "$DOCKER_EXPERIMENTAL" ]; then if [ "${GOOS}/${GOARCH}" == "darwin/amd64" ]; then export CGO_ENABLED=1