

GitHub - tttapa/docker-arm-cross-toolchain
source link: https://github.com/tttapa/docker-arm-cross-toolchain
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

docker-arm-cross-toolchain
Repository with ARM cross-compilation toolchains, built using Docker and crosstool-NG.
Includes C, C++ and Fortran cross-compilers (GCC 11.2), including the address and undefined behavior sanitizers (Asan and UBsan), cross-GDB and gdbserver (10.2). Compatible with glibc 2.28 and Linux 5.8 or later. These cross-compilers have been patched for Debian Multiarch.
Download
Docker images are available from GitHub Packages, and the ready-to-use toolchains can be downloaded from the Releases page.
Direct links:
- aarch64-rpi3-linux-gnu (64-bit, RPi 2B rev. 1.2, RPi 3B/3B+, CM 3, RPi 4B/400, CM 4, RPi Zero 2 W)
- armv8-rpi3-linux-gnueabihf (32-bit, RPi 2B rev. 1.2, RPi 3B/3B+, CM 3, RPi 4B/400, CM 4, RPi Zero 2 W)
- armv6-rpi-linux-gnueabihf (32-bit, RPi A/B/A+/B+, CM 1, RPi Zero/Zero W)
For modern Raspberry Pi boards running 64-bit Raspberry Pi OS or 64-bit Ubuntu,
use the aarch64-rpi3-linux-gnu
toolchain.
For modern Raspberry Pi boards running 32-bit Raspberry Pi OS, use the
armv8-rpi3-linux-gnueabihf
toolchain.
For older Raspberry Pi boards, or if you need to support all boards, use the
armv6-rpi-linux-gnueabihf
toolchain.
There is no specific toolchain for the first version of the RPi 2B (which
uses a quad-core ARMv7 Cortex-A7), but the armv6-rpi-linux-gnueabihf
toolchain
is compatible with this architecture as well.
For the RPi 4B/400 and the CM 4, use the aarch64-rpi3-linux-gnu
or the
armv8-rpi3-linux-gnueabihf
toolchain, depending on whether you're using a
64-bit or a 32-bit operating system. For optimal performance, you can include
the -mcpu=cortex-a72
or -mtune=cortex-a72
flags (GCC ARM options).
Installation
Download the archive of the toolchain you need using the links above.
Then extract it to a convenient location, e.g. ~/opt
.
You can download and extract the toolchain in one go using wget
and tar
,
for example:
mkdir -p ~/opt
wget -qO- https://github.com/tttapa/docker-arm-cross-toolchain/releases/latest/download/x-tools-aarch64-rpi3-linux-gnu.tar.bz2 | tar xJ -C ~/opt
If you want to use the toolchain directly, you can add the
~/opt/x-tools/aarch64-rpi3-linux-gnu/bin
folder to your path:
export PATH="$HOME/opt/x-tools/aarch64-rpi3-linux-gnu/bin:$PATH"
To make it permanent, you can add it to your ~/.profile
:
echo 'export PATH="$HOME/opt/x-tools/aarch64-rpi3-linux-gnu/bin:$PATH"' >> ~/.profile
Usage
For new software configured using CMake, use a CMake toolchain file. Examples can be found in https://github.com/tttapa/RPi-Cross-Cpp-Development/tree/master/cmake.
I highly recommend using CMake for your own projects as well, this makes it much easier for other people to depend on, package, and cross-compile your software.
For legacy software configured using Autotools, you usuall have to set a flag
--host="aarch64-rpi3-linux-gnu"
when invoking the configure
script.
Packages with custom configuration scripts might have differently named options,
for example, OpenSSL has --cross-compile-prefix="aarch64-rpi3-linux-gnu-"
.
Custom Makefiles might require you to set a variable such as
CROSS=aarch64-rpi3-linux-gnu-
or CROSS_COMPILE=aarch64-rpi3-linux-gnu-
.
If all else fails, try setting the CC
, CXX
or FC
environment variables
explicitly.
For more detailed instructions on how to cross-compile software and how to handle dependencies, see https://tttapa.github.io/Pages/Raspberry-Pi/index.html.
Recommend
-
75
Thanks to Anders Wallgren, CTO and Sam Fell, V.P. of Marketing at Electric Cloud for hosting and moderating our roundtable discussion on the necessary elements of a healthy Dev...
-
46
README.md
-
59
README.md rustup: the Rust toolchain installer CI Build Status Travis
-
53
README.md RISC-V GNU Compiler Toolchain
-
6
V2EX › 程序员 docker 做 CLion toolchain 的时候, CLion 是用什么用户名连进去 docker 的? m...
-
7
V2EX › 程序员 JetBrains IDE 使用 docker toolchain 的时候怎么批量运行 Google Test 呢?不知道怎么才能在 docker toolchain 里面运行脚本
-
36
Arduino Filters Features Infinite Impulse Response Filters Finite Impulse Response Filters BiQuad Filters Butterworth Filters
-
14
MIDI controller This is a library for creating a MIDI controller using an Arduino board. It enables you to easily create MIDI controllers or instruments with very few lines of code. It supports digital inputs, like pushbuttons and s...
-
3
Note: The toolchains themselves have been moved to a separate repository:tttapa/docker-arm-cross-toolchain
-
8
py-build-cmake Modern, PEP 517 compliant build backend for building Python packages with extensions built using CMake. Features Build and packag...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK