All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Jeremy Puhlman <jpuhlman@mvista.com>
Cc: poky <poky@yoctoproject.org>,
	Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Subject: Re: Proposed Multilib Implementation Brainstorming
Date: Wed, 06 Apr 2011 11:53:06 -0700	[thread overview]
Message-ID: <1302115986.22904.83.camel@rex> (raw)
In-Reply-To: <4D9BA594.3030005@mvista.com>

On Tue, 2011-04-05 at 16:28 -0700, Jeremy Puhlman wrote:
> > 
> > To do this I'm thinking of a new set of include files of the form
> > conf/machine/include/multilib-xxxx.inc, similar in nature to the
> > tune-xxx.inc files. A given setup would include each of the multilibs it
> > requred. Each multilib include file would look something like:
> > 
> > conf/machine/include/multilib-x86-lib32.inc:
> > 
> > MULTILIBS += "lib32"
> > 
> > BASE_PACKAGE_ARCH_virtclass-multilib-lib32 = "core2-lib32"
> > TARGET_CC_ARCH_virtclass-multilib-lib32 = "-m32 -march=core2"
> > PACKAGE_EXTRA_ARCHS += "core2-lib32"
> > 
> > libdir_virtclass-multilib-lib32 = "${exec_prefix}/lib32"
> > base_libdir_virtclass-multilib-lib32 = "${base_prefix}/lib32"
> > 
> > i.e. use overrides to change the target cc architecture specifying the
> > required flags to the compiler and also alter the library paths as
> > required.
> > 
> > I'm envisaging passing an optional new parameter to classes in
> > BBCLASSEXTEND so for example the definition of a multilib could look
> > something like:
> > 
> > BBCLASSEXTEND_append = " multilib:x86-lib32"
> > 
> > and all the multilib class would need to do is to manipulation of
> > variables including OVERRIDES in a similar way to native.bbclass with
> > the complication of handling the parameter.
> 
> It is possible to do it with out changes to bitbake, but adding
> parametrization to BBCLASSEXTEND would be useful in a number of ways,
> and much more elegant then doing it with out it, and cleaner for that
> matter. Unrelated to multilib, would the full path to the sub parameters
> be configurable via the extended class? i.e. "conf/machine/include/" be
> a configurable value from the multilib class?

