Commit Graph

42 Commits

Author SHA1 Message Date
Richard Purdie 9107d6ca14 Switch to Recipe Specific Sysroots
This patch is comparatively large and invasive. It does only do one thing, switching the
system to build using recipe specific sysroots and where changes could be isolated from it,
that has been done.

With the current single sysroot approach, its possible for software to find things which
aren't in their dependencies. This leads to a determinism problem and is a growing issue in
several of the market segments where OE makes sense. The way to solve this problem for OE is
to have seperate sysroots for each recipe and these will only contain the dependencies for
that recipe.

Its worth noting that this is not task specific sysroots and that OE's dependencies do vary
enormously by task. This did result in some implementation challenges. There is nothing stopping
the implementation of task specific sysroots at some later point based on this work but
that as deemed a bridge too far right now.

Implementation details:

* Rather than installing the sysroot artefacts into a combined sysroots, they are now placed in
  TMPDIR/sysroot-components/PACKAGE_ARCH/PN.

* WORKDIR/recipe-sysroot and WORKDIR/recipe-sysroot-native are built by hardlinking in files
  from the sysroot-component trees. These new directories are known as RECIPE_SYSROOT and
  RECIPE_SYSROOT_NATIVE.

* This construction is primarily done by a new do_prepare_recipe_sysroot task which runs
  before do_configure and consists of a call to the extend_recipe_sysroot function.

* Other tasks need things in the sysroot before/after this, e.g. do_patch needs quilt-native
  and do_package_write_deb needs dpkg-native. The code therefore inspects the dependencies
  for each task and adds extend_recipe_sysroot as a prefunc if it has populate_sysroot
  dependencies.

* We have to do a search/replace 'fixme' operation on the files installed into the sysroot to
  change hardcoded paths into the correct ones. We create a fixmepath file in the component
  directory which lists the files which need this operation.

* Some files have "postinstall" commands which need to run against them, e.g. gdk-pixbuf each
  time a new loader is added. These are handled by adding files in bindir with the name
  prefixed by "postinst-" and are run in each sysroot as its created if they're present.
  This did mean most sstate postinstalls have to be rewritten but there shouldn't be many of them.

* Since a recipe can have multiple tasks and these tasks can run against each other at the same
  time we have to have a lock when we perform write operations against the sysroot. We also have
  to maintain manifests of what we install against a task checksum of the dependency. If the
  checksum changes, we remove its files and then add the new ones.

* The autotools logic for filtering the view of m4 files is no longer needed (and was the model
  for the way extend_recipe_sysroot works).

* For autotools, we used to build a combined m4 macros directory which had both the native and
  target m4 files. We can no longer do this so we use the target sysroot as the default and add
  the native sysroot as an extra backup include path. If we don't do this, we'd have to build
  target pkg-config before we could built anything using pkg-config for example (ditto gettext).
  Such dependencies would be painful so we haven't required that.

* PKDDATA_DIR was moved out the sysroot and works as before using sstate to build a hybrid copy
  for each machine. The paths therefore changed, the behaviour did not.

* The ccache class had to be reworked to function with rss.

* The TCBOOTSTRAP sysroot for compiler bootstrap is no longer needed but the -initial data
  does have to be filtered out from the main recipe sysroots. Putting "-initial" in a normal
  recipe name therefore remains a bad idea.

* The logic in insane needed tweaks to deal with the new path layout, as did the debug source
  file extraction code in package.bbclass.

* The logic in sstate.bbclass had to be rewritten since it previously only performed search and
  replace on extracted sstate and we now need this to happen even if the compiled path was
  "correct". This in theory could cause a mild performance issue but since the sysroot data
  was the main data that needed this and we'd have to do it there regardless with rss, I've opted
  just to change the way the class for everything. The built output used to build the sstate output
  is now retained and installed rather than deleted.

* The search and replace logic used in sstate objects also seemed weak/incorrect and didn't hold
  up against testing. This has been rewritten too. There are some assumptions made about paths, we
  save the 'proper' search and replace operations to fixmepath.cmd but then ignore this. What is
  here works but is a little hardcoded and an area for future improvement.

