[Buildroot] [PATCH RFC] package/go: disable cgo support with static libs

Anisse Astier anisse at astier.eu
Sun Nov 20 18:19:55 UTC 2022


The go stdlib "plugin" package relies on dlfcn.h which isn't available
when we have BR2_STATIC_LIBS=y.

This should fix this build error from autobuilders:

/buildroot/i686-hostgo-fail/build/host-go-1.19.3/src/plugin/plugin_dlopen.go:11:10: fatal error: dlfcn.h: No such file or directory
   11 | #include <dlfcn.h>

The more longterm approach would be to ask upstream for a build tag to
disable the plugin package, akin to the osusergo or netgo tags:

https://github.com/golang/go/issues/23265

While it would be quite simple, I don't think a buildroot patch for this
without upstream support would be ideal.
---
 package/go/go.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/package/go/go.mk b/package/go/go.mk
index fd4caa2e5a..1c3cfa94d4 100644
--- a/package/go/go.mk
+++ b/package/go/go.mk
@@ -87,7 +87,7 @@ HOST_GO_TARGET_ENV = \
 # 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)
+ifeq ($(BR2_TOOLCHAIN_HAS_THREADS)$(BR2_STATIC_LIBS),yn)
 HOST_GO_CGO_ENABLED = 1
 else
 HOST_GO_CGO_ENABLED = 0
-- 
2.38.1




More information about the buildroot mailing list