summaryrefslogtreecommitdiffstats
path: root/meta/classes/qemu.bbclass
Commit message (Collapse)AuthorAgeFilesLines
* classes: Update classes to match new bitbake class scope functionalityRichard Purdie2022-08-121-77/+0
| | | | | | | | | Move classes to classes-global or classes-recipe as appropriate to take advantage of new bitbake functionality to check class scope/usage. (From OE-Core rev: f5c128008365e141082c129417eb72d2751e8045) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes: Add SPDX license identifiersRichard Purdie2022-08-121-0/+2
| | | | | | | | | | | | As stated in our top level license files, the license is MIT unless otherwise stated. Add SPDX identifers accordingly. Replace older license statementa with the standardised syntax. Also drop "All Rights Reserved" expression as it isn't used now, doesn't mean anything and is confusing. (From OE-Core rev: 081a391fe09a21265881e39a2a496e4e10b4f80b) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes: Add copyright statements to files without oneRichard Purdie2022-08-121-0/+4
| | | | | | | | | Where there isn't a copyright statement, add one to make it explicit. Also drop editor config lines where they were present. (From OE-Core rev: 880c1ea3edc8edef974e65b2d424fc36809ea034) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qemu.bbclass: Extend ppc/ppc64 extra optionsKhem Raj2022-04-261-1/+5
| | | | | | | | | | | | | | Some recipes are marked machine specific which need qemu usermode during build eg. if they use meson build system, which means they wont get right -cpu settings to run qemu-ppc/qemu-ppc64 and build fails, this ensures that we set the right options when PACKAGE_ARCH is set to MACHINE_ARCH on ppc/ppc64 qemu (From OE-Core rev: 9f71bbe65a458f08cd8ede6522c8b988603202a0) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Revert "qemu.bbclass: drop OLDEST_KERNEL reference"Richard Purdie2022-01-071-1/+1
| | | | | | | | | | This patch was merged on the basis that it wasn't needed with recent versions of qemu. That isn't true and has been showen to cause failures for aarch64 on centos7 hosts. Revert the patch as we'll need a different solution. This reverts commit 94b371e1c9e3cea787d70d6d7a09f7d3d69a30aa. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qemu.bbclass: drop OLDEST_KERNEL referenceMatt Madison2021-12-201-1/+1
| | | | | | | | | | | which is introducing task hash changes for some allarch package builds, and should no longer be needed with recent versions of qemu. (From OE-Core rev: 3a3cfb5f48fc92e548333e5856f3d3fcce27da46) Signed-off-by: Matt Madison <matt@madison.systems> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Convert to new override syntaxRichard Purdie2021-08-021-1/+1
| | | | | | | | | | | | This is the result of automated script conversion: scripts/contrib/convert-overrides.py <oe-core directory> converting the metadata to use ":" as the override character instead of "_". (From OE-Core rev: 42344347be29f0997cc2f7636d9603b1fe1875ae) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qemu: Enable ppc64le support for qemu-usermodeKhem Raj2020-01-221-0/+3
| | | | | | | | | glibc defines minimum kernel needed to be 3.10.0 for LE ppc64 (From OE-Core rev: c1c296a42920af6725706bdea8e61b8c4f5f14a8) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta/scripts: Various getVar/getVarFlag expansion parameter fixesRichard Purdie2017-01-091-1/+1
| | | | | | | | | | | | | | | | | 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>
* meta: remove True option to getVar callsJoshua Lock2016-12-161-5/+5
| | | | | | | | | | | | | 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>
* qemu.bbclass: Allow use different QEMU binary depending of targetOtavio Salvador2016-09-241-0/+5
| | | | | | | | | | | | | | There are architectures which support running in 32 and 64 bit flavours however the simulation is provided in a specific QEMU setting, requiring us to use a different binary. This patch allow this to be done using, for example: QEMU_TARGET_BINARY_ppce5500 = "qemu-ppc64abi32" (From OE-Core rev: 9b6d414fd27932ed1325de54e8e867c75b340e3d) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta/classes/qemu.bbclass: set -cpu of ppce5500/ppce6500 to e500mcZhenhua Luo2016-04-151-4/+4
| | | | | | | | | | | | | | The e5500 and e6500 cpu types are not supported by native qemu, set the value of -cpu to e500mc. Without this change, build will fail for packages which use qemuwrapper in compile phase due to the following error. | Unable to find CPU definition e.g. gobject-introspection (From OE-Core rev: e06c5c5447350049ebd1a6245fc2dd2608b265e5) Signed-off-by: Zhenhua Luo <zhenhua.luo@nxp.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qemu.bbclass: add qemu_wrapper_cmdline()Alexander Kanavin2016-03-091-9/+14
| | | | | | | | | | | | | The class had qemu_run_binary() which was not suitable for gobject-introspection, as it required the name of the binary to run. qemu_wrapper_cmdline() returns just the command line string needed to run binaries, and does not require the binary name. (From OE-Core rev: 0b68f0632312392cbd20bfcb9ed4895cfc9883ff) Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qemu.bbclass: clarify QEMU_EXTRAOPTIONSAndre McCurdy2016-01-301-7/+9
| | | | | | | | | | | | | | | | | | | | | | QEMU_EXTRAOPTIONS is a way to add PACKAGE_ARCH specific options to the qemu_run_binary qemu commandline. The base QEMU_EXTRAOPTIONS variable (ie without a PACKAGE_ARCH suffix) is not used, so defining it, either directly or via an over-ride has no effect. Although previously an over-ride for _armv7a was used, it did nothing for most armv7a builds, which typically use PACKAGE_ARCH values such as "cortexa9hf-neon". In practice this worked OK since without a -cpu option, qemu-arm will default to emulating a CPU which supports all required architecture levels. qemu-arm (v2.5.0) with no -cpu option has been confirmed to successfully run binaries built for armv7ve. (From OE-Core rev: 62b25b3489b44969e4adad657daebfaffdb4de56) Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qemu.bbclass: fix vardeps of QEMU_OPTIONSChristopher Larson2015-11-241-0/+1
| | | | | | | | | | | | The variable name for QEMU_EXTRAOPTIONS is constructed programmatically, so we need an explicit variable dependency, otherwise changes to it won't cause e.g. qemuwrapper-cross to be rebuilt. (From OE-Core rev: 7740f214fffd6278f801899fc5e45f5720cbb544) Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qemu.bbclass: correct the fsl ppc QEMU_EXTRAOPTIONSChristopher Larson2015-11-241-6/+6
| | | | | | | | | | | These need to be based on PACKAGE_ARCH rather than TARGET_ARCH, as we aren't using overrides for this. (From OE-Core rev: 46f41df60491990dc41f0514f63b304ac51b67d1) Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qemu/libc-package: Fix qemu option handling1.8_M1Richard Purdie2014-12-051-13/+16
| | | | | | | | | | | | | | | | The 'overrides' here are PACKAGE_ARCH based and hence not overrides as such and the _append wasn't working in many cases. This adjusts the code to use PACKAGE_ARCH as the accessor and ensures the variables work as expected. This fixes various segfaults and ensures postinsts run at build time rather than on the target system. The bug was introduced in http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=7efad8a1b56df6ee07c12ad360c0493d7b1d6d23. (From OE-Core rev: 219e793907406eabf632e784e3a11ab9acb77cfb) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qemu.bbclass: add -r ${OLDEST_KERNEL} parameterMartin Jansa2014-09-101-12/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * in some cases (e.g. with external toolchain which doesn't respect our reasonably old version set in OLDEST_KERNEL) it's possible to have libc which requires newer kernel than what we have on builders, qemu supports -r param to use different uname than what's returned by host system. * change qemu_run_binary to pass -r ${OLDEST_KERNEL} and add the same to QEMU_OPTIONS which are used by qemuwrapper-cross * maybe we should eventually convert all qemu_run_binary usages always include qemuwrapper-cross dependency and always call qemu through that (it seems very strange that qemu_target_binary is called from qemuwrapper and for allarch recipes it can return qemu-allarch as qemu binary). qemu_run_binary is used by: meta/classes/gtk-immodules-cache.bbclass: ${@qemu_run_binary(d, '$D', '${bindir}/gtk-query-immodules-$maj_ver.0')} \ meta/classes/qemu.bbclass:def qemu_run_binary(data, rootfs_path, binary): meta/recipes-core/systemd/systemd_213.bb: ${@qemu_run_binary(d, '$D', '${base_bindir}/udevadm')} hwdb --update \ meta/recipes-graphics/pango/pango.inc: ${@qemu_run_binary(d, '$D','${bindir}/${MLPREFIX}pango-querymodules')} \ and qemuwrapper directly by: scripts/postinst-intercepts/update_font_cache:PSEUDO_UNLOAD=1 qemuwrapper -L $D -E LD_LIBRARY_PATH=$D/${libdir}:$D/${base_libdir}\ scripts/postinst-intercepts/update_pixbuf_cache:PSEUDO_UNLOAD=1 qemuwrapper -L $D -E LD_LIBRARY_PATH=$D/${libdir}:$D/${base_libdir}\ (From OE-Core rev: 1f0bff320077f4d9f2ee51096a1438e8cae9dd0d) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bitbake.conf/qemu: Move QEMU_OPTIONS to qemu.bbclassRichard Purdie2014-06-141-0/+12
| | | | | | | | | | The QEMU_OPTIONS variables belong in qemu.bbclass so move them there. The only users of them inherit qemu.bbclass. There is no point in pushing these into every recipe. (From OE-Core rev: 5824293de37919e89f60192836997281933e23d6) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Revert "qemu.bbclass: Use the correct qemu binary in multilib cases"Laurentiu Palcu2013-04-291-3/+1
| | | | | | | | | | | | | | | | | This reverts commit 9f5a6f89d9f4a6c7bed3b163e6eaa764d762f523. The reason for reverting this is: * qemuwrapper has now a fallback method; * when using multilib, calling qemu_target_binary from recipes would always point to the qemu binary corresponding to the machine architecture. Hence, postinstalls needing to use qemu would call the wrong qemu user emulation binary; (From OE-Core rev: 15408466515cec7cbb4c394aa203c87b6165f884) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* postinst-intercepts, qemu.bbclass: fix segfaults in postinstallsLaurentiu Palcu2013-04-101-1/+6
| | | | | | | | | | | | | | | | Postinstalls that use qemu are throwing a segmentation fault when building for qemux86-64 on a 64bit host (it might also happen for qemux86 if building on a 32bit host but I didn't test). It looks like qemu looks for ld.so.cache which is not found because it is generated after rootfs_(rpm|ipk|deb)_do_rootfs is called and then it tries to load libraries from the default paths (which are the host's). In order to avoid this, pass the LD_LIBRARY_PATH explicitly to the target's dynamic loader. (From OE-Core rev: 48e8b613b3f5c7b1d917bf3147606d44072ce49e) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* postinst-intercepts, qemu.bbclass: fix issue on 32 bit hostsLaurentiu Palcu2013-04-051-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The intercept scripts fail to run on 32 bit hosts. Apparently, the current approach worked on 64 bit hosts due to the larger virtual address space (probably). On 32 bit hosts, however, calling the target binary like: qemu-arm ld-linux.so --library-path /lib:/usr/lib arm_binary fails with: arm_binary: error while loading shared libraries: arm_binary: failed to map segment from shared object: Operation not permitted When run like this, qemu-arm fails to map the arm_binary executable in memory because it's hitting the lower limit of /proc/sys/vm/mmap_min_addr. That's because it loads the ld-linux.so binary successfully, taking into account mmap_min_addr, runs it, and then ld-linux.so will map the arm_binary at a fixed address but this will fail because it is below mmap_min_addr. The qemu's guest base probing, apparently, doesn't work fine when a program runs inside other. One way around this would be to set mmap_min_addr to 0 (on recent distributions is set to 65536 to avoid "kernel NULL pointer dereference" defects) but this approach is not safe. The other way is to call the binary directly but providing qemu with a prefix (-L option) in order to find the elf interpreter correctly. This way, both the target binary and dynamic loader are mapped into memory under qemu's control and, only after, the dynamic loader is started. [YOCTO #4179] (From OE-Core rev: 78f91e08c8a7b0f0c831a087f7c89e2c76047e7a) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qemu.bbclass: fix segfaults when running through pseudoLaurentiu Palcu2013-02-071-1/+1
| | | | | | | | | | | | qemu user binaries sometimes segfault when running them through pseudo. So, set PSEUDO_UNLOAD to 1 before running any qemu binary. [YOCTO #3788] (From OE-Core rev: 688e9485980de0f29aa00e24ce53a3efd3a3a7cc) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qemu.bbclass: Use the correct qemu binary in multilib casesRichard Purdie2013-02-071-1/+3
| | | | | | | | | For example with a lib32 multilib, we need to still use the 64 bit qemu binary in case we do encounter a 64 bit binary. (From OE-Core rev: e8ec13a26217bf473504ae4aab22b134dd9dffff) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qemu.bbclass: return qemuwrapper instead of qemu-allarchLaurentiu Palcu2013-02-061-1/+5
| | | | | | | | | | | | | | | When qemu bbclass is inherited from a recipe that is not architecture dependent, qemu_run_binary will return "qemu-allarch". However this binary does not exist. Instead, return "qemuwrapper" which will, in turn, execute the right binary for the target the image was built for. [YOCTO #2599] (From OE-Core rev: 149a564bba7d3e1c2054ae6d908835ebd95b9084) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qemu.bbclass: add qemu_run_binary() functionLaurentiu Palcu2013-01-101-0/+17
| | | | | | | | | | [YOCTO #3602] (From OE-Core rev: 2cfbe0bd9d02ab8c054e5bc879a2181c6a7e3719) Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qemu.bbclass: Map the qemu binary name for powerpc64Khem Raj2012-07-261-0/+2
| | | | | | | | (From OE-Core rev: b9c7b050eb3e51c98f95feb8cf19f45ff2cc8700) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Remove a number of unneeded import os/bb callsRichard Purdie2012-07-191-2/+0
| | | | | | | | | | The bb and os modules are always imported so having these extra import calls are a waste of space/execution time. They also set a bad example for people copy and pasting code so clean them up. (From OE-Core rev: 7d674820958be3a7051ea619effe1a6061d9cbe2) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Convert tab indentation in python functions into four-spaceRichard Purdie2012-07-191-7/+7
| | | | | | (From OE-Core rev: 604d46c686d06d62d5a07b9c7f4fa170f99307d8) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Fix common typoes "existant", "dependant" and variationsRobert P. J. Day2012-03-221-1/+1
| | | | | | | | | | Fix a couple common typoes, all contained within comments so there should be no effect on functionality. (From OE-Core rev: dc52c3cbf3a7b7242d53019f7643495eb40c0566) Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: Convert getVar/getVarFlag(xxx, 1) -> (xxx, True)Richard Purdie2012-03-051-1/+1
| | | | | | | | | | | | Using "1" with getVar is bad coding style and "True" is preferred. This patch is a sed over the meta directory of the form: sed \ -e 's:\(\.getVar([^,()]*, \)1 *):\1True):g' \ -e 's:\(\.getVarFlag([^,()]*, [^,()]*, \)1 *):\1True):g' \ -i `grep -ril getVar *` Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Convert to use direct access to the data store (instead of bb.data.*Var*())Richard Purdie2011-11-101-1/+1
| | | | | | | | | | | | | | | | | This is the result of running the following over the metadata: sed \ -e 's:bb.data.\(setVar([^,()]*,[^,()]*\), *\([^ )]*\) *):\2.\1):g' \ -e 's:bb.data.\(setVarFlag([^,()]*,[^,()]*,[^,()]*\), *\([^) ]*\) *):\2.\1):g' \ -e 's:bb.data.\(getVar([^,()]*\), *\([^(), ]*\) *,\([^)]*\)):\2.\1,\3):g' \ -e 's:bb.data.\(getVarFlag([^,()]*,[^,()]*\), *\([^(), ]*\) *,\([^)]*\)):\2.\1,\3):g' \ -e 's:bb.data.\(getVarFlag([^,()]*,[^,()]*\), *\([^() ]*\) *):\2.\1):g' \ -e 's:bb.data.\(getVar([^,()]*\), *\([^) ]*\) *):\2.\1):g' \ -i `grep -ril bb.data *` (From OE-Core rev: b22831fd63164c4db9c0b72934d7d734a6585251) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* eglibc: import eglibc_2.12 recipe from OENitin A Kamble2010-08-131-0/+15
use http proto for svn checkout cosmetic cleanups to metadata Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>