* In order to work with eSDK we need a way to build something that looks like the old style sysroot.
  "bitbake build-sysroots" will construct such a sysroot based on everything in the components
  directory that matches the current MACHINE. It will allow transition of external tools and can
  built target or native variants or both. It also supports a clean task. I'd suggest not relying on
  this for anything other than transitional purposes though. To see XXX in that sysroot, you'd have
  to have built that in a previous bitbake invocation.

* pseudo is run out of its components directory. This is fine as its statically linked.

* The hacks for wayland to see allarch dependencies in the multilib case are no longer needed
  and can be dropped.

* wic needed more extensive changes to work with rss and the fixes are in a separate commit series

* Various oe-selftest tweaks were needed since tests did assume the location to binaries and the
  combined sysroot in several cases.

* Most missing dependencies this work found have been sent out as separate patches as they were found
  but a few tweaks are still included here.

* A late addition is that extend_recipe_sysroot became multilib aware and able to populate multilib
  sysroots. I had hoped not to have to add that complexity but the meta-environment recipe forced my
  hand. That implementation can probably be neater but this is on the list of things to cleanup later
  at this point.

In summary, the impact people will likely see after this change:

* Recipes may fail with missing dependencies, particularly native tools like gettext-native,
  glib-2.0-native and libxml2.0-native. Some hosts have these installed and will mask these errors

* Any recipe/class using SSTATEPOSTINSTFUNCS will need that code rewriting into a postinst

* There was a separate patch series dealing with roots postinst native dependency issues. Any postinst
  which expects native tools at rootfs time will need to mark that dependency with PACKAGE_WRITE_DEPS.

There could well be other issues. This has been tested repeatedly against our autobuilders and oe-selftest
and issues found have been fixed. We believe at least OE-Core is in good shape but that doesn't mean
we've found all the issues.

Also, the logging is a bit chatty at the moment. It does help if something goes wrong and goes to the
task logfiles, not the console so I've intentionally left this like that for now. We can turn it down
easily enough in due course.

(From OE-Core rev: 809746f56df4b91af014bf6a3f28997d6698ac78)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-23 12:05:17 +00:00
Richard Purdie 022a8b58c8 meta/scripts: Various getVar/getVarFlag expansion parameter fixes
There were a few straggling expansion parameter removals left for
getVar/getVarFlag where the odd whitespace meant they were missed
on previous passes. There were also some plain broken ussages such
as:

d.getVar('ALTERNATIVE_TARGET', old_name, True)
path = d.getVar('PATH', d, True)
d.getVar('IMAGE_ROOTFS', 'True')

which I've corrected (they happend to work by luck).

