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

Adaptive Support
AMD Adaptive SoC & FPGA support resources, formerly known as "Xilinx Support", include our Knowledge Base, Community Forums, Blogs, and other support options. More on forums.xilinx.com
🌐 forums.xilinx.com
June 19, 2019
Whats "gcc-arm-none-eabi" toolchain ??
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 More on reddit.com
🌐 r/embedded
31
61
September 10, 2025
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
GCC 5.4.1: `arm-none-eabi-ar` missing
My platformio.ini: [env:disco_f051r8] platform = ststm32 board = disco_f051r8 framework = stm32cube platform_packages = toolchain-gccarmnoneeabi@~1.50401.0 Build log: Processing disco_f051r8 (platf... More on github.com
🌐 github.com
6
March 7, 2020
🌐
AMD Customer Community
forums.xilinx.com › t5 › Embedded-Development-Tools › armr5-none-eabi-gcc-build-commands › td-p › 985367
Adaptive Support
June 19, 2019 - This site is a landing page for AMD Adaptive SoC and FPGA support resources including our knowledge base, community forums, and links to even more.
🌐
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
🌐
GNU
gcc.gnu.org › onlinedocs › gcc › ARM-Options.html
ARM Options (Using the GNU Compiler Collection (GCC))
Specify the register to be used for PIC addressing. For standard PIC base case, the default is any suitable register determined by compiler. For single PIC base case, the default is ‘R9’ if target is EABI based or stack-checking is enabled, otherwise the default is ‘R10’.
🌐
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 }}"
Find elsewhere
🌐
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
186
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.
🌐
Arebatese
arebatese.gq › aa342c5c4d16b
We cannot provide a description for this page right now
🌐
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
🌐
Interrupt
interrupt.memfault.com › blog › best-firmware-size-tools
Tools for Firmware Code Size Optimization | Interrupt
June 6, 2019 - The simplest way to measure code size is to inspect the different sections of your elf file. The ARM GCC toolchain comes with a handy utility to do just that: arm-none-eabi-size.
🌐
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 140 users
Forked by 26 users
Languages   TypeScript 93.6% | JavaScript 6.4%
🌐
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...
🌐
GitHub
github.com › platformio › platform-ststm32 › issues › 355
GCC 5.4.1: `arm-none-eabi-ar` missing · Issue #355 · platformio/platform-ststm32
March 7, 2020 - total 27132 -rwxr-xr-x 1 root root 772164 Jun 22 2016 arm-none-eabi-addr2line -rwxr-xr-x 2 root root 800200 Jun 22 2016 arm-none-eabi-ar -rwxr-xr-x 2 root root 1302984 Jun 22 2016 arm-none-eabi-as -rwxr-xr-x 1 root root 776368 Jun 22 2016 arm-none-eabi-cpp -rwxr-xr-x 2 root root 777136 Jun 22 2016 arm-none-eabi-c++ -rwxr-xr-x 1 root root 770340 Jun 22 2016 arm-none-eabi-c++filt -rwxr-xr-x 1 root root 25520 Jun 22 2016 arm-none-eabi-elfedit -rwxr-xr-x 2 root root 776368 Jun 22 2016 arm-none-eabi-gcc -rwxr-xr-x 2 root root 776368 Jun 22 2016 arm-none-eabi-gcc-5.4.1 -rwxr-xr-x 1 root root 24324 J
Author   platformio
🌐
GitHub
github.com › xpack-dev-tools › arm-none-eabi-gcc-xpack
GitHub - xpack-dev-tools/arm-none-eabi-gcc-xpack: A binary distribution of the Arm Embedded GCC toolchain · GitHub
A binary distribution of the Arm Embedded GCC toolchain - xpack-dev-tools/arm-none-eabi-gcc-xpack
Starred by 283 users
Forked by 32 users
Languages   C 95.5% | MDX 3.2% | Shell 0.4% | TypeScript 0.3% | C++ 0.2% | Linker Script 0.2%
🌐
Ubuntu
packages.ubuntu.com › bionic › gcc-arm-none-eabi
Ubuntu – Error
two or more packages specified (gcc-arm-none-eabi bionic) Content Copyright © 2025 Canonical Ltd.; See license terms. Ubuntu is a trademark of Canonical Ltd. Learn more about this site.
🌐
manned.org
manned.org › arm-none-eabi-gcc › 34fd6095
arm-none-eabi-gcc - manned.org
Possible values for language are: c c-header cpp-output c++ c++-header c++-cpp-output objective-c objective-c-header objective-c-cpp-output objective-c++ objective-c++-header objective-c++-cpp-output assembler assembler-with-cpp ada f77 f77-cpp-input f95 f95-cpp-input go java -x none Turn off any specification of a language, so that subsequent files are handled according to their file name suffixes (as they are if -x has not been used at all). -pass-exit-codes Normally the gcc program exits with the code of 1 if any phase of the compiler returns a non-success return code.