poky/scripts
Laurentiu Palcu 1872ee316b postinst-intercepts, qemu.bbclass: fix issue on 32 bit hosts
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>
2013-04-05 17:36:34 +01:00
..
contrib python: adding missing runtime dependency python-io to python-pprint 2013-04-04 14:04:42 +01:00
jhbuild Convert to use direct access to the data store (instead of bb.data.*Var*()) 2011-11-10 11:51:19 +00:00
lib/bsp scripts/lib/bsp: replace mesa-dri with mesa in machine.conf files 2013-03-22 17:07:17 +00:00
native-intercept native.bbclass: Add a simple chown intercept command 2011-06-23 21:08:01 +01:00
postinst-intercepts postinst-intercepts, qemu.bbclass: fix issue on 32 bit hosts 2013-04-05 17:36:34 +01:00
pybootchartgui scripts/pybootchart: Allow minimum task length to be configured from the commandline 2012-11-20 15:31:48 +00:00
qemuimage-tests qemu-testlib: Add python helper and simplify shell 2013-03-19 11:48:30 +00:00
bitbake scripts/bitbake: Remove all instances of paths to a layer's scripts directory. 2013-02-15 12:17:35 +00:00
bitbake-prserv-tool bitbake-prserv-tool: show error when export file does not exist 2013-02-06 16:52:19 +00:00
bitbake-whatchanged bitbake-whatchanged: print what is about to happen 2013-03-07 11:14:37 +00:00
buildhistory-collect-srcrevs classes/buildhistory: improve SRCREV recording 2013-03-29 10:40:54 +00:00
buildhistory-diff buildhistory-diff: prepend to sys.path 2013-01-09 15:05:25 +00:00
cleanup-workdir scripts/cleanup-workdir: Adpat to new workdir layout 2012-11-24 15:12:27 +00:00
combo-layer scipts/combo-layer: Fix check_rev_branch() for cases where the revision is on more than one branch 2012-10-18 12:13:42 +01:00
combo-layer-hook-default.sh scripts/combo-layer: fix still overzealous regex in default hook script 2011-09-21 13:42:49 +01:00
combo-layer.conf.example scripts/combo-layer: add branch option to example config 2012-02-21 17:00:46 +00:00
cp-noerror scripts/cp-noerror: Try and use hardlinks if possible 2012-10-18 12:13:46 +01:00
create-lsb-image create-lsb-iamge:Fix bugs 2011-05-04 00:54:39 +01:00
create-pull-request create-pull-request: Error message on missing -u 2013-02-08 14:50:36 +00:00
create-recipe scripts/create-recipe: Bugfixes for create-recipe easy_install handling. 2013-02-08 14:50:36 +00:00
crosstap crosstap: handle hyphenated x86_64 target arch 2013-02-05 15:22:45 +00:00
gen-site-config siteconfig: generate configuration data caches for autoconf 2010-09-03 10:50:02 +01:00
help2man Remove help2man dependency 2011-10-04 13:46:19 +01:00
hob scripts/hob: disable sanity checks when launching 2012-04-23 23:04:43 +01:00
multilib_header_wrapper.h multilib_header.bbclass: Add oe_multilib_header wrapper 2011-07-27 15:45:47 +01:00
oe-buildenv-internal bitbake.conf: add STAMPS_DIR for constructing STAMP 2013-03-07 11:14:37 +00:00
oe-find-native-sysroot oe-find-native-sysroot: show bitbake errors to user 2012-09-28 11:07:39 +01:00
oe-git-proxy oe-git-proxy: Use socat instead of BSD nc 2013-02-11 22:54:04 +00:00
oe-pkgdata-util scripts/oe-pkgdata-util: exclude unpackaged in glob output 2012-07-31 12:21:30 +01:00
oe-setup-builddir oe-setup-builddir: Possibility to customize text. 2013-03-29 10:40:55 +00:00
oe-setup-rpmrepo scripts/oe-setup-rpmrepo: use setup_tmpdir from runqemu 2011-09-28 21:41:44 +01:00
oe-trim-schemas scripts/oe-setup-builddir: Fix up OE-Core/Poky mismatch for now (and fix permissions) 2011-04-21 19:19:33 +01:00
opkg-query-helper.py Rework installation of dev, dbg, doc, and locale packages 2012-07-29 10:16:14 +01:00
qemuimage-testlib scripts/qemuimage-testlib: Dump extra info if the network doesn't come up 2013-04-04 23:25:22 +01:00
qemuimage-testlib-pythonhelper qemuimage-testlib-pythonhelper: Fix process mixups 2013-04-05 11:13:53 +01:00
README Further cleanup of various poky references 2011-04-21 12:56:16 +01:00
relocate_sdk.py relocate_sdk.py: allow relocate_sdk.py to work with python 2.4.x 2013-02-12 13:11:22 +00:00
rootfs_rpm-extract-postinst.awk meta/classes/rootfs_rpm.bbclass: re implement base on rpm5 2010-07-24 00:46:57 +01:00
rpm2cpio.sh rpm2cpio.sh: make compression tests case-insensitive 2012-01-03 12:14:39 +00:00
runqemu runqemu: Improve error handling/exit codes 2013-03-20 11:53:06 +00:00
runqemu-addptable2image scripts/oe-setup-builddir: Fix up OE-Core/Poky mismatch for now (and fix permissions) 2011-04-21 19:19:33 +01:00
runqemu-export-rootfs runqemu: allow multiple unfs instances to run simultaneously 2012-10-04 14:10:56 +01:00
runqemu-extract-sdk runqemu-export-rootfs and friends: don't put pseudo db in target fs 2012-08-29 16:02:10 -07:00
runqemu-gen-tapdevs runqemu: work with tap device names that end with a colon 2012-09-24 11:30:36 +01:00
runqemu-ifdown Further cleanup of various poky references 2011-04-21 12:56:16 +01:00
runqemu-ifup runqemu-ifup: enable arp proxying 2012-06-08 11:43:20 +01:00
runqemu-internal qemu script: explicitly set 32 bit depth 2013-04-03 17:01:13 +01:00
runqemu.README scripts/runqemu.README: Clean this up to accurately reflect what the runqemu command now does 2011-04-21 12:56:13 +01:00
send-pull-request send-pull-request: add extra CC argument 2013-02-06 09:37:22 +00:00
sstate-cache-management.sh scripts/sstate-cache-management.sh: fix return value by adding exit 0 2013-04-05 11:13:53 +01:00
sstate-diff-machines.sh scripts/sstate-diff-machines.sh: add simple script to compare sstate checksums between MACHINEs 2013-01-07 12:06:27 +00:00
sstate-sysroot-cruft.sh scripts/sstate-sysroot-cruft.sh: add simple script to find files in sysroots not tracked by sstate 2013-01-07 12:06:27 +00:00
swabber-strace-attach scripts: replace os.system with subprocess.call 2012-05-30 12:04:45 +01:00
test-reexec test-reexec: Add script to address issues when task re-execution 2012-05-18 15:25:11 +01:00
wipe-sysroot scripts/wipe-sysroot: add script to safely wipe the sysroots 2013-02-04 13:18:28 +00:00
yocto-bsp yocto-bsp: add basic git connectivity check 2013-01-16 12:08:01 +00:00
yocto-kernel yocto-kernel: add support for destroying recipe-space kernel features 2013-03-17 23:10:28 +00:00
yocto-layer yocto-layer: add optional layer priority param 2013-01-20 13:05:39 +00:00

This directory contains Various useful scripts for working with OE builds