(From OE-Core rev: 688f7a64917a5ce5cbe12f8e5da4d47e265d240f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-09 13:39:11 +00:00
Joshua Lock c4e2c59088 meta: remove True option to getVar calls
getVar() now defaults to expanding by default, thus remove the True
option from getVar() calls with a regex search and replace.

Search made with the following regex: getVar ?\(( ?[^,()]*), True\)

(From OE-Core rev: 7c552996597faaee2fbee185b250c0ee30ea3b5f)

Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-12-16 10:23:23 +00:00
Richard Purdie 6f03af9ae3 multilib.conf: Ensure sstate checksums don't change when using this include
When enabling multilib.conf, the world was rebuilding due to changes in the
pkg-config search path. This doesn't matter so exclude it from the checksums.

(From OE-Core rev: 22001ba163e80b114212580279339acd15fa7298)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-10-01 21:45:57 +01:00
Richard Purdie 5dbd0614f3 multilib.conf: Ensure MACHINE doesn't change target sigs
Sysroot paths (which happen to contain MACHINE) should not cause the signatures
to change every time MACHINE changes so exclude this from them.

(From OE-Core rev: 5f3773e84332e9100b8739adf4831269329e0033)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-10-01 07:43:35 +01:00
Richard Purdie caf422c669 multilib: Add TARGET_VENDOR to saved variables list
(From OE-Core rev: 4a1dec5c61f73e7cfa430271ed395094bb262f6b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-09-28 12:00:32 +01:00
Ross Burton a044db9527 multilib: let pkg-config find architecture-independent .pc files
If a multilib package depends on an allarch recipe that installs an
architecture-independent .pc file it will not be able to find the .pc file as
the recipe gets installed into the MACHINE sysroot but pkg-config looks in the
MLPREFIX-prefixed sysroot.

Solve this by extending PKG_CONFIG_PATH in multilib environments to include the
architecture-independent path in the MACHINE sysroot
(sysroots/MACHINE/usr/share/pkgconfig/).

(From OE-Core rev: 6a6dd4eb53dbf8a0c31ac2d68af5befebe727596)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-08-24 23:46:53 +01:00
Peter Seebach ef32b9f55d multilib.conf: set MULTILIB_GLOBAL_VARIANTS conditionally
It is not entirely obvious that all reasonable configurations
will have multilib.conf strictly before the file which might
want to set MULTILIB_GLOBAL_VARIANTS. The x86-ish values here
look like reasonable default guesses, but shouldn't override
an explicit setting.

(From OE-Core rev: 2645c07892abe79f73379b1ca4196f593cb3b330)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-10-30 13:01:22 +00:00
Richard Purdie 8ebe7be3d9 bitbake.conf/package: Collapse PKGDATA_DIR into a single machine specific directory
Currently we have a hierarchy of pkgdata directories and the code has to put together
a search path and look through each in turn until it finds the data it needs.

This has lead to a number of hardcoded paths and file globing which
is unpredictable and undesirable. Worse, certain tricks that should be
easy like a GL specific package architecture become problematic with the
curretn search paths.

With the modern sstate code, we can do better and construct a single pkgdata
directory for each machine in just the same way as we do for the sysroot. This
is already tried and well tested. With such a single directory, all the code that
iterated through multiple pkgdata directories and simply be removed and give
a significant simplification of the code. Even existing build directories adapt
to the change well since the package contents doesn't change, just the location
they're installed to and the stamp for them.

The only complication is the we need a different shlibs directory for each
multilib. These are only used by package.bbclass and the simple fix is to
add MLPREFIX to the shlib directory name. This means the multilib packages will
repackage and the sstate checksum will change but an existing build directory
will adapt to the changes safely.

It is close to release however I believe the benefits this patch give us
are worth consideration for inclusion and give us more options for dealing
with problems like the GL one. It also sets the ground work well for
shlibs improvements in 1.6.

(From OE-Core rev: 1b8e4abd2d9c0901d38d89d0f944fe1ffd019379)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:21:00 +01:00
Richard Purdie b9dde37eb5 multilib.conf: Workaround opkg multilib issues
Multilib with opkg hasn't worked since the --force-overwrite option was dropped in
http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=88a9f6db3482623c9cb54fb03db1045051cec9f6

Since we merged the libexecdir changes, we also need the --force-maintainer flag
to avoid conf file conflicts.

Both these changes are suboptimal however the alternative is completely broken and
these changes only affect people who have multilibs enabled and use opkg.

[YOCTO #3453]

(From OE-Core rev: 6310e66cd62aab6109027a8dce9c56bf721bea92)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-04-13 23:49:28 +01:00
Constantin Musca c0f419528f multilib.conf: add TARGET_ARCH & TARGET_SYS to MULTILIB_SAVE_VARNAME
(From OE-Core rev: 81f3dd49693a7ad2e98c182896c98fc71b01592f)

(From OE-Core rev: 92e74eb2f501b10a513e043d3d62007d8ab5f468)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:30 +00:00
Richard Purdie 8e5d8ed550 multilib.conf: Use BASELIB to set baselib, not hardcode the value
(From OE-Core rev: 1a97cab9d4856e8948025ce6f406c76a2732ec36)

(From OE-Core rev: b157ac5590a06405fd5622c7cf7c51c0a2d3cc5e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:01 +00:00
Constantin Musca 1674541ed8 multilib: fix allarch/kernel/module-base multilib issues
- skip the non-packagegroup allarch recipes in multilib_virtclass_handler
- extend PROVIDES/RPROVIDES for allarch recipes which are not packagegroups
- use variants from MULTILIB_GLOBAL_VARIANTS (lib32 lib64 libx32) to create
additional pkgdata files for multilib allarch: ${pkgdatadir}/${variant}-${PN}
and ${pkgdatadir}/runtime/${variant}-${pkg}
- use variants from MULTILIB_VARIANTS to create additional pkgdata files
for multilib kernel/module-base recipes
- add a sanity check to determine if the current multilib is in
MULTILIB_GLOBAL_VARIANTS

[YOCTO #2918]
[YOCTO #3440]
[YOCTO #3565]
[YOCTO #3568]

(From OE-Core rev: bc4da2573dfb59ea2fc4af359701818df20f7663)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-31 09:43:25 +00:00
Mark Hatle 56c677a338 multilib: Move redefinition of STAGING_DIR_KERNEL
If the STAGING_DIR_KERNEL is set in the multilib.conf, then it may be
set incorrected.  The evaluation happens before TMPDIR and LIBC are
defined in other components.

Moving the definition process to the multilib.bbclass ensures that
everything has been loaded before it is set.

(From OE-Core rev: 6bd87edc383b40e300b0ef4bf851c39b698305cd)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-10-02 11:40:50 +01:00
Bogdan Marinescu c4a7517f8a Complete recipe enablement
RP: The list of recipes in multilib.conf needs to go away and we need
to just be able to extend all recipes with the multilib class.
Tested by building and running lib32-core-image-sato-sdk.

[YOCTO #1563]

(From OE-Core rev: 5d691f1bc95dfb9109b07827b33957b1fa5b2fa4)

Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-02 18:07:18 +01:00
Richard Purdie 17a07be20e gobject-introspection: Drop the recipe, it has never worked and if it does cross compile, we can add it back
(From OE-Core rev: cc95d5472936f24f8375f4366062606595dd8124)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-28 09:20:53 +01:00
Richard Purdie e496e3df23 eds-tools: Drop this recipe, its inapproriate in OE-Core
(From OE-Core rev: 302a1251be7ec81fc1d270d9d7b6db6d140d4692)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-28 09:20:53 +01:00
Bogdan Marinescu 99ed56ff38 Multilib build fixes
1. STAGING_KERNEL_DIR was getting an invalid MLPREFIX. Fix this by forcing the expansion in multilib.conf.
2. Added multilib rule for 'perf'.

(From OE-Core rev: 71907775f601f0a48b995cc3277b61645d2e5068)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-19 17:18:09 +01:00
Ross Burton 05e2aa51cb eggdbus: remove, nothing uses it
(From OE-Core rev: 7eae2aecaddf5e285fbe9ad95d972f83b42ed176)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-19 17:18:09 +01:00
Paul Eggleton 56e0835872 libgsmd - remove
This project has been unmaintained for some time, and even the OpenMoko
project is not using it any more (in favour of FSO). Since we have ofono
in OE-Core which replaces and surpasses its functionality, we can remove
libgsmd.

(From OE-Core rev: 4cd880c61e9d74dbf1a747f3654239cadadf45ce)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-10 14:21:57 +01:00
Valentin Popa d7bafd3a2e build-appliance-image: rename from self-hosted-image
(-) renamed self-hosted-image to build-appliance-image
(-) replaced build-appliance-image description

[YOCTO #2636]

(From OE-Core rev: 04096f31778886479dac479132bded57e717653e)

Signed-off-by: Valentin Popa <valentin.popa@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:31:01 +01:00
Xiaofeng Yan 05428dac7b multilib.conf: Add the support of multilib for lsbinitscripts
Add the multilib support for this package to multilib.conf because error will
appear when building an lib32-core-image-lsb without this patch.

[YOCTO #2571]

(From OE-Core rev: 264425b0a54806c08c218bd8b500c20b8c3152f4)

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 17:27:25 +01:00
Lianhao Lu 0b2bbdaab1 multilib.conf: Added multilib support for kmod.
(From OE-Core rev: 41ec6c1eb6998de6c1fd332510c1d71ba58f1b2c)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-18 15:25:11 +01:00
Saul Wold 41296357a9 evolation-data-server: Rename from eds-dbus
[YOCTO #2316]

(From OE-Core rev: 6189a8a05620974c098d548c26502453f371fe26)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:19 +01:00
Dongxiao Xu da8dfd8ff0 multilib: extend all recipes in multilib.conf
(From OE-Core rev: 0fce63476f9a376d95ea4f926cb60cb84f7a4d48)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-08 11:55:37 -08:00
Khem Raj 7215c25ec3 task-core-tools: Divide it into 3 recipes
task-core-tools-debug, task-core-tools-profile, task-core-tools-testapps
otherwise if we choose one through PACKAGE_GROUPS all packages
are built since they are in same recipe.

(From OE-Core rev: 180227d8ff71c42e0d16ad7eb4a5f9b7d6a0c1c6)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-02-08 00:50:27 +00:00
Richard Purdie 0f4d99d207 multilib.conf: Clean up file and add missing entries for various dependencies
This patch adds in various missing dependencies to ensure the set
of recipes listed for multilib support can be cleanly built.

(From OE-Core rev: 1d2697e6f00cc3771f39f5a7d4384a22d9696b16)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-11 23:53:32 +00:00
Richard Purdie dee0fc1462 multilib.conf: Enable shadow-sysroot and libffi
Enable these two core dependencies for multilib builds, fixing
multilib build failures that were occurring. I've checked and the
recipes are multilib capable.

[YOCTO #1835]

(From OE-Core rev: db446421933d640528328e46a29f828a36d6649b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-12-21 17:24:44 +00:00
Joshua Lock da1c3e3f95 clutter-box2d: drop unbuildable clutter-box2d-1.6_0.10.0
It's very old at this point and doesn't build with recent clutter

(From OE-Core rev: 04d2bb8e83aaac856f03f3fc9772285bd82182e4)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-11-30 15:50:54 +00:00
Joshua Lock b8d6f3632c multilib.conf: remove clutter-1.6 and add clutter-1.8
clutter-1.8 is the future here.

(From OE-Core rev: f8616319f0ffba6e0400234af69df17dc036edee)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-11-30 15:50:52 +00:00
Joshua Lock d4d29f7e58 gconf: add upstream GNOME gconf 3.2.3 and drop gconf-dbus
The D-Bus backend has been integrated into upstream GConf so we can
switch to upstream and drop gconf-dbus.

I've gone for a release in the 3.2 series as we disable Gtk+, and
therefore are not impacted by the gtk+3 changes, and the D-Bus backend
was unstable before this release.

(From OE-Core rev: f952b1bc8a4f307e2e2f3941f50becd72d88421d)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-11-10 11:37:11 +00:00
Martin Jansa c09f0eb561 xserver-xf86(-dri)-lite: rename to xserver-xorg and xserver-xorg-lite
* xserver-xorg is closer to upstream naming and
  that's how it's named in OE-classic and meta-oe? It would make meta-oe
  transition easier and better to do it now then convert meta-oe to
  xserver-xf86 and then rename it back later.

(From OE-Core rev: 0b31c7200a368533df970f0efeb81e2e20c73593)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-10-11 18:08:31 +01:00
Dongxiao Xu 6f6863a258 multilib: remove the multilib handling to allarch
currently we have allarch type of recipes, which may still have
architecture dependency, like x11-common. So we need to drop the
handling to allarch in multilib case.

Also remove the PV postfix in python-pygobject DEPENDS, since multilib
code will treat a native package multilib capable.

[YOCTO #1497]
[YOCTO #1498]

(From OE-Core rev: 64c0279e6b0d2325a326058476228360898550f3)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-09-28 14:58:53 +01:00
Paul Eggleton 8c310ee0a9 task-core: split into task-core-console and task-core-x11
[YOCTO #1481]

Since tasks are referred to almost exclusively via RDEPENDS, and bitbake
will build an entire task recipe when only one of its task packages are
actually needed, building a console-only image that uses
task-core-apps-console (or less directly, has apps-console in its
IMAGE_FEATURES) will cause a build of a whole list of X11 applications
that aren't needed. Splitting the task-core recipe into X11 and console
portions prevents this issue.

(From OE-Core rev: 07407baafb728c5ae1bb283f5b02a2ac773360bc)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-09-15 11:23:57 +01:00
Dongxiao Xu 50e184e0d9 multilib: Remove recipe from multilib.conf that inherits allarch
Recipes like update-rc.d and qemu-config inherit "allarch", thus we
shouldn't add multilib BBCLASSEXTEND for them in multilib.conf.

Besides, we need to add multilib packages as the RPROVIDER contents for
those recipes, in order to avoid the NoProvider error when parsing.

[YOCTO #1471]

(From OE-Core rev: 329d864f9bbf94ad3aae8df43d63fe10e4237e4f)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-09-13 17:08:13 +01:00
Dongxiao Xu 9e48dd7411 multilib: Remove the multilib extension for linux-yocto
Kernel should be unique in a multilib system, so we remove the
linux-yocto's extension in multilib.conf

(From OE-Core rev: db78d1289705a38f0069f84101296e9309d67fa3)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-09-07 22:54:16 +01:00
Richard Purdie f9c3639238 multilib: Only build one kernel
For a given system we only want one kernel to be built. This change makes
the main kernel recipe provide all of the provides of the various enabled
multilibs hence allowing it to fulfil all the appropriate dependencies.

To make this work a global multilib class file needed to be created.

This patch also enables this multi provider functionality for "allarch"
packages.

[YOCTO #1361]

(From OE-Core rev: 2fd257f6c610624f05c8dd3fe1486364af04696f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-09-02 18:25:11 +01:00
Dongxiao Xu accab54cd5 multilib: extend multilib prefix for libsdl
libsdl is required by sato image, so extend it for multilib.

(From OE-Core rev: 88abab9ba9632e87f3a081915a69cbc5c36b4d3c)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-09-02 18:15:31 +01:00
Dongxiao Xu 6ebcc6c199 multilib: Using different sysroot for multilib recipes
Thinking of the senario that, if we already built out a 64bit image
along with the full toolchain bootstrapped, then we need to build some
32bit libraries, which needs lib32 versions of gcc and eglibc. These
toolchain recipes will bootstrap again in the same sysroot, resulting
that lib32-gcc-cross-initial will find some macros owned by eglibc have
already been defined and thus it includes non-existed headers that
provided by later lib32-eglibc.

The solution for the above issue is to use different sysroot for
multilib recipes, here we add ${MLPREFIX} in front of the machine
specific sysroot directory name.

[YOCTO #1372]

(From OE-Core rev: a1508ad1aec2d2f9ee040aa217c33193cd5bd871)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-09-02 18:15:31 +01:00
Lianhao Lu 375cf1561c utils.bbclass/multilib.class: Added misc supporting functions.
1. Added variable MULTILIB_VARIANTS to store all the instance variants
for multilib extend.

2. Added function all_multilib_tune_values to collect the variable
values for all multilib instance.

3. multilib bbclass handler will save the orignal value of all variables
defined in MULTILIB_SAVE_VARNAME.

(From OE-Core rev: 18bba910e04bff75460f408e4557d4bae21ad592)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-08-15 15:26:17 +01:00
Lianhao Lu 4ae834e747 multilib.conf: Supported multilib extend in more recipes.
Added more recipes supporting multilib extend.

(From OE-Core rev: 844b2db35ba5b2e263960aa79dee0d4eb2db3f2e)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-08-08 13:59:33 +01:00
Richard Purdie fae195515f multilib: Add missing files from broken patch merge
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-27 16:21:48 +01:00