Created attachment 555522 [details] emerge --info I ran into issues when cross-compiling dev-lang/go from amd64 to armv6j. At first, the ebuild was downloading the bootstrap package for the target arch, which resulted in a bad bootstrap executable, and after fixing that it was trying to execute a the bootstrap executable from the old, misnamed directory (for the target rather than host arch). The first problem I was able to solve by hardcoding the BOOTSTRAP_URI variable to amd64. Unfortunately, I do not know how to solve this in the correct way, since the arch USE flags refer to the target rather than host arch and I do not know a way to reliably extract the portage arch code from CBUILD. Hence this bug instead of a pull request. The second problem I solved by changing the GOROOT_BOOTSTRAP assignment to the following: export GOROOT_BOOTSTRAP="${WORKDIR}"/go-$(go_os ${CBUILD})-$(go_arch ${CBUILD})-bootstrap Build logs can be uploaded if requested, however I have identified the root cause and a solution already. The attached emerge --info represents my cross-compilation environment (armv6j-unknown-linux-gnueabihf-emerge). Further infos can be added for host env and the real target box if necessary.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7f034e782d85423a92e9b3815284ca7ff506fb83 commit 7f034e782d85423a92e9b3815284ca7ff506fb83 Author: William Hubbs <williamh@gentoo.org> AuthorDate: 2019-03-17 02:01:21 +0000 Commit: William Hubbs <williamh@gentoo.org> CommitDate: 2019-03-17 02:02:36 +0000 dev-lang/go: 1.12.1 bump and cross compile fix dev-lang/go, before this commit, failed to build in an environment generated by sys-devel/crossdev for two reasons: 1. The bootstrap download package matched the target rather than host arch. We can't determine the host arch based on use flags, so we need to download all bootstrap packages. 2. The GOROOT_BOOTSTRAP environment variable matched the host rather than target arch. To fix this, we need to pass CBUILD to the calls to go_os and go_arch. This fixes both issues for a successful cross-compile. Closes: https://bugs.gentoo.org/671394 Package-Manager: Portage-2.3.62, Repoman-2.3.12 Signed-off-by: William Hubbs <williamh@gentoo.org> dev-lang/go/Manifest | 1 + dev-lang/go/go-1.12.1.ebuild | 231 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 232 insertions(+)
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=167c53006749b6bbf952c80af0e0b5a7d31eca32 commit 167c53006749b6bbf952c80af0e0b5a7d31eca32 Author: William Hubbs <williamh@gentoo.org> AuthorDate: 2019-04-29 16:24:04 +0000 Commit: William Hubbs <williamh@gentoo.org> CommitDate: 2019-04-29 16:30:30 +0000 dev-lang/go: add system-bootstrap use flag If a previous version of dev-lang/go is installed, you can use this use flag to skip downloading the bootstrap archives and bootstrap the new version using the already-installed version. For the initial installation of dev-lang/go, we have to download all of the bootstrap archives to make the go ebuild work under crossdev. For this reason, system-bootstrap cannot be turned on by default. Bug: https://bugs.gentoo.org/671394 closes: https://bugs.gentoo.org/684652 Copyright: Sony Interactive Entertainment Inc. Package-Manager: Portage-2.3.62, Repoman-2.3.12 Signed-off-by: William Hubbs <williamh@gentoo.org> dev-lang/go/go-1.11.9.ebuild | 19 ++++++++++++------- dev-lang/go/go-1.12.4.ebuild | 19 ++++++++++++------- dev-lang/go/metadata.xml | 7 ++++++- 3 files changed, 30 insertions(+), 15 deletions(-)