Gentoo Archives: gentoo-dev

From: Alexis Ballier <aballier@g.o>
To: gentoo-dev@l.g.o
Cc: mgorny@g.o
Subject: Re: [gentoo-dev] The gx86 multilib project -- masterplan
Date: Sun, 27 Jan 2013 16:11:59
Message-Id: 20130127131142.6dcdacef@gentoo.org
In Reply to: [gentoo-dev] The gx86 multilib project -- masterplan by "Michał Górny"
1 On Sun, 27 Jan 2013 16:12:37 +0100
2 Michał Górny <mgorny@g.o> wrote:
3
4 > 5. Solutions to specific problems
5 > ---------------------------------
6 >
7 > 1. x11-proto packages
8 >
9 > Those packages install headers to /usr/include and pkg-config files
10 > to /usr/lib64. This supposedly means that the headers could be
11 > ABI-specific; however, so far I haven't seen a single difference.
12 >
13 > Possible solutions:
14 >
15 > a) check the headers by hand, move pkg-config files to /usr/share,
16 >
17 > b) make the proto packages multilib. This will cause identical .pc
18 > files to be installed to lib32 & lib64 but will also enable eclass
19 > checks for header consistency.
20
21 b) sounds like what we should do by default while lobbying upstream to
22 do a) :)
23
24
25 > 2. packages which install ABI-dependent headers
26 >
27 > e.g. libogg. The issue needs to be fixed in the specific ebuild.
28 >
29 > a) fix the headers, e.g.:
30 >
31 > typedef short ogg_int16_t;
32 > typedef unsigned short ogg_uint16_t;
33 > typedef int ogg_int32_t;
34 >
35 > to:
36 >
37 > #include <stdint.h>
38 >
39 > typedef int16_t ogg_int16_t;
40 > ...
41 >
42 > b) install the header(s) in an alternate location. With packages using
43 > pkg-config, that would be easy.
44
45 b) is not an option: this will break those that do not use pkg-config
46 a) is the correct solution, in cooperation with upstream of course, and
47 it shouldn't be that hard for the libogg example since, as far as I can
48 see, they already have such typedefs for other OSes.
49
50
51 > 3. packages which still reinvent pkg-config with their *-config
52 >
53 > e.g. llvm. Really painful to solve; probably will require action both
54 > on llvm ebuild side and consumer side.
55 >
56 > a) long-term solution: convince upstream to use pkg-config.
57 >
58 > b) short-term: rename the llvm-config script and use the renamed
59 > version for 32-bit build.
60
61 yes, but b) is a mess as there will be no generic solution :(