mirror of
https://git.yoctoproject.org/meta-arm
synced 2026-05-07 16:59:30 +00:00
980f37d4d3
This recipe is a rebuild from source of the Arm GCC release, with patches from oe-core added to make it work well in our environment. Most people are happy with the GCC in oe-core, and this release is often behind: at the time of writing oe-core has mainline GCC 13.1, but Arm GCC is 12.2. Users who actually want the improvements in Arm GCC will likely want to use the binary toolchain so that they can have support from Arm, and they're welcome to do so via the "external-arm" binary toolchain. Signed-off-by: Ross Burton <ross.burton@arm.com> Acked-by: Sumit Garg <sumit.garg@linaro.org> Signed-off-by: Jon Mason <jon.mason@arm.com>
3.3 KiB
3.3 KiB
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>