Gentoo Archives: gentoo-dev

From: Thomas Sachau <tommy@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Support for multiple ABIs for amd64 (64bit,32bit) in multilib overlay
Date: Sun, 18 Oct 2009 18:46:19
Message-Id: 4ADB626F.4050603@gentoo.org
In Reply to: Re: [gentoo-dev] Support for multiple ABIs for amd64 (64bit,32bit) in multilib overlay by Mike Frysinger
1 Mike Frysinger schrieb:
2
3 >
4 > another quick look at _setup_abi_env() looks like it needs work:
5 > - LD should not default to `ld`
6
7 Whats your suggestion?
8
9 > - the -L paths to system dirs in LDFLAGS should not be there -- the toolchain
10 > can handle these just fine
11
12 Last time i tried without, some packages failed to compile, will test it again to check, if its
13 still needed
14
15 > - missing CPPFLAGS handling
16
17 Added
18
19 > - see previous comments re-pkg-config
20
21 Will have a look the next days
22
23 > - you dont declare pyver local
24
25 fixed
26
27 > - the abi if check is uncommon syntax. "! [[ a == b ]]" -> "[[ a != b ]]"
28
29 fixed
30
31 > how do you control whether the multilib headers are needed ? it'll probably
32 > make sense in general, but there are def some packages where this will only
33 > get in the way (the toolchain ones).
34
35 What do you mean here? If the diff between ABIs makes sense to install seperate versions?
36
37 > how do you differentiate between packages where multi ABIs make no sense ?
38 > for example, most packages that dont install any libraries but just binaries.
39 > let's use the simple package app-text/tree.
40
41 I dont differentiate. Currently i build for every ABI, if lib32 useflag is set and multilib useflag
42 is not set. The idea behind it is to allow the installation of additional 32bit binaries, if requested.
43
44 > a lot of this multilib code should probably continue to live in the tree as
45 > it's a pretty big base of code to formalize that could do with fixes over
46 > time. i.e. we figure out that certain paths / define protections dont work so
47 > well, so changing them to something else would require PMS changing !? there
48 > has been talk before about pushing a lot of basic stuff to the tree so things
49 > dont have to be encoded in the PMS.
50
51 How do you want to do this? Require package managers to inherit some file/eclass?
52
53 > how are packages handled that can only be used via 1 ABI ? any of the
54 > packages listed in the amd64 no-multilib package.mask for example. while
55 > these are mostly binary-only, this isnt a binary-specific issue. there are a
56 > number of packages which only work on x86/ppc but could easily work in a
57 > multilib amd64/ppc64 as a 32bit binary (source code sucks, is heavily asm,
58 > something else).
59
60 The binary-only ones are easy. Since they dont interact with the env, they can be installed as
61 usual. If they depend on a new enough package manager with multilib support, they could also depend
62 on the useflag for the additional 32bit libs they need.
63
64 >
65 >> 2. Adding the internal lib32 useflag and usedeps with some workarounds
66 >
67 > what exactly does this "lib32" do ? naming USE flags according to specific
68 > ABI implementations is a bad idea. you have to forget special casing anything
69 > to "lib32 vs lib64". amd64, while the most common, is hardly extensible. we
70 > must handle multiple ABIs which easily might have the same bitsize.
71
72 "lib32" is added to IUSE, you can enable as as every other useflag. Internally, portage does add
73 [lib32?] usedeps to all dependencies. So if you enable the lib32 useflag, portage will require this
74 useflag for all dependencies too. I dont mind renaming it, if there is some other sane naming for it.
75
76 --
77 Thomas Sachau
78
79 Gentoo Linux Developer

Attachments

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

Replies