GithubHelp home page GithubHelp logo

abhitronix / raspberry-pi-cross-compilers Goto Github PK

View Code? Open in Web Editor NEW
564.0 27.0 99.0 841 KB

Latest GCC Cross Compiler & Native (ARM & ARM64) CI generated precompiled standalone toolchains for all Raspberry Pis. 🍇

Home Page: https://sourceforge.net/projects/raspberry-pi-cross-compilers

License: GNU General Public License v3.0

Shell 100.00%
gcc gcc-cross-compiler raspberry-pi raspberrypi cross-compiler pi gcc-arm-toolchain arm arm64 aarch64

raspberry-pi-cross-compilers's Introduction

Raspberry Pi Toolchains Logo

Latest CI maintained Precompiled Standalone ARM & ARM64 Toolchains for Raspberry Pi SBCs

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

ko-fi

License GitHub release (latest by date) Downloads

 

Table of Contents 📑

 

 

TL'DR 🕵️

What is this project?

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

Who will benefit from the project?

This project benefits everyone, from Professional Devs to a college research Student, looking for latest easy-to-use precompiled GCC toolchains for their Hobby Raspberry Pi project(s).

 

 

Latest v3.0+ Release SneekPeak 🍩

  • ☑️ Latest GCC 10.3.0 toolchains available.
  • ☑️ Automated CI maintained GCC standalone ARM & ARM64 toolchains.
  • ☑️ Hardcoded paths free both Cross & Native Raspbian Bullseye (Debian 11) toolchains available.
  • ☑️ Separate binaries for each Raspberry Pi variant (including latest Compute modules and Raspberry Pi 4).
  • ☑️ PIGZ-TAR Compressed Binaries available with maximum possible compression.
  • ☑️ Exclusive ARM64|AARCH64 Binaries for Raspberry Pi 64-Bit kernel OS flavors.
  • ☑️ Open-sourced Toolchains build-scripts are also available.
  • ☑️ Comprehensive Guide for Cross-compile Latest QT for any Raspberry Pi variant/model available
  • ☑️ Latest GDB Debugger v10.2 included in all binaries.

 

 

A. Precompiled Toolchains: Easy-to-Use

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.

Workflow

 

📥 Toolchain Downloads:

Following is the 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.

📝 Note: 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.

Download Raspberry Pi GCC Toolchains

Toolchains Host OS Target OS Current Status Precompiled GCC versions available
Raspberry Pi GCC Cross-Compiler Toolchains (Stretch) any x64/x86 Linux machine Stretch 32-bit OS (Debian Version 9) only Stable/Production 6.3.0, 9.4.0, 10.3.0
Raspberry Pi GCC Cross-Compiler Toolchains (Buster) any x64/x86 Linux machine Buster 32-bit OS (Debian Version 10) only Stable/Production 8.3.0, 9.4.0, 10.3.0
Raspberry Pi GCC Cross-Compiler Toolchains (Bullseye) any x64/x86 Linux machine Bullseye 32-bit OS (Debian Version 11) only Stable/Production 10.2.0, 10.3.0
Raspberry Pi GCC Native-Compiler Toolchains (Stretch) Stretch 32-bit OS (Debian Version 9) only Stretch 32-bit OS (Debian Version 9) only Stable/Production 9.4.0, 10.3.0
Raspberry Pi GCC Native-Compiler Toolchains (Buster) Buster 32-bit OS (Debian Version 10) only Buster 32-bit OS (Debian Version 10) only Stable/Production 9.4.0, 10.3.0
Raspberry Pi GCC Native-Compiler Toolchains (Bullseye) Bullseye 32-bit OS (Debian Version 11) only Bullseye 32-bit OS (Debian Version 11) only Stable/Production 10.3.0
Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains (Stretch) any x64/x86 Linux machine Stretch 64-bit OS (Debian Version 9) only Stable/Production 6.3.0, 9.4.0, 10.3.0
Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains (Buster) any x64/x86 Linux machine Buster 64-bit OS (Debian Version 10) only Stable/Production 8.3.0, 9.4.0, 10.3.0
Raspberry Pi GCC 64-Bit Cross-Compiler Toolchains (Bullseye) any x64/x86 Linux machine Bullseye 64-bit OS (Debian Version 11) only Stable/Production 10.2.0, 10.3.0
Raspberry Pi GCC 64-Bit Native-Compiler Toolchains (Stretch) Stretch 64-bit OS (Debian Version 9) only Stretch 64-bit OS (Debian Version 9) only Stable/Production 9.4.0, 10.3.0
Raspberry Pi GCC 64-Bit Native-Compiler Toolchains (Buster) Buster 64-bit OS (Debian Version 10) only Buster 64-bit OS (Debian Version 10) only Stable/Production 9.4.0, 10.3.0
Raspberry Pi GCC 64-Bit Native-Compiler Toolchains (Bullseye) Bullseye 64-bit OS (Debian Version 11) only Bullseye 64-bit OS (Debian Version 11) only Stable/Production 10.3.0
Exclusive/Experimental Toolchains x86/x86_64 Pi Desktop x86/x86_64 Pi Desktop Beta/Experimental 10.3.0 (x86), 10.3.0 (x86_64)

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

 

