On Tue, Nov 03, 2015 at 08:45:00AM +0100, Justin (jlec) wrote: > On 02/11/15 23:38, William Hubbs wrote: > > On Mon, Nov 02, 2015 at 09:12:30PM +0100, Justin Lecher (jlec) wrote: > >> -----BEGIN PGP SIGNED MESSAGE----- > >> Hash: SHA512 > >> > >> How about a virtual here? > > > > I don't see that working out to well because the compilers are > > completely different from each other. As I said, the reference > > implementation of the go language is dev-lang/go and the other one, that > > is part of gcc, as I understand it, is not quite as fully developed as > > dev-lang/go. > > > > Thanks, > > > > William > > > > Hi William, > > but instead of adding > > DEPEND="||ยท( > >=dev-lang/go-1.4 > >=sys-devel/gcc-5.1.0:=[go] The || dependencies you list should not be needed in most cases.
As has been pointed out in the thread so far, gcc-5 only supports go-1.4. dev-lang/go is at 1.5, so really the only thing that should be built with gccgo is dev-lang/go. Also, the golang eclasses are designed to work with dev-lang/go, so they do not need a dependency on gccgo. Starting with go-1.5, most of the tools themselves are written in Go, so you need an earlier version of Go installed to build it (this is where I think I can use gccgo), but I'm not convinced yet about making it a virtual. > Another problem which you have with these split deps is the following. Imagine > the user has gcc-5[go] installed, which fullfills the dependency requirement. > But she selected gcc-4.9 as the active compiler, which doesn't have go > support. > The build will fail. For fortran we test in pkg_setup if we have a working > fortran compiler present. You would need to do the same for go compiler. The issue I see is a user could have gcc-5[go] and go-1.6 installed in the future. In that case, you would have packages that build with go-1.6 but not gcc-5[go], so gcc-5[go] would not fulfill the requirement. I see gcc-5[go] as a separate Go compiler, but it will always be behind dev-lang/go, so you will have things that build with dev-lang/go but not gccgo. Also, the commands to do the builds are completely different depending on which one you are using. I'm not sure of a way to deal with those issues in a virtual like you propose. William
signature.asc
Description: Digital signature