Emerging perl-5.20.1-r2 with splitdebug enabled causes file collisions with several Perl modules: * Detected file collision(s): * * /usr/lib/debug/.build-id/83/c66b2350b88e4e08f35b50ceacea42b89becb2 * /usr/lib/debug/.build-id/83/c66b2350b88e4e08f35b50ceacea42b89becb2.debug * /usr/lib/debug/.build-id/2f/7473170d6b583d28c36aa4309d741fea8ecf6c * /usr/lib/debug/.build-id/2f/7473170d6b583d28c36aa4309d741fea8ecf6c.debug * /usr/lib/debug/.build-id/5e/808b2c7ce08e9ed12f970a6532b785ba627268 * /usr/lib/debug/.build-id/5e/808b2c7ce08e9ed12f970a6532b785ba627268.debug * * Searching all installed packages for file collisions... * * Press Ctrl-C to Stop * * perl-core/MIME-Base64-3.140.0-r1:0::gentoo * /usr/lib/debug/.build-id/83/c66b2350b88e4e08f35b50ceacea42b89becb2 * /usr/lib/debug/.build-id/83/c66b2350b88e4e08f35b50ceacea42b89becb2.debug * * perl-core/Digest-MD5-2.530.0:0::gentoo * /usr/lib/debug/.build-id/5e/808b2c7ce08e9ed12f970a6532b785ba627268 * /usr/lib/debug/.build-id/5e/808b2c7ce08e9ed12f970a6532b785ba627268.debug * * perl-core/Sys-Syslog-0.330.0-r1:0::gentoo * /usr/lib/debug/.build-id/2f/7473170d6b583d28c36aa4309d741fea8ecf6c * /usr/lib/debug/.build-id/2f/7473170d6b583d28c36aa4309d741fea8ecf6c.debug * * Package 'dev-lang/perl-5.20.1-r2' NOT merged due to file collisions. Everything should be up-to-date. I have seen this issue before with Ruby and json (Bug #491452). Reproducible: Always
Created attachment 387448 [details] Output of emerge --info
Please re-build your gcc. Afterwards this problem should go away. [Leaving the bug open for a while...]
perl shouldn't be duplicating object code like this
(In reply to SpanKY from comment #3) > perl shouldn't be duplicating object code like this Please * either don't comment on things you don't understand * or come up with a constructive suggestion how to improve
(In reply to Andreas K. Hüttel from comment #4) i have no idea why you've decided to be a d**k here, but take it somewhere else the reason is pretty clear: you have multiple perl projects producing the same executable content and installing them leading to duplication in the system. Gentoo has a clear policy of not doing that. how exactly perl is doing that, i don't know because i don't deal with perl internals. by saying "just rebuild gcc" doesn't make the issue go away. anyone using the build-id linker flag (which is perfectly reasonable) is going to run into the same problem.
Just fyi I rebuilt sys-devel/gcc-4.9.1 and still get the collisions trying to install dev-lang/perl-5.20.1-r2.
(In reply to Konstantin (elxa) from comment #6) > Just fyi I rebuilt sys-devel/gcc-4.9.1 and still get the collisions trying > to install dev-lang/perl-5.20.1-r2. This is going to happen on any version of gcc 4.5 and above. This is an old option which we haven't hit before probably because it wasn't enabled by default and few people build their own toolchains. You have to pass --enable-linker-build-id to the configure script when building gcc, not when building packages with gcc. Sorry to be pedantic, occupational hazard :)
(In reply to Anthony Basile from comment #7) > (In reply to Konstantin (elxa) from comment #6) > > Just fyi I rebuilt sys-devel/gcc-4.9.1 and still get the collisions trying > > to install dev-lang/perl-5.20.1-r2. > > This is going to happen on any version of gcc 4.5 and above. This is an old > option which we haven't hit before probably because it wasn't enabled by > default and few people build their own toolchains. You have to pass > --enable-linker-build-id to the configure script when building gcc, not when > building packages with gcc. > > Sorry to be pedantic, occupational hazard :) Sorry for the spam but did this occur *after* toolchain.eclass was updated? Re-sync your tree and rebuild gcc to make sure it stops else we have another issue.
> the reason is pretty clear: you have multiple perl projects producing the > same executable content and installing them leading to duplication in the > system. Gentoo has a clear policy of not doing that. how exactly perl is > doing that, i don't know because i don't deal with perl internals. I'll be happy to explain in detail how Gentoo's Perl installation works, also including good reasons why in some (hopefully rare) cases identical binaries will be installed. [*, **] Who knows, maybe we gain a valuable Perl team member and find out that there's more than one way to do things. Would you please extend the same courtesy and explain why build-id should be forced on? (Especially since on different machines with different settings we'd usually get different hashes anyway.) That said, a very central policy of Gentoo is still - he whose commits break things, fixes them (or gets reverted). [*] The system of Gentoo Perl ebuilds (which has this intrinsic "problem") wasn't invented or designed by me but exists for quite some time. Recently, civil, zlogene, bonsai & me have started bringing it up to speed again. [**] Actually, may I refer to my blog post? http://dilfridge.blogspot.de/2014/07/perl-in-gentoo-dev-langperl-virtuals.html
(In reply to Anthony Basile from comment #8) > (In reply to Anthony Basile from comment #7) > > (In reply to Konstantin (elxa) from comment #6) > > > Just fyi I rebuilt sys-devel/gcc-4.9.1 and still get the collisions trying > > > to install dev-lang/perl-5.20.1-r2. > > > > This is going to happen on any version of gcc 4.5 and above. This is an old > > option which we haven't hit before probably because it wasn't enabled by > > default and few people build their own toolchains. You have to pass > > --enable-linker-build-id to the configure script when building gcc, not when > > building packages with gcc. > > > > Sorry to be pedantic, occupational hazard :) > > Sorry for the spam but did this occur *after* toolchain.eclass was updated? > Re-sync your tree and rebuild gcc to make sure it stops else we have another > issue. Thanks for the hint, after synchronizing the tree and rebuilding gcc again, perl installed without issues :)