Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Dec 2016 13:40:00 +0100 (CET)
From:      Gerald Pfeifer <gerald@pfeifer.com>
To:        Mark Millard <markmi@dsl-only.net>
Cc:        vbox@FreeBSD.org, Dimitry Andric <dim@FreeBSD.org>,  svn-ports-head@freebsd.org, freebsd-ports@freebsd.org
Subject:   Re: svn commit: r427110 - head/lang/gcc/files [does lang/gcc49 need such too?]
Message-ID:  <alpine.LSU.2.20.1612111217090.2333@anthias.pfeifer.com>
In-Reply-To: <C22DA1C6-830E-4AB8-BA85-F86235DD9528@dsl-only.net>
References:  <86C72DB2-B9ED-4512-A88C-BD1D9A23806F@dsl-only.net> <9D54F0CC-F38C-4CCE-BC33-25C1457BD44B@FreeBSD.org> <5C936BA8-6941-431A-B05F-31030816F85C@dsl-only.net> <alpine.LSU.2.20.1611260832560.2407@anthias.pfeifer.com> <487153E5-EF53-4960-9364-23992D7E0F76@dsl-only.net> <F621BEFE-FD1E-4164-86D0-4D0DA2EC02C3@dsl-only.net> <alpine.LSU.2.20.1612111035520.2333@anthias.pfeifer.com> <C22DA1C6-830E-4AB8-BA85-F86235DD9528@dsl-only.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 11 Dec 2016, Mark Millard wrote:
> I reported already that devel/kBuild/Makefile has in its
> Makefile:
> 
> USE_GCC=  any
> 
> and devel/kBuild is what causes the lang/gcc* build. (I
> reported more than that but it is the part relevant here.)

I had read that, and I di investigate.

USE_GCC=any is the equivalent of USE_GCC=4.2+, and lang/gcc6 and
lang/gcc6-devel should both meet this requirement.

(In general, do not use a gcc*-devel port unless you really want 
or need to, though; use the corresponding gcc* port instead.)

> Additional information (gained later) is that if I "pkg delete 
> gcc6-devel" then instead of devel/kBuild trying to install lang/gcc6 
> it tries to install lang/gcc (no number).

That works as designed.  USE_GCC=yes defaults to lang/gcc.  USE_GCC=any 
tries to use an existing GCC system compiler and lang/gcc by default if 
none is present.

> If I clean that out and put back lang/gcc6-devel and try again it 
> goes back to trying to install lang/gcc6 .

That is a little odd.  It means gcc6 from lang/gcc6-devel is found
and identified as a suitable version of GCC.

Then Mk/bsd.gcc.mk adds

  BUILD_DEPENDS+= gcc6:lang/gcc6

when it resolves USE_GCC=any.

That should not trigger and pull in lang/gcc6, though, as long
as gcc6 is found.

> It appears to be picking up that a gcc is installed when
> lang/gcc6-devel and that it is is version 6 based but then
> it looks for lang/gcc6 specifically but does not find it
> and so tries to install lang/gcc6. Its identification of the
> version is not enough to identify what specific gcc port
> to look for but it only looks for the one possible source
> to satisfy the dependency --and not finding that specific
> port it then tries to install that specific port that it
> did not find.

That's pretty close.  It finds the gcc6 binary and hence settles
on GCC 6 as the compiler to use, but when resolving dependencies
then it apparently does not find the gcc6 binary (or does, and
something triggers a full rebuild regardless with lang/gcc6 instead 
of the original lang/gcc6-devel).


Do you, by any chance, have some non-standard settings that would
trigger such an unconditional rebuild?


In general, for ports work lang/gcc is the one to use, and lang/gccX 
over lang/gccX-devel.

Somehow it feels your setup adds layers of shaky, untested and
non-standard elements on top of each other.


As far as lang/gcc* ports are concerned, I believe the best use
of our time will be moving lang/gcc from GCC 4.9 (where it finally
got to) to GCC 5.

Gerald



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.LSU.2.20.1612111217090.2333>