[Buildroot] Analysis of build results for 2016-05-16
Thomas Petazzoni
thomas.petazzoni at free-electrons.com
Tue May 17 19:34:07 UTC 2016
Hello,
On Tue, 17 May 2016 11:56:07 -0700, Geoff Levand wrote:
> On Tue, 2016-05-17 at 15:36 +0200, Thomas Petazzoni wrote:
> > x86_64 | flannel-v0.5.5 | NOK | http://autobuild.buildroot.net/results/6664189a6f3a815978e8d0a1d7ef408ca47e2874/
> >
> > Geoff, can you look into this one?
>
> I believe I have the fix for this one in my patch 'package/go: Build
> special host binaries'. This is a reworked version of what I posted
> last time.
OK.
> > > arm | host-go-1.6.2 | NOK | http://autobuild.buildroot.net/results/42a8d07101d8d954511d1c884ecb66e8d861899e/
> >
> > error: #warning requested reentrant code
> >
> > Geoff, in fact it seems like host-go itself needs thread support in the
> > target toolchain to build properly, so our plan to have only the Go
> > packages depend on BR2_TOOLCHAIN_HAS_THREADS does not work.
>
> Yes, the solution I came up with is that the go target package must
By "go target package", you mean a target package that is written in
Go, and not specifically the package/go/ package (which doesn't have a
target variant), right?
> specify BR2_TOOLCHAIN_HAS_THREADS if it uses cgo support. If
> BR2_TOOLCHAIN_HAS_THREADS is set, then host-go sets CGO_ENABLED=1 and
> builds a compiler with cgo support. If BR2_TOOLCHAIN_HAS_THREADS is
> not set, then host-go does not build in cgo support. The two cases:
>
> A go package which does not use cgo sets BR2_TOOLCHAIN_HAS_THREADS=n,
A package cannot *set* BR2_TOOLCHAIN_HAS_THREADS.
BR2_TOOLCHAIN_HAS_THREADS is a property of the toolchain.
> the host-go is not build with cgo support. Both the target package
> and host-go should build OK since no thread support is needed.
>
> A package that uses cgo sets BR2_TOOLCHAIN_HAS_THREADS=y, host-go
> is build with cgo support. Both build OK since the toolchain has
> thread support.
What needs to happen instead is the following (and is quite similar to
what you said, except for the interaction with
BR2_TOOLCHAIN_HAS_THREADS=y) :
*) The host-go package will build cgo support when
BR2_TOOLCHAIN_HAS_THREADS=y and otherwise not build cgo support.
*) Any target package that is written in Go and that needs cgo support
should have a "depends on BR2_TOOLCHAIN_HAS_THREADS" in its
dependencies.
This needs to be explained by a comment in package/go/go.mk, as it is
not trivial.
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
More information about the buildroot
mailing list