package/go: add a HOST_GO_HOST_ENV variable
authorThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sat, 29 Aug 2020 08:58:42 +0000 (10:58 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sat, 29 Aug 2020 12:35:48 +0000 (14:35 +0200)
package/go/go.mk provides a HOST_GO_TARGET_ENV which provides a useful
set of environment variables needed to build target Go packages.

For host packages, we simply have package/pkg-golang.mk defining
GO_HOST_ENV to specify CFLAGS/LDFLAGS, but that's it: we don't pass an
explicit path to the compiler, we don't pass GO111MODULE, GOCACHE,
GOROOT, etc.

This commit introduces a HOST_GO_HOST_ENV variable that provides the
appropriate set of environment variables to use when building host
golang packages.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/go/go.mk
package/pkg-golang.mk

index 72604a250b91d9dddbb48b4b7976403ba8c3a8b5..9e9679ccd2b4b60edf705797efab45df137d11f4 100644 (file)
@@ -77,6 +77,18 @@ else # !BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
 HOST_GO_CGO_ENABLED = 1
 endif # BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
 
+# For the convenience of host golang packages
+HOST_GO_HOST_ENV = \
+       GO111MODULE=off \
+       GOARCH="" \
+       GOCACHE="$(HOST_GO_HOST_CACHE)" \
+       GOROOT="$(HOST_GO_ROOT)" \
+       CC="$(HOST_CCNOCCACHE)" \
+       CXX="$(HOST_CXXNOCCACHE)" \
+       CGO_CFLAGS="$(HOST_CFLAGS)" \
+       CGO_CXXFLAGS="$(HOST_CXXFLAGS)" \
+       CGO_LDFLAGS="$(HOST_LDFLAGS)"
+
 # The go build system is not compatible with ccache, so use
 # HOSTCC_NOCCACHE.  See https://github.com/golang/go/issues/11685.
 HOST_GO_MAKE_ENV = \
index 2494ce028cf5cecac1adf05c84ad7cee3bbec6e9..79c27b855f4260657d3587a9d622f773d93679b4 100644 (file)
@@ -35,8 +35,7 @@ GO_TARGET_ENV = \
        $(GO_COMMON_ENV)
 
 GO_HOST_ENV = \
-       CGO_CFLAGS="$(HOST_CFLAGS)" \
-       CGO_LDFLAGS="$(HOST_LDFLAGS)" \
+       $(HOST_GO_HOST_ENV) \
        $(GO_COMMON_ENV)
 
 ################################################################################