Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 116681 - libstdc++ install dies with FEATURES="splitdebug multilib-strict"
Summary: libstdc++ install dies with FEATURES="splitdebug multilib-strict"
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Ebuild Support (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS, REGRESSION
Depends on:
Blocks: 115839
  Show dependency tree
 
Reported: 2005-12-25 04:10 UTC by Jason Stubbs (RETIRED)
Modified: 2006-02-26 14:43 UTC (History)
3 users (show)

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


Attachments
Fix location of split-out debug information to comply with FEATURES="multilib-strict" (portage-2.1_preX-splitdebug-multilib-strict.patch,812 bytes, patch)
2005-12-25 05:50 UTC, Danny van Dyk (RETIRED)
Details | Diff
ebuild-splitdebug-multilib-strict-exempt.patch (ebuild-splitdebug-multilib-strict-exempt.patch,676 bytes, patch)
2005-12-25 08:23 UTC, solar (RETIRED)
Details | Diff
portage-2.1_pre4-multilibstrict.patch (portage-2.1_pre4-multilibstrict.patch,1004 bytes, patch)
2006-01-29 11:38 UTC, Diego Elio Pettenò (RETIRED)
Details | Diff
portage-2.1_pre4-multilibstrict.patch (working) (portage-2.1_pre4-multilibstrict.patch,1006 bytes, patch)
2006-02-01 21:06 UTC, Diego Elio Pettenò (RETIRED)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jason Stubbs (RETIRED) gentoo-dev 2005-12-25 04:10:47 UTC
!!! ERROR: sys-libs/libstdc++-v3-3.3.6 failed.
!!! Function dyn_install, Line 1184, Exitcode 0
!!! File /var/tmp/portage/libstdc++-v3-3.3.6/image///usr/lib/debug/usr/lib64/libstdc++-v3/libstdc++.so.5.0.7.debug matches a file type that is not allowed in /usr/lib
!!! If you need support, post the topmost build error, NOT this status message.


Not sure if this is libstdc++'s fault, splitdebug's fault or multilib-strict's fault so CC'ing everybody.
Comment 1 Jason Stubbs (RETIRED) gentoo-dev 2005-12-25 04:52:50 UTC
Apparently splitdebug should be using lib{bitdepth} dirs, so it's out fault. :)
Comment 2 Simon Stelling (RETIRED) gentoo-dev 2005-12-25 05:00:23 UTC
not exactly, it's much more fun. have a look at
http://dev.gentoo.org/~plasmaroo/devmanual//archs/amd64/#libdir-links
as you can see, it depends upon the selected profile where they go. You probably want to have a look at multilib.eclass too..

@eradicator: adding you since you might be interested in this
Comment 3 Danny van Dyk (RETIRED) gentoo-dev 2005-12-25 05:50:36 UTC
Created attachment 75499 [details, diff]
Fix location of split-out debug information to comply with FEATURES="multilib-strict"

Jason: You proposed to extract the libdir information from the name of the file
to be installed. This is problematic: We can't deduce this information from
files that end up in {,/usr}/bin, etc. get_libdir() is the only reliable
source of information in regard to libdirs. Please consider to apply attached
patch.
Comment 4 solar (RETIRED) gentoo-dev 2005-12-25 08:23:19 UTC
Created attachment 75503 [details, diff]
ebuild-splitdebug-multilib-strict-exempt.patch

splitdebug should/can/must not use /lib32/lib64 dirs.
It would fundamentally break how it's supposed to work. 
Try this patch I'm attaching. I believe it's the correct way to solve this.
Comment 5 Diego Elio Pettenò (RETIRED) gentoo-dev 2005-12-25 09:18:36 UTC
Actually, with solar we said it shouldn't change anything and always go in /usr/lib.
It's also in multilib-strict exempt (I talked with KingTaco when it was committed to trunk).
The problem with libstdc++ seems to be that it tries to check for ///usr/lib when exempting it.
I've seen this before with another package but I don't remember which.
Comment 6 solar (RETIRED) gentoo-dev 2005-12-25 11:28:13 UTC
(In reply to comment #5)

> It's also in multilib-strict exempt (I talked with KingTaco when it was
> committed to trunk).

Where? I dont see it.

> The problem with libstdc++ seems to be that it tries to check for ///usr/lib
> when exempting it.

Are we hitting some regexp thing here?
Comment 7 Diego Elio Pettenò (RETIRED) gentoo-dev 2005-12-25 11:42:08 UTC
Look at default-linux/amd64 profiles, it's set in MULTILIB_STRICT_EXEMPT

and yeah it's probaly a regexp thingy but I don't know where.
Comment 8 solar (RETIRED) gentoo-dev 2005-12-25 12:43:35 UTC
(In reply to comment #7)
> Look at default-linux/amd64 profiles, it's set in MULTILIB_STRICT_EXEMPT

Ahh.. You said trunk so I was looking at/refering to svn.
 
> and yeah it's probaly a regexp thingy but I don't know where.

In ebuild.sh about here I suppose.

egrep -v "^${D}/${dir}/${MULTILIB_STRICT_EXEMPT}"
Comment 9 solar (RETIRED) gentoo-dev 2005-12-26 10:17:20 UTC
Can somebody test with escaping the ++ please?

ebuild.sh:
- egrep -v "^${D}/${dir}/${MULTILIB_STRICT_EXEMPT}"
+ egrep -v "^${D/++/\\+\\+}/${dir}/${MULTILIB_STRICT_EXEMPT}"
Comment 10 Diego Elio Pettenò (RETIRED) gentoo-dev 2005-12-26 10:27:37 UTC
I'll give that a try... it's probably that now that you make me think of it, the other package which gave me problem was libsigc++...
Comment 11 Jason Stubbs (RETIRED) gentoo-dev 2005-12-29 23:09:05 UTC
Escaping works but is there a way to do it without hardcoding for "++"?
Comment 12 solar (RETIRED) gentoo-dev 2006-01-07 16:16:23 UTC
Somebody that uses multilib would have to rewrite the 'egrep -v foo' that was already there. It never would of worked on a pkg containing a ++ in it.
Comment 13 Diego Elio Pettenò (RETIRED) gentoo-dev 2006-01-29 11:38:23 UTC
Created attachment 78465 [details, diff]
portage-2.1_pre4-multilibstrict.patch

Okay this should solve the issue finally. Instead of escaping the input source, I've manipulated the MULTILIB_STRICT_EXEMPT value so that the egrep syntax is converted in standard grep syntax and then changed egrep to grep.
Comment 14 Diego Elio Pettenò (RETIRED) gentoo-dev 2006-02-01 21:06:55 UTC
Created attachment 78688 [details, diff]
portage-2.1_pre4-multilibstrict.patch (working)

Erm sorry the previous one was broken, was the first patch, not the one I was using because I tweaked it after preparing it with quilt.
This works.
Comment 15 Zac Medico gentoo-dev 2006-02-26 14:43:15 UTC
Released in 2.1_pre5.