mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00

A 500 KB source file is always harder to manage, and can have section title conflicts. So, the "Common Tasks" document is gone and all its constituents are moved up one level. You now have 40 chapters in the Development Tasks Manual. (From yocto-docs rev: 8a45bc469411410020b8e688c137395fcaf3761b) Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
55 lines
2.0 KiB
ReStructuredText
55 lines
2.0 KiB
ReStructuredText
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
|
|
|
|
Using x32 psABI
|
|
***************
|
|
|
|
x32 processor-specific Application Binary Interface (`x32
|
|
psABI <https://software.intel.com/en-us/node/628948>`__) is a native
|
|
32-bit processor-specific ABI for Intel 64 (x86-64) architectures. An
|
|
ABI defines the calling conventions between functions in a processing
|
|
environment. The interface determines what registers are used and what
|
|
the sizes are for various C data types.
|
|
|
|
Some processing environments prefer using 32-bit applications even when
|
|
running on Intel 64-bit platforms. Consider the i386 psABI, which is a
|
|
very old 32-bit ABI for Intel 64-bit platforms. The i386 psABI does not
|
|
provide efficient use and access of the Intel 64-bit processor
|
|
resources, leaving the system underutilized. Now consider the x86_64
|
|
psABI. This ABI is newer and uses 64-bits for data sizes and program
|
|
pointers. The extra bits increase the footprint size of the programs,
|
|
libraries, and also increases the memory and file system size
|
|
requirements. Executing under the x32 psABI enables user programs to
|
|
utilize CPU and system resources more efficiently while keeping the
|
|
memory footprint of the applications low. Extra bits are used for
|
|
registers but not for addressing mechanisms.
|
|
|
|
The Yocto Project supports the final specifications of x32 psABI as
|
|
follows:
|
|
|
|
- You can create packages and images in x32 psABI format on x86_64
|
|
architecture targets.
|
|
|
|
- You can successfully build recipes with the x32 toolchain.
|
|
|
|
- You can create and boot ``core-image-minimal`` and
|
|
``core-image-sato`` images.
|
|
|
|
- There is RPM Package Manager (RPM) support for x32 binaries.
|
|
|
|
- There is support for large images.
|
|
|
|
To use the x32 psABI, you need to edit your ``conf/local.conf``
|
|
configuration file as follows::
|
|
|
|
MACHINE = "qemux86-64"
|
|
DEFAULTTUNE = "x86-64-x32"
|
|
baselib = "${@d.getVar('BASE_LIB:tune-' + (d.getVar('DEFAULTTUNE') \
|
|
or 'INVALID')) or 'lib'}"
|
|
|
|
Once you have set
|
|
up your configuration file, use BitBake to build an image that supports
|
|
the x32 psABI. Here is an example::
|
|
|
|
$ bitbake core-image-sato
|
|
|