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 9a0451a959 external-arm-toolchain: remove old sed fixup for libc.so
As reported by Vasyl Vavrychuk [1], /${EAT_LIBDIR}/${EAT_TARGET_SYS}
is not present in libc.so in the latest prebuilt toolchains:

ARM32:
  $ cat ./gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib/libc.so
  OUTPUT_FORMAT(elf32-littlearm)
  GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a  AS_NEEDED ( /lib/ld-linux-armhf.so.3 ) )

  $ cat ./gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/libc/usr/lib/libc.so
  OUTPUT_FORMAT(elf32-littlearm)
  GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a  AS_NEEDED ( /lib/ld-linux-armhf.so.3 ) )

  $ cat ./arm-gnu-toolchain-12.3.rel1-x86_64-arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/libc/usr/lib/libc.so
  OUTPUT_FORMAT(elf32-littlearm)
  GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a  AS_NEEDED ( /lib/ld-linux-armhf.so.3 ) )

  $ cat ./arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/libc/usr/lib/libc.so
  OUTPUT_FORMAT(elf32-littlearm)
  GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a  AS_NEEDED ( /lib/ld-linux-armhf.so.3 ) )

Aarch64:
  $ cat ./gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/aarch64-linux-gnu/libc/usr/lib/libc.so
  OUTPUT_FORMAT(elf64-littleaarch64)
  GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a  AS_NEEDED ( /lib/ld-linux-aarch64.so.1 ) )

  $ cat ./gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/aarch64-none-linux-gnu/libc/usr/lib64/libc.so
  OUTPUT_FORMAT(elf64-littleaarch64)
  GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a  AS_NEEDED ( /lib/ld-linux-aarch64.so.1 ) )

  $ cat ./arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu/aarch64-none-linux-gnu/libc/usr/lib64/libc.so
  OUTPUT_FORMAT(elf64-littleaarch64)
  GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a  AS_NEEDED ( /lib/ld-linux-aarch64.so.1 ) )

  $ cat ./arm-gnu-toolchain-13.3.rel1-x86_64-aarch64-none-linux-gnu/aarch64-none-linux-gnu/libc/usr/lib64/libc.so
  OUTPUT_FORMAT(elf64-littleaarch64)
  GROUP ( /lib64/libc.so.6 /usr/lib64/libc_nonshared.a  AS_NEEDED ( /lib/ld-linux-aarch64.so.1 ) )

We can safely remove old sed fixup for libc.so.

[1] https://lists.yoctoproject.org/g/meta-arm/message/5565

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:12:08 -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>