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
next prev parent reply other threads:[~2011-04-06 19:14 UTC|newest]
Thread overview: 27+ 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 7:08 ` Esben Haabendal
2011-04-06 12:05 ` [poky] " Richard Purdie
2011-04-06 12:16 ` Esben Haabendal
2011-04-06 13:06 ` Richard Purdie
2011-04-06 13:21 ` Esben Haabendal
2011-04-06 14:19 ` Richard Purdie
2011-04-06 16:38 ` Esben Haabendal
2011-04-06 18:01 ` Hatle, Mark
2011-04-06 20:54 ` Esben Haabendal
2011-04-06 20:55 ` Esben Haabendal
2011-04-06 7:16 ` Koen Kooi
2011-04-06 8:47 ` Frans Meulenbroeks
2011-04-06 14:29 ` Richard Purdie
2011-04-06 18:06 ` [poky] " Hatle, Mark
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:39 ` Tom Rini
2011-04-07 15:36 ` [poky] " Colin Walters
2011-04-07 16:10 ` Hatle, Mark
2011-04-07 16:53 ` Colin Walters
2011-04-07 17:04 ` Hatle, Mark
2011-04-07 17:10 ` Hatle, Mark
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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox