If you want to use Debian packages (corresponding to the ARM toolchain), you should install gcc-arm-none-eabi which provides C and C++ cross-compilers for 32-bit ARM, including Cortex-R processors:

apt-get install -y --no-install-recommends gcc-arm-none-eabi

The compiler command for C++ will then be arm-none-eabi-g++.

If you need the STL, you should also install libstdc++-arm-none-eabi-newlib:

apt-get install -y --no-install-recommends libstdc++-arm-none-eabi-newlib

armr5-none-eabi-g++ is (was) available in the Xilinx SDK; the relevant SDK nowadays would appear to be Vitis. For a container image you’d probably be best off installing it using the full unified installer archive. (I haven’t tried this so I can’t confirm that the armr5-none-eabi is included in current versions.)

Answer from Stephen Kitt on Stack Exchange
🌐
Launchpad
answers.launchpad.net › gcc-arm-embedded › +question › 272826
Question #272826 “armr5-none-eabi-gcc compiler” : Questions : GNU Arm Embedded Toolchain
October 23, 2015 - I used the following flag to compile my code on cortex R5F. armr5 compiler is of version 4.8.4. CFLAGS_CORTEX_R5 = -static -mlittle-endian -mcpu=cortex-r5 -mfloat-abi=softfp -mfpu=vfpv3-d16 -fsingle-precision-constant -Wdouble-promotion Notice that I have used vfpv3-d16 option, so I should use at most 16 double precision floating point registers (d0 - d15), which is supported on this ARM core.
Discussions

