From owner-freebsd-ports@freebsd.org Sun Dec 11 10:55:10 2016 Return-Path: Delivered-To: freebsd-ports@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 7BD38C71294 for ; Sun, 11 Dec 2016 10:55:10 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-211-169.reflexion.net [208.70.211.169]) (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 3FAA51956 for ; Sun, 11 Dec 2016 10:55:09 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 14352 invoked from network); 11 Dec 2016 10:56:02 -0000 Received: from unknown (HELO mail-cs-01.app.dca.reflexion.local) (10.81.19.1) by 0 (rfx-qmail) with SMTP; 11 Dec 2016 10:56:02 -0000 Received: by mail-cs-01.app.dca.reflexion.local (Reflexion email security v8.20.0) with SMTP; Sun, 11 Dec 2016 05:55:19 -0500 (EST) Received: (qmail 15600 invoked from network); 11 Dec 2016 10:55:19 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with (AES256-SHA encrypted) SMTP; 11 Dec 2016 10:55:19 -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 3AFA0EC7977; Sun, 11 Dec 2016 02:55:07 -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: Date: Sun, 11 Dec 2016 02:55:06 -0800 Cc: vbox@FreeBSD.org, Dimitry Andric , svn-ports-head@freebsd.org, freebsd-ports@freebsd.org 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: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Dec 2016 10:55:10 -0000 On 2016-Dec-11, at 1:39 AM, Gerald Pfeifer = wrote: > Hi Mark, >=20 > On Sat, 10 Dec 2016, Mark Millard wrote: >> [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.] >=20 > I had another look, and lang/gcc6 and lang/gcc6-devel really are > substitutable in what they provide. >=20 >> After installing lang/gcc6-devel something else indirectly >> forced lang/gcc6 to try to build. The attempt failed with: >=20 > That means that "something else indirectly forc[ing] lang/gcc6" is > what appears to be going on here. I double checked Mk/bsd.gcc.mk > and failed to find anything (which also would be surprising given > no other reports in the last decade). >=20 > vbox@, any ideas? >=20 > Gerald Hi Gerald, I reported already that devel/kBuild/Makefile has in its Makefile: USE_GCC=3D any and devel/kBuild is what causes the lang/gcc* build. (I reported more than that but it is the part relevant here.) 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). If I clean that out and put back lang/gcc6-devel and try again it goes back to trying to install lang/gcc6 . 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. By contrast when no lang/gcc* is present (none installed) because I've also deleted lang/gcc6-devel it goes for the default gcc rather than a more specific version: lang/gcc . This varying behavior might give a clue about what to look for in the USE_GCC=3Dany mechanism. Side notes: On powerpc64 I was able to install both devel/powerpc64-gcc (with work around for the fact that it is not a true cross compiler in this context so 6 files do not stage right) and lang/gcc6 and no conflict was reported. The mentioned workaround for my context is: # more ~/powerpc64-gcc_fixup.sh=20 #!/bin/sh cp -ax = /usr/obj/portswork/usr/ports/devel/powerpc64-gcc/work/.build/gcc/gcov = /usr/obj/portswork/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/bin/= powerpc64-unknown-freebsd12.0-gcov cp -ax = /usr/obj/portswork/usr/ports/devel/powerpc64-gcc/work/.build/gcc/gcov-tool= = /usr/obj/portswork/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/bin/= powerpc64-unknown-freebsd12.0-gcov-tool gzip -c = /usr/obj/portswork/usr/ports/devel/powerpc64-gcc/work/gcc-*/gcc/doc/cpp.1 = > = /usr/obj/portswork/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/man/= man1/powerpc64-unknown-freebsd12.0-cpp.1.gz gzip -c = /usr/obj/portswork/usr/ports/devel/powerpc64-gcc/work/.build/gcc/doc/g++.1= > = /usr/obj/portswork/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/man/= man1/powerpc64-unknown-freebsd12.0-g++.1.gz gzip -c = /usr/obj/portswork/usr/ports/devel/powerpc64-gcc/work/.build/gcc/doc/gcc.1= > = /usr/obj/portswork/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/man/= man1/powerpc64-unknown-freebsd12.0-gcc.1.gz gzip -c = /usr/obj/portswork/usr/ports/devel/powerpc64-gcc/work/gcc-*/gcc/doc/gcov.1= > = /usr/obj/portswork/usr/ports/devel/powerpc64-gcc/work/stage/usr/local/man/= man1/powerpc64-unknown-freebsd12.0-gcov.1.gz after which I use -C with portmaster to let it continue now that it can find the 6 files when it tries to. There are other issues in how things are operating and I'll not look into them until after I've gotten some sleep (or even later then that). =3D=3D=3D Mark Millard markmi at dsl-only.net > The specific example turns out to be. . . >=20 > emulators/virtualbox-ose-additions leads to: >=20 > =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 >=20 > and lang/gcc6 tries to build during devel/kBuild and the 3 > non-lang/gcc6 items above have: >=20 > # 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 ; \ >=20 > In a context with: >=20 > # 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 >=20 > # 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 >=20 >=20 > So apparently lang/gcc6-devel can not substitute for lang/gcc6 > automatically. >=20 >=20 >=20 > 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). >=20 >=20 >=20 > =3D=3D=3D > Mark Millard > markmi at dsl-only.net