Go to file
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
bitbake bitbake: propertydialog adjustments for package.bbclass 2013-04-04 14:10:56 +01:00
documentation ref-manual: Added preliminary migration raw text. 2013-04-04 14:13:46 +01:00
meta postinst-intercepts, qemu.bbclass: fix issue on 32 bit hosts 2013-04-05 17:36:34 +01:00
meta-hob layer.conf: avoid unnecessary early expansion with := 2013-03-19 11:54:22 +00:00
meta-skeleton core-image-multilib-example: Location of core-image-sato.bb changed 2013-03-20 17:26:16 +00:00
meta-yocto poky.conf: Use weaker assignment for PREMIRROR 2013-04-03 17:01:14 +01:00
meta-yocto-bsp atom-pc: add i965 Mesa driver so GL works on i965 onwards 2013-04-05 12:44:28 +01:00
scripts postinst-intercepts, qemu.bbclass: fix issue on 32 bit hosts 2013-04-05 17:36:34 +01:00
.gitignore gitignore: only ignore meta- directories 2013-01-15 08:12:01 +00:00
LICENSE LICENSE: Clarify the license recipe source code is under 2010-06-10 10:13:18 +01:00
oe-init-build-env Various typoes fixed, all comments or output strings. 2012-03-26 12:13:05 +01:00
README README: Clarify where to send patches 2012-08-22 14:05:00 +01:00
README.hardware README.hardware: extend USB-ZIP instructions 2012-04-01 12:52:03 +01:00

Poky

Poky is an integration of various components to form a complete prepackaged build system and development environment. It features support for building customised embedded device style images. There are reference demo images featuring a X11/Matchbox/GTK themed UI called Sato. The system supports cross-architecture application development using QEMU emulation and a standalone toolchain and SDK with IDE integration.

Additional information on the specifics of hardware that Poky supports is available in README.hardware. Further hardware support can easily be added in the form of layers which extend the systems capabilities in a modular way.

As an integration layer Poky consists of several upstream projects such as BitBake, OpenEmbedded-Core, Yocto documentation and various sources of information e.g. for the hardware support. Poky is in turn a component of the Yocto Project.

The Yocto Project has extensive documentation about the system including a reference manual which can be found at: http://yoctoproject.org/documentation

OpenEmbedded-Core is a layer containing the core metadata for current versions of OpenEmbedded. It is distro-less (can build a functional image with DISTRO = "") and contains only emulated machine support.

For information about OpenEmbedded, see the OpenEmbedded website: http://www.openembedded.org/

Where to Send Patches

As Poky is an integration repository, patches against the various components should be sent to their respective upstreams.

bitbake: bitbake-devel@lists.openembedded.org

meta-yocto: poky@yoctoproject.org

Most everything else should be sent to the OpenEmbedded Core mailing list. If in doubt, check the oe-core git repository for the content you intend to modify. Before sending, be sure the patches apply cleanly to the current oe-core git repository. openembedded-core@lists.openembedded.org

Note: The scripts directory should be treated with extra care as it is a mix of oe-core and poky-specific files.