Date: Sun, 11 Dec 2016 02:55:06 -0800 From: Mark Millard <markmi@dsl-only.net> To: Gerald Pfeifer <gerald@pfeifer.com> 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: <C22DA1C6-830E-4AB8-BA85-F86235DD9528@dsl-only.net> In-Reply-To: <alpine.LSU.2.20.1612111035520.2333@anthias.pfeifer.com> 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>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2016-Dec-11, at 1:39 AM, Gerald Pfeifer <gerald at pfeifer.com> = 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?C22DA1C6-830E-4AB8-BA85-F86235DD9528>