Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 526930 - dev-lang/perl-5.20.1-r2: File collisions in /usr/lib/debug/.build-id with FEATURES=splitdebug
Summary: dev-lang/perl-5.20.1-r2: File collisions in /usr/lib/debug/.build-id with FEA...
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Perl team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-10-26 13:04 UTC by Manuel Nickschas
Modified: 2014-11-22 20:04 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
Output of emerge --info (emerge.log,15.84 KB, text/plain)
2014-10-26 13:04 UTC, Manuel Nickschas
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Manuel Nickschas 2014-10-26 13:04:08 UTC
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
Comment 1 Manuel Nickschas 2014-10-26 13:04:40 UTC
Created attachment 387448 [details]
Output of emerge --info
Comment 2 Andreas K. Hüttel archtester gentoo-dev 2014-10-26 21:40:24 UTC
Please re-build your gcc. Afterwards this problem should go away. 

[Leaving the bug open for a while...]
Comment 3 SpanKY gentoo-dev 2014-10-27 00:08:06 UTC
perl shouldn't be duplicating object code like this
Comment 4 Andreas K. Hüttel archtester gentoo-dev 2014-10-27 11:28:33 UTC
(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
Comment 5 SpanKY gentoo-dev 2014-10-27 17:22:56 UTC
(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.
Comment 6 Konstantin (elxa) 2014-10-27 21:38:23 UTC
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.
Comment 7 Anthony Basile gentoo-dev 2014-10-27 21:48:29 UTC
(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 :)
Comment 8 Anthony Basile gentoo-dev 2014-10-27 21:50:28 UTC
(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.
Comment 9 Andreas K. Hüttel archtester gentoo-dev 2014-10-27 21:57:57 UTC
> 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
Comment 10 Konstantin (elxa) 2014-10-28 17:27:09 UTC
(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 :)