c++ - linking succeeds with arm-none-eabi-g++ but not arm-none-eabi-gcc - Stack Overflow
I am using the Launchpad Arm compiler tools. Specifically, arm-none-eabi-g++ and arm-none-eabi-gcc from: (GNU Tools for ARM Embedded Processors) 5.2.1 20151202 (release) [ARM/embedded-5-branch More on stackoverflow.com
🌐 stackoverflow.com
Don't require a native compiler when doing only cross-compilation
PATH=C:\Xilinx\SDK\2017.1\bin;...n;C:\Xilinx\SDK\2017.1\ gnu\aarch32\nt\gcc-arm-none-eabi\bin;C:\Xilinx\SDK\2017.1\gnu\aarch64\nt\aarch64 -linux\bin;C:\Xilinx\SDK\2017.1\gnu\aarch64\nt\aarch64-none\bin;C:\Xilinx\SDK\20 17.1\gnu\armr5\nt\gcc-arm-none-eabi\bin;C:\Xilinx\SDK... More on github.com
🌐 github.com
13
September 29, 2017
arm-none-eabi-gcc toolchain is not working - Stack Overflow
./configure --host=arm-none-eabi checking build system type... i686-pc-linux-gnu checking host system type... arm-none-eabi checking target system type... arm-none-eabi checking for arm-none-eabi-gcc... arm-none-eabi-gcc checking whether the C compiler works... More on stackoverflow.com
🌐 stackoverflow.com
software installation - Installing arm-none-eabi-gcc - Unix & Linux Stack Exchange
My guess is because I don't have the arm-none-eabi-gcc installed on my system but when I enter the command sudo apt-get install arm-none-eabi-gcc I get an error saying there is no such package. More on unix.stackexchange.com
🌐 unix.stackexchange.com
July 9, 2017
🌐
Arm Developer
developer.arm.com › downloads › - › arm-gnu-toolchain-downloads
Arm GNU Toolchain Downloads – Arm Developer
$ arm-none-eabi-gcc -mcpu=cortex-m7 -mfloat-abi=hard $ arm-none-eabi-gcc -mcpu=cortex-r5 -mfloat-abi=hard -mthumb · Example with floating-point and Advanced SIMD instructions with soft-float ABI: $ arm-none-eabi-gcc -mcpu=cortex-a53 -mfloat-abi=softfp -mthumb
🌐
GitHub
github.com › marketplace › actions › arm-none-eabi-gcc-gnu-arm-embedded-toolchain
arm-none-eabi-gcc GNU Arm Embedded Toolchain - GitHub Marketplace
If you need to pass the GCC path to a different action or step the path output exports it: - name: To access a step output, you need to provide an `id` uses: carlosperate/arm-none-eabi-gcc-action@v1 id: arm-none-eabi-gcc-action - name: The `path` to the toolchain executables can then be obtained as an output run: echo "The output path is ${{ steps.arm-none-eabi-gcc-action.outputs.path }}"
🌐
GNU
gcc.gnu.org › onlinedocs › gcc › ARM-Options.html
ARM Options (Using the GNU Compiler Collection (GCC))
Specify the format of the __fp16 half-precision floating-point type. Permissible names are ‘none’, ‘ieee’, and ‘alternative’; the default is ‘none’, in which case the __fp16 type is not defined.
🌐
Arm Developer
developer.arm.com › downloads › - › gnu-rm
Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer
gcc-arm-none-eabi-7-2018-q2-update-win32-sha1.exe Windows 32-bit Installer (Signed for Windows XP and Vista) MD5: 623960ecb4b347665541efd3868a4af9
Find elsewhere
🌐
GitHub
github.com › mesonbuild › meson › issues › 2392
Don't require a native compiler when doing only cross-compilation · Issue #2392 · mesonbuild/meson
September 29, 2017 - $ cat armr5_cross.txt [binaries] c = ['ccache', 'armr5-none-eabi-gcc'] cpp = ['ccache', 'armr5-none-eabi-g++'] ar = 'armr5-none-eabi-ar' strip = 'armr5-none-eabi-strip' [properties] c_args = ['-DARMR5', '-mcpu=cortex-r5', '-mfloat-abi=softfp', '-mfpu=vfpv3-d16', '-nostdlib'] cpp_args = ['-DARMR5', '-mcpu=cortex-r5', '-mfloat-abi=softfp', '-mfpu=vfpv3-d16', '-nostdlib'] [host_machine] system = 'notlinux' cpu_family = 'arm' cpu = 'r5' endian = 'little'
Author   rhd
🌐
Stack Overflow
stackoverflow.com › questions › 37679331 › arm-none-eabi-gcc-toolchain-is-not-working
arm-none-eabi-gcc toolchain is not working - Stack Overflow
./configure --host=arm-none-eabi checking build system type... i686-pc-linux-gnu checking host system type... arm-none-eabi checking target system type... arm-none-eabi checking for arm-none-eabi-gcc... arm-none-eabi-gcc checking whether the C compiler works...
🌐
Homebrew
formulae.brew.sh › formula › arm-none-eabi-gcc
arm-none-eabi-gcc — Homebrew Formulae
brew install arm-none-eabi-gcc · GNU compiler collection for arm-none-eabi · https://gcc.gnu.org · License: GPL-3.0-or-later WITH GCC-exception-3.1 · Development: Pull requests · Formula JSON API: /api/formula/arm-none-eabi-gcc.json · Formula code: arm-none-eabi-gcc.rb on GitHub ·
🌐
Debian
wiki.debian.org › ArmEabiPort
ArmEabiPort - Debian Wiki
February 1, 2026 - EABI is actually a family of ABIs and one of the "subABIs" is GNU EABI, for Linux. The effective changes for users are: Floating point performance, with or without an FPU is very much faster, and mixing soft and hardfloat code is possible · Structure packing is not as painful as it used to be · More compatibility with various tools (in future - currently linux-elf is well supported) ... At present (with gcc-4.1.1) it works with armv4t, armv5t processors and above, but supporting armv4 (e.g., ?StrongArm) requires toolchain modifications.
🌐
GitHub
github.com › ilg-archived › arm-none-eabi-gcc
GitHub - ilg-archived/arm-none-eabi-gcc: The GNU MCU Eclipse ARM Embedded GCC binaries · GitHub
This release is functionally equivalent to 8-2018-q4-major from December 20, 2018, and is based on gcc-arm-none-eabi-8-2018-q4-major-src.tar.bz2 (download), but fixes the bugs present in the initial ARM release.
Starred by 66 users
Forked by 21 users
🌐
Linux Mint Forums
forums.linuxmint.com › board index › main edition support › software & applications
Getting to work ARM-compiler arm-none-eabi with Linux 21 Vanessa - Linux Mint Forums
November 28, 2022 - sudo ln -s /usr/share/gcc-arm-11.2-2022.02-x86_64-arm-none-eabi/bin/arm-none-eabi-gcc /usr/bin/arm-none-eabi-gcc ... 3)Install dependency sudo apt install libncurses-dev 4) Create links 5) From here on: I can call arm-none-eabi-gcc and g++ version without an error.
🌐
Arch Linux
archlinux.org › packages › extra › x86_64 › arm-none-eabi-gcc
Arch Linux - arm-none-eabi-gcc 14.2.0-2 (x86_64)
View the file list for arm-none-eabi-gcc · View the soname list for arm-none-eabi-gcc · Copyright © 2002-2026 Judd Vinet, Aaron Griffin and Levente Polyák. The Arch Linux name and logo are recognized trademarks. Some rights reserved.
🌐
GitHub
github.com › carlosperate › arm-none-eabi-gcc-action
GitHub - carlosperate/arm-none-eabi-gcc-action: GitHub Action to set-up the `arm-none-eabi-gcc` GNU Arm Embedded Toolchain. · GitHub
GitHub Action to set-up the `arm-none-eabi-gcc` GNU Arm Embedded Toolchain. - carlosperate/arm-none-eabi-gcc-action
Starred by 137 users
Forked by 26 users
Languages   TypeScript 93.6% | JavaScript 6.4%
🌐
Reddit
reddit.com › r/embedded › whats "gcc-arm-none-eabi" toolchain ??
r/embedded on Reddit: Whats "gcc-arm-none-eabi" toolchain ??
September 10, 2025 -