📒 Toolchain Setup Documentation:

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

➡️ WIKI-Documentation (en-English)

 

 

B. Build-Script for Developers: Do It Yourself

  • 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.

➡️ All Build-scripts are here

 

 

C. Cross-Compiling Latest QT Framework for Pi

Now, there's a steps-by-step guide available to cross-compile Latest QT for any Raspberry Pi variant/model available, using the Raspberry Pi Toolchains available with this project:

➡️ Step-by-Step Instruction for Cross-Compiling Latest QT Framework for Raspberry Pi

 

 

D. Supporting this Project

If these binaries helped you big time, please consider supporting it through any size donations.:heart:.

Donate

ko-fi

Also please share your thoughts or just drop a star ⭐.

 

 

E. Bonus: Additional Toolchains Information

Supported Hardwares:

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

 

Supported Programming Languages:

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

 

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:

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

Raspberry Pi 4+: 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!

 

 

F. Citation

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}},
    year = {2020}  
  }

 

 

G. License

Copyright © 2020 abhiTronix

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

 

 

H. Acknowledgments

Thank you,

raspberry-pi-cross-compilers's People

Contributors

abhitronix avatar visglz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

raspberry-pi-cross-compilers's Issues

Request for GDB

Hi,

first of all thanks for this project! It's very useful to quickly get started with Pi dev.

I noticed there is no GDB executable included in the cross compile binaries. Is it possible to add it there? For now I am using the one included in official arm-linux-gnueabihf and it seems to work.

Cheers,
Rait

error: ‘armv8-a’ does not support feature ‘fp’

When I build with the 9.1.0 cross-compiler toolchain and use the flag -march=armv8-a+fp+simd as mentioned in the README, I'm getting this error message:

make all 
Building file: ../src/hello.cpp
Invoking: Cross G++ Compiler
arm-linux-gnueabihf-g++ -O0 -march=armv8-a+fp+simd -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/hello.d" -MT"src/hello.o" -o "src/hello.o" "../src/hello.cpp"
arm-linux-gnueabihf-g++: error: ‘armv8-a’ does not support feature ‘fp’
arm-linux-gnueabihf-g++: note: valid feature names are: crc simd crypto nocrypto nofp sb predres; did you mean ‘nofp’?
make: *** [src/hello.o] Error 1

Looks like fp is the default, so I can omit that and just use -march=armv8-a+simd? It builds fine without it.

Raspbian Stretch

I have followed the guide using the native version with no luck.
pi@raspberrypi:~ $ gcc --version
gcc (Raspbian 6.3.0-18+rpi1+deb9u1) 6.3.0 20170516
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

I am sure I am missing something.

Any way to shrink distributions?

Just downloaded cross-gcc-9.2.0-pi_2-3.tar.gz, it's 2Gb uncompressed. Is it really necessary?

For example, linaro gcc (7.5) is around 600 Mb uncompressed (100 Mb compressed) and can build RPI software when provided with around 200 Mb more of sysroot libraries (those 600Mb contain their own sysroot libraries, so total used size is even less).

The most part of your distribution is libexec folder, of which cc1, cc1plus and lto1 take some 170 Mb each. For linaro, those files are order of magnitude less (17 Mb-ish). Also, there are copies for 9.2.0 and 8.3.0, are they both needed?

Upon closer inspection, all binaries are 5-10 times larger then in linaro gcc 7.5.

[Resolved] Cannot find crt1.o

Hi there! Thank you for your work.
I am trying to use the armv6 gcc 8.3 toolchain to cross compile QTfor rpi zero (rpi0w) target. I followed the wiki and installed. I can build an example program but if i configure QT it gives me problems while trying to build their sample programs. The logs report this error:

