On Mon, 21 Jan 2013 01:05:56 +0300
Sergei Trofimovich <sly...@gentoo.org> wrote:

> On Sun, 20 Jan 2013 20:11:31 +0100
> Michał Górny <mgo...@gentoo.org> wrote:
> 
> > There is a fair interest in multilib and while still early, it would be
> > a good moment to decide on how USE flags to use for it.
> > 
> > The current attempts are mostly using USE=multilib which is not really
> > expressive and poor. What I would go for is a clear variable specifying
> > which targets package is built for.
> 
> You just need to add 'ABI' and 'MULTILIB_ABIS' to
> "emerge --info ${pkg}" output.

No, that's not the same. It's like python.eclass vs new Python
eclasses. Cheap hidden logic vs explicit USE-dep logic.

> Do you plan to keep precise depends for packages?
> like glibc[abi_x32]/gcc[abi_x32] for all libraries requesting x32.

Yes. ${MULTILIB_USEDEP} is for that (it currently evaluates
to 'multilib?').

> What to do if someone builds a package only with non-default ABI?
> (it means installed package does not quite work for default ABI)

Well, I was asking the same question. That was what my q1 was asking,
I think you misunderstood it.

> like on ABI=amd64 media-libs/glu[ABI=x32] could not be used by
> any of ABI=amd64 users.
> 
> In order to track such depends precisely you would need to add
> ABI flags to each revdep recursively. It's quite invasive. Is it worth
> the effort?

A good point. I'd say that the default impl should be built then.
But... how about making it a USE flag with use.force logic? That way,
it would be explicitly visible, and if someone really wanted to disable
it, he would be able to do it on his own responsibility.

> Currently USE=multilib means 'build for all toolchain-supported' ABIs.
> It looks clean and short.

But if we wanted to introduce x32, it would become no longer clean. I
believe many of our users want/need multilib only for running 32-bit
apps on amd64 (like wine). Why would they need x32 libraries?

But on the other hand, if we follow that logic we will probably have
no reason to enable x32 on amd64 for a long time. Maybe mips ABIs will
be a better example?

> > 2) do we want irrelevant ABIs to be visible to emerge users?
> > 
> > By 2) I mean: do we want the users to see stuff like:
> > 
> >   MULTILIB_ABIS="amd64_abi1 amd64_abi2 -amd64_abi3 (-ppc64_abi1)
> >     (-ppc64_abi2) (-ppc64_abi3) ..."
> 
> Would adding irrelevant ABIs trigger rebuilds on world update?

That's a good question, especially wrt USE_EXPAND_HIDDEN.

> Do you intermingle gentoo's $ARCH and ABI?

I think not. I believe that ABIs shall be defined by profiles.
If someone tries to set ARCH for something incorrect for the profile,
that's not something we shall support, I believe.

> How many ABI vars do you expect to see for simple "common" cases?
> 
>   x86_64-pc-linux-gnu-gcc -m32 (host ARCH=amd64)
>   x86_64-pc-linux-gnu-gcc -m64 (host ARCH=amd64)
>   x86_64-pc-linux-gnu-gcc -mx32 (host ARCH=amd64)
>   i686-pc-linux-gnu-gcc -m32 (host ARCH=x86)
>   i686-pc-linux-gnu-gcc -m64 (host ARCH=x86)
>   i686-pc-linux-gnu-gcc -mx32 (host ARCH=x86)
> 
> 3 or 6?

I think 3 will be enough.

> Looks like insane amount of metadata growth for each
> plagued package.

I don't think metadata is really important here. I believe that
the amount of additional metadata introduced by the packages affected
by multilib is not really one worth worrying.

-- 
Best regards,
Michał Górny

Attachment: signature.asc
Description: PGP signature

Reply via email to