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

Attachment: signature.asc
Description: Digital signature

Reply via email to