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 |