summaryrefslogtreecommitdiffstats
path: root/meta/classes/qemu.bbclass
Commit message (Collapse)AuthorAgeFilesLines
* Revert "qemu.bbclass: Use the correct qemu binary in multilib cases"Laurentiu Palcu2013-05-221-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 master rev: 15408466515cec7cbb4c394aa203c87b6165f884) (From OE-Core rev: e57f9b992192f7d7877fbb69af764357a21fce70) 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>