Summary: | sys-devel/gcc-5[go]: go & gofmt programs are installed which clobber dev-lang/go | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Andrius Štikonas <andrius> |
Component: | [OLD] Core system | Assignee: | Gentoo Toolchain Maintainers <toolchain> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | williamh, zmedico |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | ARM | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 536984 | ||
Attachments: | toolchain.eclass: install go and gofmt as go-5 and gofmt-5 |
Description
Andrius Štikonas
2015-12-09 02:08:37 UTC
Actually, it gets stuck every other time, not every time. I've also noticed that if dev-lang/go is reemerged than it's executable is used. So the bug seems to appear because gcc-config somehow creates a profile where go binary from gcc is used together with go environment from dev-lang/go. Once dev-lang/go is reemerged changes by gcc-config are overwritten and everything works again. I don't know why only ARM version stucks with 100% CPU usage but it looks like other arches are affected by this collision between gcc-config and dev-lang/go too. we'll just delete the go/gofmt programs from gcc for now gcc-5+ will now delete `go` and `gofmt` from BINPATH when installing gcc: http://gitweb.gentoo.org/repo/gentoo.git/commit/?id=837dc289f66ec6830a5175f28311b73f20250e07 (In reply to SpanKY from comment #2) > we'll just delete the go/gofmt programs from gcc for now Maybe add a -5 suffix to them. That will be consistent with the go-5 binary mentioned in the golang bootstrap instructions here: https://golang.org/doc/install/source This will solve the chicken/egg problem for bootstrap of dev-lang/go. Created attachment 428488 [details, diff] toolchain.eclass: install go and gofmt as go-5 and gofmt-5 With this patch, I've successfully bootstrapped go-1.6-r2 with sys-devel/gcc-5.3.0[go] (see bug 576290). @toolchain: Are there any objections to installing them with a -5 suffix? Note that go-5 is the name used in the golang bootstrap instructions. diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass index 7dade5c..0a5a0c5 100644 --- a/eclass/toolchain.eclass +++ b/eclass/toolchain.eclass @@ -1684,10 +1684,12 @@ toolchain_src_install() { ln -sf ${CTARGET}-${x} ${CTARGET}-${x}-${GCC_CONFIG_VER} fi done - # Clear out the main go binaries as we don't want to clobber dev-lang/go + # Rename the main go binaries as we don't want to clobber dev-lang/go # when gcc-config runs. #567806 if tc_version_is_at_least 5 && is_go ; then - rm -f go gofmt + for x in go gofmt; do + mv ${x} ${x}-5 || die + done fi # Now do the fun stripping stuff Maybe it makes more sense to name it go-${PV%%.*} so that it will only be named go-5 if the major version is 5 (not sure if gcc-4.x has the go/gofmt binaries). (In reply to Zac Medico from comment #7) > Maybe it makes more sense to name it go-${PV%%.*} so that it will only be > named go-5 if the major version is 5 (not sure if gcc-4.x has the go/gofmt > binaries). Committed, using ${GCCMAJOR} instead of ${PV%%.*}: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3f171e23da269c77dfa9cb3097737e33db853c8d |