Skip to content

abhiTronix/raspberry-pi-cross-compilers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GCC Pi Logo

Build Status License Downloads

ko-fi

Latest GCC Cross & Native automated Build-scripts and Precompiled Standalone (ARM/ARM64) Toolchains for Raspberry Pi

 

Table of Contents

 

TL'DR

What is this project?

This project provides latest Raspberry Pi hardware optimized GCC Cross Compiler & Native (ARM & ARM64) automated Build-Scripts and Precompiled standalone Toolchains binaries, that will save you tons of time & thereby helps you get quickly started with software development on Pi.

Who will benefit from the project?

This project is for everyone, from a professional Developer to a small Hobbyist to a college student, who's looking for latest easy-to-use GCC toolchains for their Raspberry Pi project(s) with minimum effort.

 

Key Features

  • Automated CLI 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 Toolchain build-scripts are available.
  • Latest GDB Debugger v8.3.1 included in all binaries.

 

 

Precompiled Toolchains: Easy-to-Use

This project uses CLI to auto-generate various easy-to-use precompiled Compressed GCC Cross & Native standalone ARM/ARM64 toolchains which are discussed as follows:

A. Toolchains description table:

Here's a reference table for various precompiled Toolchains available in this project that are targeting specific OS only:

  • Reference:
    • Host OS: on which the toolchain is executed/used.
    • Target OS: for which the toolchain generates code.
Toolchains Host OS Target OS Status Precompiled GCC versions available
Cross-Compiler Toolchains (Stretch) any x64/x86 Linux machine Raspbian Stretch OS (Debian Version 9) only Stable/Production 6.3.0, 8.3.0, 9.2.0
Cross-Compiler Toolchains (Buster) any x64/x86 Linux machine Raspbian Buster OS (Debian Version 10) only Stable/Production 8.3.0, 9.2.0
Native Compiler Toolchains (Stretch) Raspbian Stretch OS (Debian Version 9) only Raspbian Stretch OS (Debian Version 9) only Stable/Production 8.3.0, 9.2.0
Native Compiler Toolchains (Buster) Raspbian Buster OS (Debian Version 10) only Raspbian Buster OS (Debian Version 10) only Stable/Production 9.2.0
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
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 Toolchains None None None None
Obsolete Compiler Toolchains Not supported Not supported No longer supported 7.4.0, 8.2.0

 

B. Toolchains Supported Languages:

 

C. Identify Binaries by Name:

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

Binary Description

 

D. Toolchains Download

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 GCC download links
Cross-Compiler Toolchains 6.3.0, 8.3.0, 9.1.0, 9.2.0
Native Compiler Toolchains 8.3.0, 9.1.0, 9.2.0
64-bit Cross-Compiler Toolchains 6.3.0, 8.3.0, 9.1.0, 9.2.0
64-bit Native-Compiler Toolchains 8.3.0, 9.1.0, 9.2.0
Exclusive Toolchains (Cross-Compiler) 8.3.0
Obsolete Compiler Toolchains 7.4.0, 8.2.0

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:

 

 

For Developers: Do It Yourself

Open source is awesome, thereby, This project now provides user-friendly opensourced build-scripts that auto-generates & compiles Cross & Native GCC ARM/ARM64 Toolchain binaries targeting Raspberry Pi 32-bit Stretch (Debian 9) & Buster (Debian 10) and any Raspberry Pi 64-bit (like Pi64) OSes. These build-scripts are used by Automated CLI environments to generate various precompiled GCC ARM/ARM64 toolchains as discussed above. But you can also use these scripts to manually compile any latest GCC toolchains yourself through your terminal. You can find complete related info here:

 

 

Support 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 Useful 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 following LTO flags, thereby you can take advantage of your Raspberry Pi's CPU specific features with these LTO flags:

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!

Board LTO Link 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