package/go: Add HOST_GO_CGO_ENABLED

The go compiler's cgo support uses threads.  If BR2_TOOLCHAIN_HAS_THREADS is
set, build in cgo support for any go programs that may need it.  Note that
any target package needing cgo support must include
'depends on BR2_TOOLCHAIN_HAS_THREADS' in its config file.

Fixes build errors like these:

  error: #warning requested reentrant code

  http://autobuild.buildroot.net/results/42a8d07101d8d954511d1c884ecb66e8d861899e

Signed-off-by: Geoff Levand <geoff@infradead.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016.08.x
Geoff Levand 2016-05-26 18:21:33 +00:00 committed by Thomas Petazzoni
parent 18ce12f0e1
commit e1f14a7897
1 changed files with 11 additions and 1 deletions

View File

@ -44,6 +44,16 @@ HOST_GO_TARGET_ENV = \
CXX=$(TARGET_CXX) \
GOTOOLDIR="$(HOST_GO_TOOLDIR)"
# The go compiler's cgo support uses threads. If BR2_TOOLCHAIN_HAS_THREADS is
# set, build in cgo support for any go programs that may need it. Note that
# any target package needing cgo support must include
# 'depends on BR2_TOOLCHAIN_HAS_THREADS' in its config file.
ifeq (BR2_TOOLCHAIN_HAS_THREADS,y)
HOST_GO_CGO_ENABLED = 1
else
HOST_GO_CGO_ENABLED = 0
endif
# The go build system doesn't have the notion of cross compiling, but just the
# notion of architecture. When the host and target architectures are different
# it expects to be given a target cross compiler in CC_FOR_TARGET. When the
@ -60,7 +70,7 @@ HOST_GO_MAKE_ENV = \
GOARCH=$(GO_GOARCH) \
$(if $(GO_GOARM),GOARM=$(GO_GOARM)) \
GOOS=linux \
CGO_ENABLED=1 \
CGO_ENABLED=$(HOST_GO_CGO_ENABLED) \
CC=$(HOSTCC_NOCCACHE)
HOST_GO_TARGET_CC = \