arm-linux-gnueabihf-g++ -mfloat-abi=hard --sysroot=/home/parallels/raspi/sysroot --sysroot=/home/parallels/raspi/sysroot -Wl,-O1 -Wl,-rpath-link,/home/parallels/raspi/sysroot/opt/vc/lib -Wl,-rpath-link,/home/parallels/raspi/sysroot/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,/home/parallels/raspi/sysroot/lib/arm-linux-gnueabihf -o verifyspec verifyspec.o -v Using built-in specs. COLLECT_GCC=arm-linux-gnueabihf-g++ COLLECT_LTO_WRAPPER=/home/parallels/raspi/sysroot/opt/cross-pi-gcc-8.3.0-0/bin/../libexec/gcc/arm-linux-gnueabihf/8.3.0/lto-wrapper Target: arm-linux-gnueabihf Configured with: ../configure --prefix= --target=arm-linux-gnueabihf --enable-languages=c,c++,fortran --with-sysroot=/arm-linux-gnueabihf/libc --with-build-sysroot=/opt/cross-pi-gcc-8.3.0-0/arm-linux-gnueabihf/libc --with-arch=armv6 --with-fpu=vfp --with-float=hard --disable-multilib Thread model: posix gcc version 8.3.0 (GCC) COMPILER_PATH=/home/parallels/raspi/sysroot/opt/cross-pi-gcc-8.3.0-0/bin/../libexec/gcc/arm-linux-gnueabihf/8.3.0/:/home/parallels/raspi/sysroot/opt/cross-pi-gcc-8.3.0-0/bin/../libexec/gcc/:/home/parallels/raspi/sysroot/opt/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ LIBRARY_PATH=/home/parallels/raspi/sysroot/opt/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/:/home/parallels/raspi/sysroot/opt/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/:/home/parallels/raspi/sysroot/opt/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/lib/:/home/parallels/raspi/sysroot/lib/:/home/parallels/raspi/sysroot/usr/lib/ COLLECT_GCC_OPTIONS='-mfloat-abi=hard' '-o' 'verifyspec' '-v' '-shared-libgcc' '-mfpu=vfp' '-mtls-dialect=gnu' '-marm' '-march=armv6+fp' /home/parallels/raspi/sysroot/opt/cross-pi-gcc-8.3.0-0/bin/../libexec/gcc/arm-linux-gnueabihf/8.3.0/collect2 -plugin /home/parallels/raspi/sysroot/opt/cross-pi-gcc-8.3.0-0/bin/../libexec/gcc/arm-linux-gnueabihf/8.3.0/liblto_plugin.so -plugin-opt=/home/parallels/raspi/sysroot/opt/cross-pi-gcc-8.3.0-0/bin/../libexec/gcc/arm-linux-gnueabihf/8.3.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccPG7cKK.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/home/parallels/raspi/sysroot --eh-frame-hdr -dynamic-linker /lib/ld-linux-armhf.so.3 -X -m armelf_linux_eabi -o verifyspec crt1.o crti.o /home/parallels/raspi/sysroot/opt/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/crtbegin.o -L/home/parallels/raspi/sysroot/opt/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0 -L/home/parallels/raspi/sysroot/opt/cross-pi-gcc-8.3.0-0/bin/../lib/gcc -L/home/parallels/raspi/sysroot/opt/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/lib -L/home/parallels/raspi/sysroot/lib -L/home/parallels/raspi/sysroot/usr/lib -O1 -rpath-link /home/parallels/raspi/sysroot/opt/vc/lib -rpath-link /home/parallels/raspi/sysroot/usr/lib/arm-linux-gnueabihf -rpath-link /home/parallels/raspi/sysroot/lib/arm-linux-gnueabihf verifyspec.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /home/parallels/raspi/sysroot/opt/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/crtend.o crtn.o /home/parallels/raspi/sysroot/opt/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: cannot find crt1.o: File o directory non esistente /home/parallels/raspi/sysroot/opt/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: cannot find crti.o: File o directory non esistente /home/parallels/raspi/sysroot/opt/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lm collect2: error: ld returned 1 exit status

As you can see, QT cross compilation is using sysroot gcc option (/home/parallels/raspi/sysroot is my sysroot). I placed the toolchain exactly into the sysroot (/home/parallels/raspi/sysroot/opt/cross-pi-gcc-8.3.0-0). Why the crt1,crti objects + m library are not found? #

Pi zero usage ?

I just got a new pi zero, I'm willing to test these versions on it, should I use these as they are that worked pi3b, or is there some other version?
Are these 64 bit or 32, pi zero requires 32 bit I read somewhere

Request for OSX build

