1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-01-11 15:00:39 +00:00
Files
meta-arm/meta-arm-toolchain
Romain Naour de47f836e2 external-arm-toolchain: rebuild libmvec.so symlink if any
On some architectures (namely Aarch64), glibc may provide a libmvec
library since glibc 2.22, which programs built with gcc OpenMP
support might get linked to.

In order for these programs to work on the target, we need to copy this
library to the target filesystem.

Make sure that libmvec.so symlink is correct with or without usermerge
enabled otherwise libmvec.so symlink is broken.

For more details on libmvec, see
https://sourceware.org/glibc/wiki/libmvec.

Signed-off-by: Romain Naour <romain.naour@smile.fr>
Acked-by: Denys Dmytriyenko <denys@konsulko.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2024-11-14 16:15:33 -05:00
..
2023-06-13 10:11:37 -04:00

meta-arm-toolchain Yocto Layer

This layer contains recipes for the prebuilt GNU Arm toolchains.

Information regarding contributing, reporting bugs, etc can be found in the top-level meta-arm readme file.

Recipes for pre-built GNU Arm toolchain for Linux development are provided under recipes-devtools/external-arm-toolchain/.

external-arm-toolchain.bb


This recipe provides support for pre-built GNU toolchains targeting processors
from the Arm Cortex-A family and implementing the Arm A-profile architecture.

Usage
^^^^^

In order to use any of pre-built Arm toolchain versions (8.2, 8.3, 9.2 and so
on), a user needs to download and untar tool-set on host machine at a particular
installation path eg: ``/opt/toolchain/``. Then user needs to specify following
in ``conf/local.conf`` in order to replace OE toolchain with pre-built GNU-A
toolchain:

TCMODE = "external-arm"
EXTERNAL_TOOLCHAIN = "<path-to-the-toolchain>"

-  Eg. for AArch64 (eg. qemuarm64 machine in poky distro)
   EXTERNAL_TOOLCHAIN = "\
     <installation-path>/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu \
   "

-  Eg. for AArch32 (eg. qemuarm machine in poky distro)
   EXTERNAL_TOOLCHAIN = "\
     <installation-path>/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf \
   "

Supported distros and machines
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Since this pre-built GNU-A tool-set simply replaces OE toolchain, so it is
meant to be distro and machine agnostic as long as one is cross-compiling for
Arm A-profile architecture.

Tested distro and machines (for zeus stable release):
1.  Distro: poky; machines: qemuarm and qemuarm64 (build and boot tested)
2.  Distro: RPB; machines: dragonboard-410c (build and boot tested)
3.  Distro: world; machines: qemuarm and qemuarm64. Build tested for following
    layers:
    - poky/meta
    - poky/meta-poky
    - poky/meta-yocto-bsp
    - meta-openembedded/meta-oe
    - meta-openembedded/meta-python
    - meta-openembedded/meta-networking

SDK support
^^^^^^^^^^^

Pre-built toochain provides support to build OE SDK which has been tested using
following commands:

$ bitbake core-image-base -c populate_sdk
$ bitbake core-image-base -c testsdk

Note: Currently generated SDK only uses glibc provided by pre-built toolchain.
      The cross compiler, binutils, gdb/gdbserver etc. are built from source.
      This is something we would like to improve in future in order to package
      most of the components from pre-built toolchain instead.

Pre-built Arm toolchain for bare-metal development
--------------------------------------------------

Recipes for pre-built GNU Arm toolchain for bare-metal development are provided
under ``recipes-devtools/external-arm-toolchain/``.

gcc-arm-none-eabi_<version>.bb

This recipe provides support for pre-built GNU Arm Embedded toolchain for bare-metal software development on devices based on 32-bit Arm Cortex-A, Cortex-R and Cortex-M processors.

Supported version: 9-2019-q4-major

gcc-aarch64-none-elf_.bb


This recipe provides support for pre-built GNU Arm toolchain for bare-metal
software development on devices based on 64-bit Arm Cortex-A processors.

Supported version: 9.2-2019.12

Layer maintainer(s)
-------------------
* Sumit Garg <sumit.garg@linaro.org>
* Denys Dmytriyenko <denis@denix.org>