From owner-svn-ports-head@freebsd.org Sun Dec 11 02:15:21 2016 Return-Path: Delivered-To: svn-ports-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 15C46C6F42C for ; Sun, 11 Dec 2016 02:15:21 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-211-163.reflexion.net [208.70.211.163]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C3C9F215 for ; Sun, 11 Dec 2016 02:15:20 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 29222 invoked from network); 11 Dec 2016 02:08:39 -0000 Received: from unknown (HELO mail-cs-02.app.dca.reflexion.local) (10.81.19.2) by 0 (rfx-qmail) with SMTP; 11 Dec 2016 02:08:39 -0000 Received: by mail-cs-02.app.dca.reflexion.local (Reflexion email security v8.20.0) with SMTP; Sat, 10 Dec 2016 21:08:47 -0500 (EST) Received: (qmail 14695 invoked from network); 11 Dec 2016 02:08:47 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with (AES256-SHA encrypted) SMTP; 11 Dec 2016 02:08:47 -0000 Received: from [192.168.1.118] (c-67-170-167-181.hsd1.or.comcast.net [67.170.167.181]) by iron2.pdx.net (Postfix) with ESMTPSA id C089EEC91E6; Sat, 10 Dec 2016 18:08:38 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 10.1 \(3251\)) Subject: Re: svn commit: r427110 - head/lang/gcc/files [does lang/gcc49 need such too?] From: Mark Millard In-Reply-To: <487153E5-EF53-4960-9364-23992D7E0F76@dsl-only.net> Date: Sat, 10 Dec 2016 18:08:38 -0800 Cc: Dimitry Andric , svn-ports-head@freebsd.org, FreeBSD Ports Content-Transfer-Encoding: quoted-printable Message-Id: References: <86C72DB2-B9ED-4512-A88C-BD1D9A23806F@dsl-only.net> <9D54F0CC-F38C-4CCE-BC33-25C1457BD44B@FreeBSD.org> <5C936BA8-6941-431A-B05F-31030816F85C@dsl-only.net> <487153E5-EF53-4960-9364-23992D7E0F76@dsl-only.net> To: Gerald Pfeifer X-Mailer: Apple Mail (2.3251) X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Dec 2016 02:15:21 -0000 [Top post of example lack of lang/gcc6-devel vs. lan/gcc6 substitutability. Context /usr/ports/ at -r428325 (other than a few specially controlled items.] After installing lang/gcc6-devel something else indirectly forced lang/gcc6 to try to build. The attempt failed with: Installing gcc6-6.2.0... pkg-static: gcc6-6.2.0 conflicts with gcc6-devel-6.2.1.s20161201 = (installs files into the same place). Problematic file: = /usr/local/bin/x86_64-portbld-freebsd12.0-c++6 *** Error code 70 Stop. make[1]: stopped in /usr/ports/lang/gcc6 *** Error code 1 The specific example turns out to be. . . emulators/virtualbox-ose-additions leads to: =3D=3D=3D>>> The following actions will be taken if you choose to = proceed: Upgrade virtualbox-ose-additions-5.1.8 to = virtualbox-ose-additions-5.1.10 Install devel/kBuild Install lang/gcc6 Install textproc/flex and lang/gcc6 tries to build during devel/kBuild and the 3 non-lang/gcc6 items above have: # grep -i gcc emulators/virtualbox-ose-additions/Makefile = devel/kBuild/Makefile textproc/flex/Makefile=20 emulators/virtualbox-ose-additions/Makefile:CONFIGURE_ARGS+=3D = --nofatal --with-gcc=3D"${CC}" --with-g++=3D"${CXX}" emulators/virtualbox-ose-additions/Makefile: @${ECHO} 'VBOX_GCC_std =3D= -std=3Dc++11' >> ${WRKSRC}/LocalConfig.kmk emulators/virtualbox-ose-additions/Makefile: @${ECHO} = 'VBOX_GCC_Wno-unused-parameter =3D -Wno-unused-parameter' >> \ devel/kBuild/Makefile:USE_GCC=3D any devel/kBuild/Makefile: ${REINPLACE_CMD} -e 's|gcc|${CC}|g' $$f = ; \ In a context with: # pkg info | grep -i gcc gcc6-devel-6.2.1.s20161201 GNU Compiler Collection 6 powerpc64-gcc-6.2.0 Cross GNU Compiler Collection for = powerpc64 powerpc64-xtoolchain-gcc-0.1 Pre seeded toolchain to cross build = FreeBSD base # more /etc/make.conf=20 WANT_QT_VERBOSE_CONFIGURE=3D1 # DEFAULT_VERSIONS+=3Dperl5=3D5.24 WRKDIRPREFIX=3D/usr/obj/portswork WITH_DEBUG=3D WITH_DEBUG_FILES=3D MALLOC_PRODUCTION=3D So apparently lang/gcc6-devel can not substitute for lang/gcc6 automatically. Now that devel/powerpc64-gcc is 6.2.0 based it and lang/gcc6 may also conflict (I do not know yet: build in progress). =3D=3D=3D Mark Millard markmi at dsl-only.net Older material: On 2016-Nov-26, at 4:16 PM, Mark Millard wrote: > On 2016-Nov-25, at 11:47 PM, Gerald Pfeifer = wrote: >=20 >> On Fri, 25 Nov 2016, Mark Millard wrote: >>> I wonder if that leaves lang/gcc and lang/gcc49 as conflicting. >>=20 >> Yes, these two ports conflict for the time being, and are properly >> marked as such. >>=20 >> (And I am looking for a more elegant approach going forward, in=20 >> particular when we move into GCC 5 territory where, based on input=20 >> from Tijl and others, we now distinguish between lang/gcc5 and=20 >> lang/gcc5-devel.) >=20 > That explains why I've only had lang/gcc5 vs. devel/powerpc64-gcc > conflicts at times: devel/powerpc64-gcc is not treated as a 3rd > alternative to lang/gcc5-devel and lang/gcc5 and it overlaps with > lang/gcc5 when the .x part of the versions (of .x.y) happen to be > the same. >=20 > [Long ago it was devel/powerpc64-gcc and lang/gcc49 conflicts.] >=20 > devel/powerpc64-gcc is currently a gcc5 variant. I actually > install and use devel/powerpc64-xtoolchain-gcc and its > devel/powerpc64-gcc on the powerpc64 contexts that I have. (This > requires a staging-failure workaround.) I learned to avoid > having lang/gcc5 (in more modern times). Sounds like I could > have lang/gcc5-devel without conflicts. >=20 > I use devel/powerpc64-gcc for "self hosted cross builds" in order > to have a modern libc++ based powerpc64 environment without > requiring actual cross builds. [I've never gotten lib32 to > work under this technique so I build without it.] >=20 >>> But luckily so far I've not picked to build anything that built >>> lang/gcc. Or, more likely(?), if some gcc is already installed it >>> is used instead if lang/gcc is not installed yet. >>=20 >> Correct. If lang/gcc49 or lang/gcc is installed, either of the >> two is picked up; if a newer version is installed and USE_GCC=3Dyes >> or USE_GCC=3DX.Y+ are requested (and the installed version is newer), >> that one is used. >>=20 >> Nothing to do with luck on your side, Mark. Rather, design and=20 >> implementation in the Ports Collection. :-) >>=20 >> Gerald >=20 >=20 > =3D=3D=3D > Mark Millard > markmi at dsl-only.net