gcc-arm-none-eabi toolchain, my major question is, why is it made and for what problem to solve ? before toolchains existed, what were the methods used to program a chip ??

also, who makes toolchains and how are they doing it ??

Top answer
1 of 12
185
Gcc-arm-none-eabi is the gcc compiler toolchain for arm outside of a hosted environment. This means that it compiles bare metal code: code running without an already existing OS. ‘Normal’ gcc uses libraries from the system where its installed, so if you compile a hello world links to and uses the standard library. Gcc-arm would mean that the compiler is a cross compiler: its installed on your system but it compiles for arm. On an arm processor could run a full fledged linux environment so a gcc-arm-aarch64-linux or something like that would compile a program on your pc for that arm system running linux. Now there are meriads of arm systems not running linux which needs code to be compiled for as well. This is the place for the none-eabi variant: it does not use any system library and uses a standard interface for calling functions and other stuff. So in other words this is just the bare metal cross compiler for arm systems. And who makes these? Anyone who wants to. Gcc is an open source project and anyone could compile the toolchain. With compiling you can ‘select’ your version: do you want to build a linux-on-riscv compiler running on your pc? Definitely possible! The linux distro repos contain a couple of standard versions of gcc of which arm-none-eabi is one
2 of 12
24
It contains the compiler, linker, and other helpful utilities to make code that can be loaded onto a microcontroller. Before any of those utilities existed, you could literally flip switches on a console to set your program in memory. You had to know the hex values for all your opcodes, and how each one expected parameters to be formatted. Programs were very limited. Compilers came along (like gcc) that took slightly more readable code (like assembly or C) and automatically converted them into a binary file. Then linkers showed up to automatically connect up multiple C files and create more complex programs. At the same time, utilities like gdb and openocd showed up to help get that binary file into the memory of a microcontroller, using protocols like swd or jtag. Specifically though, arm (the company that creates the arm instruction set and cortex architecture, that chip makers like ST/Apple/etc license and use), maintains arm-none-eabi-gcc and provides it for free. It has some competition from paid compilers like Keil and IAR, but in most cases gcc is the best choice.