Gentoo Archives: gentoo-dev

From: Alexandre Rostovtsev <tetromino@g.o>
To: gentoo-dev@l.g.o
Cc: multilib@g.o, "Mike Frysinger (vapier)" <vapier@g.o>, toolchain@g.o, embedded@g.o
Subject: Re: [gentoo-dev] crossdev and multilib interference
Date: Wed, 12 Mar 2014 16:07:32
Message-Id: 1394640392.7647.18.camel@rook
In Reply to: [gentoo-dev] crossdev and multilib interference by hasufell
1 On Wed, 2014-03-12 at 15:46 +0000, hasufell wrote:
2 > We have a problem where the crossdev pkg-config wrapper scripts
3 > interfere with multilib.
4 >
5 > crossdev for example sets in their pkg-config wrappers:
6 >
7 > PKG_CONFIG_LIBDIR="${SYSROOT}/usr/lib/pkgconfig:${SYSROOT}/usr/share/pkgconfig"
8 >
9 > Now, SYSROOT is chosen from multiple conditions. When emerging a
10 > package, that happens to be "/" and thus results in:
11 > "//usr/lib/pkgconfig://usr/share/pkgconfig"
12 >
13 > Build systems like autotools will pick the crossdev provided
14 > "i686-pc-linux-gnu-pkg-config" for the 32bit ABI which will in turn
15 > override the eclass-exported PKG_CONFIG_LIBDIR and now effectively
16 > find the pkg-config files in /usr/lib64/...
17 >
18 > This is not a problem most of the time if the package just wants to
19 > get the libs to link against.
20 >
21 > However, every package that tries to access variables that are
22 > different between /usr/lib32/pkgconfig/foo.pc and
23 > /usr/lib64/pkgconfig/foo.pc like "libdir" will fail or produce
24 > unexpected results.
25 >
26 > That already happens for
27 > x11-libs/libva-vdpau-driver
28 > x11-libs/libva (https://bugs.gentoo.org/show_bug.cgi?id=500338)
29 >
30 > and there are probably more.
31 >
32 > A simple workaround is:
33 > PKG_CONFIG="pkg-config" emerge foo
34 >
35 > But I think that is not appropriate to set in the eclass. How can we
36 > solve this? Don't bikeshed.
37
38 Two possibilities:
39 1. Don't allow crossdev to handle targets which are natively handled by
40 multilib profiles. For example, is there any legitimate reason for
41 wanting crossdev's i686 wrappers when on a multilib amd64 profile?
42 2. Have crossdev install its wrappers in a prefix, for example
43 in /usr/libexec/crossdev, which gets added to PATH by cross-emerge.

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies

Subject Author
Re: [gentoo-dev] crossdev and multilib interference Alexis Ballier <aballier@g.o>
Re: [gentoo-dev] crossdev and multilib interference Greg Turner <gmt@×××××.us>
Re: [gentoo-dev] crossdev and multilib interference Greg Turner <gmt@×××××.us>