There are notoriously no good gcc toolchains for the PI CPU on OSX. (Last time I did this writing kernels, I was using a compiler for the GBA, but getting hold of that via homebrew wasn't the easiest thing either, and it was stuck around c++11)

Would it be possible to build for OSX as well as linux?

Upgrade to GCC v9.3 and GDB v9.1

This proposal is to integrate the latest GCC v9.3 and GDB v9.1 in build matrix and deploy them through Project's automated CI builds.

What mean of --with-sysroot and --with-build-sysroot?

What mean of --with-sysroot and --with-build-sysroot when build cross gcc of step one?
What will i get if i do not specify those two options when configure & make?
What relationship of --with-sysroot, --with-build-sysroot and $INSTALLDIR?

Hope your reply!

How to add c standard header files and libraries into compress package file of native gcc?

Hi, I modify file "build-scripts/RTBuilder_32b", change GLIBC_VERSION from 2.24 to 2.23, then I get cross-gcc and native-gcc after 2 hours. I copy file "native-gcc-9.3.0-pi_2-3.tar.gz" into my development board(cpu is imx6ull), uncompress into /usr/local, change environment PATH as "PATH=/usr/local/bin:$PATH", then create a file "hello.c" only call function "printf", but folder "/usr/local/include" does not contain header file "stdio.h".
How to add c standard header files and libraries into compress package file of native gcc?

Textinfo vs texinfo

Documentation show module texTinfo needed - no such module found by apt-get
There is texTinfo

Hardcoded paths in linker scripts

The following linker scripts assume the crosscompiler is installed in /opt/cross-pi-gcc

cross-pi-gcc-8.2.0/arm-linux-gnueabihf/lib/libpthread.so
cross-pi-gcc-8.2.0/arm-linux-gnueabihf/lib/libc.so

What does --prefix=/$TARGET mean?

Hi, Abhishek,
What does --prefix=/$TARGET mean?
Why this configuration succeed?
Why I modify --prefix=/ but got fail? [--with-sysroot=/ --with-build-sysroot=$SYSROOTDIR]

Bump to latest GCC and GDB versions

This proposal is to integrate the latest GCC v10.2.0 and GDB v9.2 in build matrix and deploy them through automated CI builds on sourceforge.

Raspbian Buster

Hi,

I was fighting for days to cross compile Qt for my new Pi Zero with your toolchais, and I almost gave up and reverted back to the gcc 4.6 what every tutorial suggests, when finally I stumble upon #27 (which starts with a problem I already resolved) and more specifically this comment: #27 (comment)

First of all, thanks for the toolchain here (even though the link is not right): #27 (comment)
It worked and solved my issues instantly.

But please, even if you don't want to make this toolchain "official", make it more clear that the current toolchains only support Stretch and not Buster, because that's not mentioned anywhere in the wiki or Readme.md.

Other than that, keep up the good work!

Instructions wrong

I think your instructions are wrong:

1, Update your environment:

sudo apt-get update && dist-upgrade

Should read:

sudo apt update && sudo apt dist-upgrade

Project Enhancements v3.0: Relicensing and Release open-source automated CLI build scripts.

From Author

Hello fellow developers.

I'm proud to announce that this project is now moving into the next phase of Free and open-source software. Since it initial release on Sourceforge, it has now over 7000 downloads from all across the globe within the short 1-year span and still growing fast. So I've decided to open-source all build-scripts(used to compile these toolchains easily) that I've developed over these years and turn this project into an Automated CI GCC compiling/building/deploying pipeline so that binaries are built automatically from the latest GCC source with ensured transparency at its every stage. Plus, This project is now being relicensed to GNU's General Public License(GPL) v3 which guarantees end users the freedom to run, study, share, and modify the software while ensuring that source is disclosed to community. I hope this will help everyone and take this project to greater heights.

Regards
@abhiTronix

Brief History:

This is a non-profit project that was initially originated for hosting precompiled GCC Toolchains Repository for raspberry pi but later these precompiled binaries were moved to Sourceforge, due to limited space available. These toolchains were developed as a part of my various research college projects but later I made them open-sourced for the public interest.

Roadmap

The project will move into the next phase in three easy steps which will be fulfilled in the next few days. These steps are as following:

  • Step -1: Update project License to GNU's General Public License(GPL) v3 (Done: #33)
  • Step-2: Release various build scripts and Setup continuous integration so that binaries are built automatically from the latest GCC source and finally auto-deploy compiled binaries to Sourceforge
  • Step-3: Fix all related bugs and Update docs.

Idea Credit:

@jcelerier

ASAN support is broken

Trying to use the built compiler to enable ASAN support results in a number of errors.

user@machine:~/cross-pi-gcc-8.3.0-0$ ./bin/arm-linux-gnueabihf-gcc -fsanitize=address /home/user/projects/git/test.c -o/tmp/test
/home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: warning: libdl.so.2, needed by /home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/lib/libasan.so, not found (try using -rpath or -rpath-link)
/home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: warning: libpthread.so.0, needed by /home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/lib/libasan.so, not found (try using -rpath or -rpath-link)
/home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: warning: libstdc++.so.6, needed by /home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/lib/libasan.so, not found (try using -rpath or -rpath-link)
/home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: warning: libm.so.6, needed by /home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/lib/libasan.so, not found (try using -rpath or -rpath-link)
/home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: /home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/lib/libasan.so: undefined reference to `dlvsym@GLIBC_2.4'
/home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: /home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/lib/libasan.so: undefined reference to `pthread_setspecific@GLIBC_2.4'
/home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: /home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/lib/libasan.so: undefined reference to `shm_unlink'
/home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: /home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/lib/libasan.so: undefined reference to `dlsym@GLIBC_2.4'
/home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: /home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/lib/libasan.so: undefined reference to `pthread_attr_setstacksize@GLIBC_2.4'
/home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: /home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/lib/libasan.so: undefined reference to `pthread_getattr_np@GLIBC_2.4'
/home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: /home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/lib/libasan.so: undefined reference to `signgam@GLIBC_2.4'
/home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: /home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/lib/libasan.so: undefined reference to `__signgam@GLIBC_2.23'
/home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: /home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/lib/libasan.so: undefined reference to `pthread_getspecific@GLIBC_2.4'
/home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: /home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/lib/libasan.so: undefined reference to `pthread_key_create@GLIBC_2.4'
/home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/bin/ld: /home/user/cross-pi-gcc-8.3.0-0/bin/../lib/gcc/arm-linux-gnueabihf/8.3.0/../../../../arm-linux-gnueabihf/lib/libasan.so: undefined reference to `shm_open'

Using the standard version of GCC shipped with Debian works without issue:

user@machine:~/cross-pi-gcc-8.3.0-0$ arm-linux-gnueabi-gcc -fsanitize=address /home/user/projects/git/test.c -o/tmp/test
user@machine:~/cross-pi-gcc-8.3.0-0$ 

An strace log shows that it is not searching the standard compiler search paths for the required libraries:

user@machine:~/cross-pi-gcc-8.3.0-0$ strace -ff ./bin/arm-linux-gnueabihf-gcc -fsanitize=address /home/user/projects/git/test.c -o/tmp/test 2>&1  | grep 'libdl\|libpthread\|libstdc++\|libm'
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
[pid 24819] openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
[pid 24819] openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
[pid 25137] openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
[pid 25205] openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
[pid 25258] openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
[pid 25258] openat(AT_FDCWD, "/arm-linux-gnueabihf/lib/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 25258] openat(AT_FDCWD, "/arm-linux-gnueabihf/lib/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 25258] write(2, "libdl.so.2", 10)  = 10
[pid 25258] openat(AT_FDCWD, "/arm-linux-gnueabihf/lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 25258] openat(AT_FDCWD, "/arm-linux-gnueabihf/lib/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 25258] write(2, "libpthread.so.0", 15) = 15
[pid 25258] openat(AT_FDCWD, "/arm-linux-gnueabihf/lib/libstdc++.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 25258] openat(AT_FDCWD, "/arm-linux-gnueabihf/lib/libstdc++.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 25258] write(2, "libstdc++.so.6", 14) = 14
[pid 25258] openat(AT_FDCWD, "/arm-linux-gnueabihf/lib/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 25258] openat(AT_FDCWD, "/arm-linux-gnueabihf/lib/libm.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
[pid 25258] write(2, "libm.so.6", 9)    = 9
[pid 25205] write(2, "libdl.so.2", 10libdl.so.2)  = 10
[pid 25205] write(2, "libpthread.so.0", 15libpthread.so.0) = 15
[pid 25205] write(2, "libm.so.6", 9libm.so.6)    = 9

Version for Raspberry Pi Desktop (for PC and Mac)

I want to get the exact same compiler for raspberry pi PC version
Here is the version info from the PC:
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster

Bump to gcc 9.1

Summary:

GCC 9.1 has just released.Binaries builds is in Progress!

Best way to use native compiler along-side installed version?

I'm attempting to build DOSBox from source using the native 8.3.0 build on a Pi3.

I've extracted the native gcc 8.3.0 build to /opt, and set the following environment variables:

OVERRIDE="/opt/native-pi-gcc-8.3.0-1/bin"
export AR="$OVERRIDE/gcc-ar-8.3.0"
export CC="$OVERRIDE/gcc-8.3.0"
export CXX="$OVERRIDE/g++-8.3.0"
export CPP="$OVERRIDE/cpp-8.3.0"
export FC="$OVERRIDE/gfortran-8.3.0"
export RANLIB="$OVERRIDE/gcc-ranlib-8.3.0"
export LD="$CXX"

For LTO builds, I additionally have:

CCPATH="/opt/native-pi-gcc-8.3.0-1/libexec/gcc/arm-linux-gnueabihf/8.3.0/"
export ARFLAGS="--plugin $GCCPATH/liblto_plugin.so"
export RANLIBFLAGS="--plugin $GCCPATH/liblto_plugin.so"

Attempting to ./configure with the above reports:

configure:3582: /opt/native-pi-gcc-8.3.0-1/bin/gcc-8.3.0    conftest.c  >&5
/usr/bin/ld: cannot find crt1.o: No such file or directory
/usr/bin/ld: cannot find crti.o: No such file or directory

I think the compiler should come with these files, but I didn't find them.
But I found copies in /usr/lib/arm-linux-gnueabihf, so I forced the linker to see them using:

export LIBRARY_PATH=/usr/lib/arm-linux-gnueabihf

This progresses us to the next issue ./configure hits:

configure:3708: /opt/native-pi-gcc-8.3.0-1/bin/gcc-8.3.0 -o conftest    conftest.c  >&5
In file included from /usr/include/stdio.h:27,
                 from conftest.c:11:
/usr/include/features.h:364:12: fatal error: sys/cdefs.h: No such file or directory
 #  include <sys/cdefs.h>
            ^~~~~~~~~~~~~
compilation terminated.

The native build doesn't contain these headers, but I found them locally in /usr/include/arm-linux-gnueabihf:

CFLAGS="-I/usr/include/arm-linux-gnueabihf"
CXXFLAGS="-I/usr/include/arm-linux-gnueabihf"

This gets us passed that, but now we see these warnings:

configure: WARNING: png.h: accepted by the compiler, rejected by the preprocessor!
configure: WARNING: png.h: proceeding with the compiler's result
...
configure: WARNING: SDL_net.h: accepted by the compiler, rejected by the preprocessor!
configure: WARNING: SDL_net.h: proceeding with the compiler's result
...
configure: WARNING: X11/XKBlib.h: accepted by the compiler, rejected by the preprocessor!
configure: WARNING: X11/XKBlib.h: proceeding with the compiler's result
...
and so on.

At this point, it feels too off the rails.

I'm hoping I've doing wrong - maybe there's a more seamless approach? - symlinks? PATH override? copying some portion overtop /usr/...? Happy to try any suggestions.

Much thanks for the nice organized builds!
I want to report the cross-compiler is working perfectly, and I'm running an 8.3 cross-compiled build of the latest 4.19 kernel.

Generic CrossCompiler

Hello,

You're job is great.

I'm searching for raspberry cross toolchain based on a recent gcc (>8) which could run on old raspbian (jessie).
And a single toolchain for all RaspberryPI models.

I'm developing a domotic software , and I would like to provide binaries which could run on any raspberrypi (from 1 to 4, which potentially old raspbian like jessie, without any specific optimizations).

And I need a recent gcc to support c++11/17 features (actually I'm using https://github.com/raspberrypi/tools but with gcc4.9.3)

So my question, do you provide such crosstoolchain ? if yes which one ?

Regards

Install scripts

Is it safe to modify them for 8.3, you said don't modify because of security....

I get errro after modify configuration

Hi, abhiTronix
I have question about compile cross gcc at stage 1.

original configuration is:
../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/$TARGET/libc --with-build-sysroot=$SYSROOTDIR --with-tune=$TUNE --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --with-mode=$MODE --disable-multilib
make -s -j$(nproc) all-gcc
make -s install-gcc DESTDIR=$INSTALLDIR
this script will work and generate gcc

when I modify like this:
../configure --prefix= --target=$TARGET --enable-languages=$LANGUAGES --with-sysroot=/ --with-build-sysroot=$SYSROOTDIR --with-tune=$TUNE --with-arch=$ARCH --with-fpu=$FPU --with-float=hard --with-mode=$MODE --disable-multilib
make -s -j$(nproc) all-gcc
make -s install-gcc DESTDIR=$INSTALLDIR
this script will fail and give me an error, why?

Hope your reply.

Exec format error when trying execute gcc-8.2.0

After all the setup I now get an exec format error
I now get an: root@raspberrypi:/home/pi/gcc_all/cross-pi-gcc-8.2.0/bin# .arm-linux-gnueabihf- gcc-8.2.0 bash: ./arm-linux-gnueabihf-gcc-8.2.0: cannot execute binary file: Exec format error

Documentation says 9.1 even when 9.2 is also available

Documentation says latest gcc vs 9.1 even though 9.2 is available, on your sourceforge site...
I know it actually has both 9.1 and 9.2 it just gets confusing
And I think you should get credit for being 9.2 , which I've been using for a month or so..

cross-compiler 8.2.0 doesn't have {sysroot}/usr/include in its header search path

with your 8.2.0 compiler I got :

$ echo | LANG=en_US.UTF-8 arm-linux-gnueabihf-gcc --sysroot=/home/antoine/dev/ofnode/sysroot -E -Wp,-v -
ignoring nonexistent directory "/opt/cross-pi-gcc-8.2.0/bin/../lib/gcc/arm-linux-gnueabihf/8.2.0/../../../../arm-linux-gnueabihf/sys-include"
ignoring duplicate directory "/opt/cross-pi-gcc-8.2.0/bin/../lib/gcc/../../lib/gcc/arm-linux-gnueabihf/8.2.0/include"
ignoring duplicate directory "/opt/cross-pi-gcc-8.2.0/bin/../lib/gcc/../../lib/gcc/arm-linux-gnueabihf/8.2.0/include-fixed"
ignoring nonexistent directory "/opt/cross-pi-gcc-8.2.0/bin/../lib/gcc/../../lib/gcc/arm-linux-gnueabihf/8.2.0/../../../../arm-linux-gnueabihf/sys-include"
ignoring duplicate directory "/opt/cross-pi-gcc-8.2.0/bin/../lib/gcc/../../lib/gcc/arm-linux-gnueabihf/8.2.0/../../../../arm-linux-gnueabihf/include"
#include "..." search starts here:
#include <...> search starts here:
 /opt/cross-pi-gcc-8.2.0/bin/../lib/gcc/arm-linux-gnueabihf/8.2.0/include
 /opt/cross-pi-gcc-8.2.0/bin/../lib/gcc/arm-linux-gnueabihf/8.2.0/include-fixed
 /opt/cross-pi-gcc-8.2.0/bin/../lib/gcc/arm-linux-gnueabihf/8.2.0/../../../../arm-linux-gnueabihf/include
End of search list.
# 1 "<stdin>"
# 1 "<built-in>"
# 1 "<command-line>"
# 31 "<command-line>"
# 1 "/opt/cross-pi-gcc-8.2.0/arm-linux-gnueabihf/include/stdc-predef.h" 1 3
# 32 "<command-line>" 2
# 1 "<stdin>"

while with the 8.1.0 I installed from archlinux repo I have :

$  echo | arm-linux-gnueabihf-gcc --sysroot=~/dev/ofnode/sysroot -E -Wp,-v -
ignoring nonexistent directory "~/dev/ofnode/sysroot/usr/arm-linux-gnueabihf/include"
ignoring nonexistent directory "~/dev/ofnode/sysroot/usr/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/arm-linux-gnueabihf/8.1.0/include
 /usr/lib/gcc/arm-linux-gnueabihf/8.1.0/include-fixed
 /usr/lib/gcc/arm-linux-gnueabihf/8.1.0/../../../../arm-linux-gnueabihf/include
End of search list.
# 1 "<stdin>"
# 1 "<built-in>"
# 1 "<command-line>"
# 31 "<command-line>"
# 1 "/usr/arm-linux-gnueabihf/include/stdc-predef.h" 1 3
# 32 "<command-line>" 2
# 1 "<stdin>"
[antoine@antoine-pc ~]$  echo | arm-linux-gnueabihf-gcc --sysroot=/home/antoine/dev/ofnode/sysroot -E -Wp,-v -
ignoring nonexistent directory "/home/antoine/dev/ofnode/sysroot/usr/arm-linux-gnueabihf/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/arm-linux-gnueabihf/8.1.0/include
 /usr/lib/gcc/arm-linux-gnueabihf/8.1.0/include-fixed
 /usr/lib/gcc/arm-linux-gnueabihf/8.1.0/../../../../arm-linux-gnueabihf/include
 /home/antoine/dev/ofnode/sysroot/usr/include
End of search list.
# 1 "<stdin>"
# 1 "<built-in>"
# 1 "<command-line>"
# 31 "<command-line>"
# 1 "/usr/arm-linux-gnueabihf/include/stdc-predef.h" 1 3
# 32 "<command-line>" 2
# 1 "<stdin>"

Please note that in the second case, #include <...> search starts here: lists /home/antoine/dev/ofnode/sysroot/usr/include while the first (8.2.0) doesn't.

While I can manually add the include path with a -I flag, it makes this compiler hard to use with CMake which strips off "${CMAKE_SYSROOT}/usr/include".
see related issue here : https://gitlab.kitware.com/cmake/cmake/issues/17966

Why does not copy compiled binaries of glibc into both cross-gcc and native-gcc?

As my opinion, we can keep completion of both cross-gcc and native-gcc if script could copy compiled binaries of glibc into two edition.
Another question is need add option --disable-werror when configure glibc if version is lower than current system is, like version 2.23. I add this option to configure then I get the whole binaries of glibc-2.23.

regards,
jackyxinli

Merge multiple Project build jobs

This proposal is to merge and shrink project's different GCC jobs (based on GCC versions, RpiOS types etc.) for each Pi type, into a much simpler/compact form using GitHub Actions jobs.<job_id>.strategy.matrix where, you can easily define a matrix of different job configurations. A matrix allows you to create multiple jobs by performing variable substitution in a single job definition.

Documentation seems to be missing part of setup in the script

I know I can't use experimental install script, but it seems, that the readme.md:
The script has a section where links are set up /usr/bin links to /opt/ such as:
But I can't find the equivalent section in the readme/nativeCompiler
such as:

sudo ln -s /opt/native-pi-gcc-8.3.0-2/bin/arm-linux-gnueabihf-g++-8.3.0 g++

Did not work for me

I ran a script to install GCC8.2.0 and after 9 hours I ran the same commands to compile which gave me the error and it worked. I believe your library links are not complete.

Using your method I have the following error
configure: error: No working boost sleep implementation found.

After install using the script the same install worked like a charm.

My colleague found the same thing.

Maybe this will work for basic compliations but certainly not for ours

From my colleague
I think the links to the precompiled files are incomplete. I saw that some files in the bin folder have the same size. I tried different things without success. How many files have you in your gcc8 bin folder?"

QT build instructions for Raspberry Pi

This issue aim for adding step-by-step instructions for cross-compiling latest QT for Raspberry Pi using toolchains available within this project in its Wiki.

Cross-Compiler and Buildroot

Hi,

I am trying to use your cross-compiler along with buildroot. My host is an Ubuntu 16.04 and the target is Raspberry PI 0 W.

I am using the cross-pi-gcc-8.3.0-0 and following next instructions: https://github.com/abhiTronix/raspberry-pi-cross-compilers/wiki/Cross-Compiler:-Installation-Instructions

ibercomp@ibercomp-MS-7994:~$ arm-linux-gnueabihf-gcc --version
arm-linux-gnueabihf-gcc (GCC) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

First I have tried with the temporary installation and after with permanent, but any one seems to work when try to build an image with buildroot.

ibercomp@ibercomp-MS-7994:~/rcr/projects/cp4/buildroot$ make
/usr/bin/make -j1 O=/home/ibercomp/rcr/projects/cp4/buildroot/output HOSTCC="/usr/bin/gcc" HOSTCXX="/usr/bin/g++" syncconfig

You seem to have the current working directory in your
LD_LIBRARY_PATH environment variable. This doesn't work.
support/dependencies/dependencies.mk:27: recipe for target 'dependencies' failed
make[1]: *** [dependencies] Error 1
Makefile:84: recipe for target '_all' failed
make: *** [_all] Error 2

Any idea of what I am missing?

Kind regards,

RAfa

limits.h broken

Expected behavior (using host system's GCC):

$ echo -e "#include <limits.h>\n_POSIX_PATH_MAX" | gcc - -E -P
256

Observed behavior with cross-compiler from this project:

$ echo -e "#include <limits.h>\n_POSIX_PATH_MAX" | /opt/cross-pi-gcc/bin/arm-linux-gnueabihf-gcc - -E -P
_POSIX_PATH_MAX

It looks like limits.h from include-fixed is not including the real limits.h.

Bump GCC to version 10.1.0

This proposal is to integrate the latest GCC v10.1.0 in build matrix and deploy them through automated CI builds on sourceforge.

g++-arm-linux-gnueabihf

I attempted to install the below package..........is this normal or do you have a work=around for it?

pi@raspberrypi:~/$ sudo apt-get install g++-arm-linux-gnueabihf curl
Reading package lists... Done
Building dependency tree
Reading state information... Done
curl is already the newest version (7.52.1-5+deb9u9).
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
g++-arm-linux-gnueabihf : Depends: g++-5-arm-linux-gnueabihf (>= 5.2.1-13cross1) but it is not installable
E: Unable to correct problems, you have held broken packages.

Docker images

Have you got some docker image incuding your toolchains ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.