I've been thinking this would be the other way around. The act of adding
some conf/machine/include/* files would then trigger the inheritance of
the multilib class with the parameter specified at the point of the
inclusion.

> > For opkg there are multiple levels we can take the integration to. It
> > should be possible for example to install the "weaker" multilibs first,
> > then just install the stronger ones over the top, assuming any file
> > overwriting is ok and can be ignored. 
> 
> If there isn't any kind of compartmentalization of binaries(i.e. the
> alternate abi having a set of packages that only contian runtime libs),
> wouldn't this render the package management on opkg based systems post
> install largely useless other then just adding new components?

Its use case specific and I agree the above is hacky. It would be better
to have that option with known caveats that none at all though.

>  Most
> applications are getting better about it(openssl comes to mind), but
> some may still place arch specific headers in common locations. Many
> like openssl started switching over to arch wrapper headers, but there
> may be some stuff still lurking out there. Could probably be handled on
> a case by case basis.

Yes, we've going to have to watch for this kind of issue and get it
fixed as and where we find it.

> I have been kicking around a still broken POC implementation to this for
> a bit, but this is basically the line of thought(minus the
> parametrization of BBCLASSEXTEND) for a while on the subject. This looks
> mostly right to me.

Great, thanks for the feedback!

Cheers,

Richard




WARNING: multiple messages have this Message-ID (diff)
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Jeremy Puhlman <jpuhlman@mvista.com>
Cc: poky <poky@yoctoproject.org>,
	Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Subject: Re: [OE-core] Proposed Multilib Implementation Brainstorming
Date: Wed, 06 Apr 2011 11:53:06 -0700	[thread overview]
Message-ID: <1302115986.22904.83.camel@rex> (raw)
In-Reply-To: <4D9BA594.3030005@mvista.com>

On Tue, 2011-04-05 at 16:28 -0700, Jeremy Puhlman wrote:
> > 
> > To do this I'm thinking of a new set of include files of the form
> > conf/machine/include/multilib-xxxx.inc, similar in nature to the
> > tune-xxx.inc files. A given setup would include each of the multilibs it
> > requred. Each multilib include file would look something like:
> > 
> > conf/machine/include/multilib-x86-lib32.inc:
> > 
> > MULTILIBS += "lib32"
> > 
> > BASE_PACKAGE_ARCH_virtclass-multilib-lib32 = "core2-lib32"
> > TARGET_CC_ARCH_virtclass-multilib-lib32 = "-m32 -march=core2"
> > PACKAGE_EXTRA_ARCHS += "core2-lib32"
> > 
> > libdir_virtclass-multilib-lib32 = "${exec_prefix}/lib32"
> > base_libdir_virtclass-multilib-lib32 = "${base_prefix}/lib32"
> > 
> > i.e. use overrides to change the target cc architecture specifying the
> > required flags to the compiler and also alter the library paths as
> > required.
> > 
> > I'm envisaging passing an optional new parameter to classes in
> > BBCLASSEXTEND so for example the definition of a multilib could look
> > something like:
> > 
> > BBCLASSEXTEND_append = " multilib:x86-lib32"
> > 
> > and all the multilib class would need to do is to manipulation of
> > variables including OVERRIDES in a similar way to native.bbclass with
> > the complication of handling the parameter.
> 
> It is possible to do it with out changes to bitbake, but adding
> parametrization to BBCLASSEXTEND would be useful in a number of ways,
> and much more elegant then doing it with out it, and cleaner for that
> matter. Unrelated to multilib, would the full path to the sub parameters
> be configurable via the extended class? i.e. "conf/machine/include/" be
> a configurable value from the multilib class?

I've been thinking this would be the other way around. The act of adding
some conf/machine/include/* files would then trigger the inheritance of
the multilib class with the parameter specified at the point of the
inclusion.

> > For opkg there are multiple levels we can take the integration to. It
> > should be possible for example to install the "weaker" multilibs first,
> > then just install the stronger ones over the top, assuming any file
> > overwriting is ok and can be ignored. 
> 
> If there isn't any kind of compartmentalization of binaries(i.e. the
> alternate abi having a set of packages that only contian runtime libs),
> wouldn't this render the package management on opkg based systems post
> install largely useless other then just adding new components?

Its use case specific and I agree the above is hacky. It would be better
to have that option with known caveats that none at all though.

>  Most
> applications are getting better about it(openssl comes to mind), but
> some may still place arch specific headers in common locations. Many
> like openssl started switching over to arch wrapper headers, but there
> may be some stuff still lurking out there. Could probably be handled on
> a case by case basis.

Yes, we've going to have to watch for this kind of issue and get it
fixed as and where we find it.

> I have been kicking around a still broken POC implementation to this for
> a bit, but this is basically the line of thought(minus the
> parametrization of BBCLASSEXTEND) for a while on the subject. This looks
> mostly right to me.

Great, thanks for the feedback!

Cheers,

Richard



  reply	other threads:[~2011-04-06 19:14 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-05 11:02 Proposed Multilib Implementation Brainstorming Richard Purdie
2011-04-05 23:28 ` Jeremy Puhlman
2011-04-06 18:53   ` Richard Purdie [this message]
2011-04-06 18:53     ` [OE-core] " Richard Purdie
2011-04-06  7:08 ` Esben Haabendal
2011-04-06  7:08   ` [OE-core] " Esben Haabendal
2011-04-06 12:05   ` [poky] " Richard Purdie
2011-04-06 12:05     ` [OE-core] " Richard Purdie
2011-04-06 12:16     ` [poky] " Esben Haabendal
2011-04-06 12:16       ` [OE-core] " Esben Haabendal
2011-04-06 13:06       ` [poky] " Richard Purdie
2011-04-06 13:06         ` [OE-core] " Richard Purdie
2011-04-06 13:21         ` [poky] " Esben Haabendal
2011-04-06 13:21           ` [OE-core] " Esben Haabendal
2011-04-06 14:19           ` [poky] " Richard Purdie
2011-04-06 14:19             ` [OE-core] " Richard Purdie
2011-04-06 16:38             ` [poky] " Esben Haabendal
2011-04-06 16:38               ` [OE-core] " Esben Haabendal
2011-04-06 18:01     ` [poky] " Hatle, Mark
2011-04-06 18:01       ` [OE-core] " Hatle, Mark
2011-04-06 20:54       ` [poky] " Esben Haabendal
2011-04-06 20:54         ` [OE-core] " Esben Haabendal
2011-04-06 20:55       ` [poky] " Esben Haabendal
2011-04-06 20:55         ` [OE-core] " Esben Haabendal
2011-04-06  7:16 ` Koen Kooi
2011-04-06  7:16   ` [OE-core] " Koen Kooi
2011-04-06  8:47 ` Frans Meulenbroeks
2011-04-06 14:29   ` Richard Purdie
2011-04-06 14:29     ` [OE-core] " Richard Purdie
2011-04-06 18:06     ` [poky] " Hatle, Mark
2011-04-06 18:06       ` [OE-core] " Hatle, Mark
2011-04-06 18:43     ` Tom Rini
2011-04-06 18:25   ` Tom Rini
2011-04-07  6:10     ` Koen Kooi
2011-04-06 18:26 ` Hatle, Mark
2011-04-06 18:26   ` [OE-core] " Hatle, Mark
2011-04-06 18:39   ` Tom Rini
2011-04-07 15:36 ` [poky] " Colin Walters
2011-04-07 15:36   ` Colin Walters
2011-04-07 16:10   ` [poky] " Hatle, Mark
2011-04-07 16:10     ` Hatle, Mark
2011-04-07 16:53     ` [poky] " Colin Walters
2011-04-07 16:53       ` Colin Walters
2011-04-07 17:04       ` [poky] " Hatle, Mark
2011-04-07 17:04         ` Hatle, Mark
2011-04-07 17:10         ` [poky] " Hatle, Mark
2011-04-07 17:10           ` Hatle, Mark
2011-04-07 17:07       ` [poky] " Koen Kooi
2011-04-07 17:07         ` Koen Kooi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1302115986.22904.83.camel@rex \
    --to=richard.purdie@linuxfoundation.org \
    --cc=jpuhlman@mvista.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=poky@yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.