aboutsummaryrefslogtreecommitdiffstats
path: root/meta/classes/multilib_global.bbclass
AgeCommit message (Collapse)Author
2017-12-10multilib_global: Handle PREFERRED_RPROVIDERRichard Purdie
Running: $ oe-selftest -r sstatetests.SStateTests.test_sstate_sametune_samesigs after commit cdcebd81c872cb7386c658998e27cf24e1d0447c results in: NOTE: Resolving any missing task queue dependencies NOTE: Multiple providers are available for runtime lib32-initd-functions (lib32-initscripts, lib32-lsbinitscripts) Consider defining a PREFERRED_RPROVIDER entry to match lib32-initd-functions and will occasionally pick a different value on the second stamps run causing a test failure. Update the multilib code to handle PREFERRED_RPROVIDER too. There is a bigger worry here which is why the builds aren't deterministic. This is caused by a bug in bitbake's providers.py and a separate fix will be sent for that which would cause this test to always pass or always fail. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-15classes: Drop now unneeded update_data callsRichard Purdie
Now that the datastore works dynamically we don't need the update_data calls so we can just remove them. They're not actually done anything at all for a while. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-19multilib_global: Drop pointless event mask/code filteringRichard Purdie
This code was pointless so cleanup, drop the unused event and the filtering is no longer needed. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-12-16meta: remove True option to getVar callsJoshua Lock
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\) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-04Fix random python backtrace in mutlilib handling code.Jeremy Puhlman
newval is not defined in all cases. Set to None and check if it is set. File "/local/foo/builds/x86/layers/openembedded-core/meta/classes/multilib_global.bbclass", line 90, in preferred_ml_updates(d=<bb.data_smart.DataSmart object at 0xf6fd528c>): if not d.getVar(newname, False): > d.setVar(newname, localdata.expand(newval)) # Avoid future variable key expansion UnboundLocalError: local variable 'newval' referenced before assignment Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-10-01multilib_global: Add handling of SIGGEN variables for multilibRichard Purdie
multilib task signatures turned out to have issues since SIGGEN_EXCLUDERECIPES_ABISAFE and SIGGEN_EXCLUDE_SAFE_RECIPE_DEP did not have multilib mappings. This adds those mappings in which in turn improves multilib task checksums to match the standard non-mulitlib versions. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-31multilib_global: Fix PREFERRED_VERSION mapping for gcc-cross-canadianRichard Purdie
Our multilib cross toolchains have <ml_prefix> as a prefix however we only have a single gcc-cross-canadian for each arch and it is not prefixed even in the multilib case. We can have two versions of gcc-cross-canadian, 32 and 64 bit. This fixes the multilib PREFERRED_VERSION mapping code so that no prefix is added to the preferred version and therefore the right versions of gcc-cross-canadian are used. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-07multilib_global: expand multilib pref values properlyChristopher Larson
This ensures that in cases where the preference value changes when the multilib override is applied, we correctly expand it in that context. For example, for `PREFERRED_PROVIDER_${TARGET_PREFIX}gcc = "gcc-external-cross-${TARGET_ARCH}"`, when it sets the prefixed version of this, we want TARGET_ARCH expanded with the multilib applied, otherwise the arch suffix will be incorrect for that context. We ran into this trying to use preferences in meta-sourcery along with multilibs. We worked around it there via PNBLACKLIST, but this fix should still go into the core. Signed-off-by: Christopher Larson <kergoth@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-06-16multilib_global: Stop empty space influencing RPROVIDESRichard Purdie
If the resulting RPROVIDES is empty, don't set it. This streamlines pkgdata slightly removing empty values and avoids other errors which confuse the datastore when the variable is best left unset. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15multilib_global.bbclass: PREFERRED_PROVIDERS for multilibsPeter Seebach
The code in base.bbclass to spread PREFERRED_PROVIDERS values to multilibs doesn't work for things which rely on TARGET_PREFIX, such as virtual/${TARGET_PREFIX}gcc. This is because the expansion of TARGET_PREFIX produces the wrong value if executed prior to the assignment of TARGET_VENDOR_virtclass-multilib-libxx, which will always happen since that assignment doesn't happen until recipe parsing, but the PREFERRED_PROVIDERS expansion is happening around ConfigParsed. To solve this, we make a couple of changes. First, the creation of the TARGET_VENDOR override values is moved into a new ConfigParsed event handler in multilib_global. Second, the preferred_ml_updates() function's code is moved into that function too. It seems safe to assume that PREFERRED_PROVIDER values only need to be spread to other multilibs when multilibs are in use. I don't think this directly affects any use cases that don't involve third-party or alternative toolchains. Signed-off-by: Peter Seebach <peter.seebach@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-06-14classes/conf: Add eventmasks for event handlersRichard Purdie
Now that bitbake supports masking events for event handlers, lets use this so event handlers are only called for events they care about. This lets us simplify the code indentation a bit at least as well as mildly improving the event handling performance. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-09classes/recipes/lib: Fix various python whitespace issuesRichard Purdie
There are some left over tab characters in the python functions. This removes them and resolves python 3 errors. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-31multilib: fix allarch/kernel/module-base multilib issuesConstantin Musca
- 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] Signed-off-by: Constantin Musca <constantinx.musca@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-09-26packagedata/multilib: Fix search patch for multilib buildsRichard Purdie
The current multilib search path code for packagedata is flawed since it doesn't correctly handle changes in the TARGET_VENDOR/TARGET_OS that multilib may make. This patch enhances the code to correctly build the search paths so multilib packagedata is found correctly. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-05multilib: Abstract class extension code into classextend.pyRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-09-28multilib: remove the multilib handling to allarchDongxiao Xu
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] Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2011-09-21multilib_global.bbclass: Fix non-multilib package providesMark Hatle
In non-multilib packages, configured in a multilib configuration we need to adjust the system provides and rprovides to include the virtual multilib variant. This resolves a problem introduced in the 329d864f9bbf94ad3aae8df43d63fe10e4237e4f commit. Where "allarch" packages were suddenly providing all variants of an object. Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
2011-09-13multilib: Remove recipe from multilib.conf that inherits allarchDongxiao Xu
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] Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-09-07multilib_global.bbclass: handle kernel-module-* for multilibDongxiao Xu
bitbake would report failed dependency of kernel-module-* when testing multilib. kernel-module-* are recommended by some other recipes. Do not extend name for kernel-module-* related packages. [YOCTO #1456] Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-09-02multilib: Only build one kernelRichard Purdie
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] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>