/raspberry-pi-cross-compilers

Latest GCC Cross Compiler & Native (ARM & ARM64) build-scripts and CI generated precompiled standalone toolchains for Raspberry Pi.

Primary LanguageShellGNU General Public License v3.0GPL-3.0

Raspberry Pi Toolchains Logo

Latest automated Build-scripts and CI maintained Precompiled Standalone (ARM/ARM64) Toolchains for Raspberry Pi

CI Builder Pi[0-1] CI Builder Pi[2-3] CI Builder Pi[3+] CI Builder Pi[64]

Open Source Love png1 License made-with-bash Downloads

ko-fi

 

Table of Contents

 

TL'DR

What is this project?

This project provides the latest, automated, CI maintained, precompiled Raspberry Pi CPU optimized GCC Cross & Native (ARM & ARM64) Compressed Standalone Toolchains & Build-Scripts, that is fastest to setup and saves you tons of time and thereby helps you to get quickly started with software development with Pi.

Who will benefit from the project?

This project benefits everyone, from a professional Developer to a small Hobbyist to a college student, who's looking for latest easy-to-use precompiled GCC toolchains and build-scripts for there Raspberry Pi project(s).

 

New-Release SneekPeak: v3.0

  • Automated CI maintained GCC standalone ARM/ARM64 toolchains.
  • Latest GCC 9.2.0 toolchains available.
  • Hardcoded paths free both Cross & Native Raspbian Buster (Debian 10) toolchains available.
  • Separate binaries for each Raspberry Pi variant (including latest Compute modules and Raspberry Pi 4).
  • Tar Compressed binaries with maximum possible compression.
  • Exclusive ARM64|AARCH64 Binaries for Raspberry Pi 64-Bit OS flavors.
  • Open-sourced Toolchains build-scripts are also available.
  • Latest GDB Debugger v8.3.1 included in all binaries.

 

 

Banner

This project now utilizes powerful Github Actions CI(Continuous Integration) to auto-compile Compressed GCC Cross & Native ARM/ARM64 Toolchain binaries and thereby auto-deploy them to SourceForge repository.

A. Automated Toolchain Builder Workflow:

Workflow

 

B. Toolchain Binaries description table:

Here's a reference table for various CI generated OS targetted precompiled Toolchain Binaries available with this project:

  • References:
    • Host OS: on which the toolchain is executed/used.
    • Target OS: for which the toolchain generates code.

Toolchains Host OS Target OS Current Status Precompiled GCC versions available
Raspberry Pi GCC Cross-Compiler Toolchains(Stretch) any x64/x86 Linux machine Raspbian Stretch OS (Debian Version 9) only Stable/Production 6.3.0, 9.2.0
Raspberry Pi GCC Cross-Compiler Toolchains(Buster) any x64/x86 Linux machine Raspbian Buster OS (Debian Version 10) only Stable/Production 8.3.0, 9.2.0
Raspberry Pi GCC Native-Compiler Toolchains(Stretch) Raspbian Stretch OS (Debian Version 9) only Raspbian Stretch OS (Debian Version 9) only Stable/Production 9.2.0
Raspberry Pi GCC Native-Compiler Toolchains(Buster) Raspbian Buster OS (Debian Version 10) only Raspbian Buster OS (Debian Version 10) only Stable/Production 9.2.0
Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains any x64/x86 Linux machine any x64 Raspberry Pi OS(like Pi64) Stable/Production 6.3.0, 8.3.0, 9.2.0
Raspberry Pi GCC 64-Bit Native-Compiler Toolchains any x64 Raspberry Pi OS(like Pi64) any x64 Raspbian OS(like Pi64) Stable/Production 8.3.0, 9.2.0
Exclusive/Experimental Toolchains None None Beta/Experimental None

 

C. Identifying Toolchain Binaries by Name:

You can easily identify each pre-compiled toolchain binary by its name as follows:

Binary Description

D. Toolchain Binaries Downloads:

TAR-PIGZ Compressed pre-compiled GCC Toolchain binaries can be easily be downloaded from the project's SourceForge Repository or by clicking links given in the following table:

Toolchains Binaries Status GCC versions
Raspberry Pi GCC Cross-Compiler Toolchains(Stretch) Stable/Production 6.3.0, 9.2.0
Raspberry Pi GCC Cross-Compiler Toolchains(Buster) Stable/Production 8.3.0, 9.2.0
Raspberry Pi GCC Native-Compiler Toolchains(Stretch) Stable/Production 9.2.0
Raspberry Pi GCC Native-Compiler Toolchains(Buster) Stable/Production 9.2.0
Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains Stable/Production 6.3.0, 8.3.0, 9.2.0
Raspberry Pi GCC 64-Bit Native-Compiler Toolchains Stable/Production 8.3.0, 9.2.0
Exclusive/Experimental Toolchains Beta/Experimental None

Tip::bulb: To get the location of each Binary of this project on SourceForge, you can also check out this Reference Tree.

 

E. Toolchain Setup Documentation:

These precompiled toolchains setup requires just three easy steps - Downloading, Extracting and Linking:

 

F. Supported Toolchains Programming Languages:

  • C++
  • Fortran
  • C
  • Any other language support can be easily compiled.

 

 

Banner

Open source is awesome ❤️

  • This project now provides user-friendly open-sourced bash build-scripts that auto-generates Compressed Cross & Native GCC ARM/ARM64 Toolchain binaries targeting Raspberry Pi 32-bit & 64-bit OSes.

  • If you need additional language support or need to compile another suitable GCC version toolchains for your Raspberry Pi, then you can use these scripts to manually compile any GCC toolchains by running suitable build-scripts yourself through your system terminal.

  • You can find complete information about these build-scripts here:

 

 

Supporting this Project

If these binaries helped you big time, please consider supporting it through any size donations. Thank you ❤️.

Donate 

You can also share your thoughts or just drop a star ⭐. Thank you.

 

 

Additional Information

Supported ARM Devices:

  • All Raspberry Pi hardware/versions/models are currently supported.
  • Any other ARM Device(such as android, IoT) with similar Hardware architecture(see Optimization Flags) should also work.

Optimization Flags Involved:

These toolchains are built with these following system-specific LTO (Link Time Optimization) flags, therefore you can easily take advantage of your Raspberry Pi's CPU specific features with these Toolchains while compiling your programs:

Important: The latest Raspberry Pi 4 uses a Broadcom BCM2711 SoC with a 1.5 GHz 64-bit quad-core ARM Cortex-A72 processor, that also have armv8-a architecture similar to Raspberry Pi 3B+, therefore it is also officially supported!

Raspberry Pi Board Link Time Optimization Flags
Raspberry Pi - Zero/W/WH & 1 Model A/B/A+/B+ -march=armv6 -mfloat-abi=hard -mfpu=vfp
Raspberry Pi - 2 & 3 Model A/B -march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4
Raspberry Pi - 3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (32-Bit) -march=armv8-a -mfloat-abi=hard -mfpu=neon-fp-armv8
Raspberry Pi - 3 & 4 Model A+/B+ & Compute 3/3-lite/3+ (64-Bit) -march=armv8-a+fp+simd

 

Citing

Here is a Bibtex entry you can use to cite this project in a publication:

@misc{raspberry-pi-cross-compilers,
    Title = {Raspberry Pi Toolchains},
    Author = {Abhishek Thakur},
    howpublished = {\url{https://github.com/abhiTronix/raspberry-pi-cross-compilers}}   
  }

 

Copyright License

Copyright © 2020 abhiTronix

This Project source-code and its precompiled binaries are licensed under the GPLv3 license.

 

Acknowledgments

Thank you,