cxc-build is a python script that builds a large collection of GCC cross compilers for various platforms.
GMP, MPFR, and MPC are built only once as they are shared between all of the toolchains built by this script. binutils, gdb, gcc, and newlib are then built for each of the selected targets.
| Target | Binutils | GDB | GCC | libc |
|---|---|---|---|---|
aarch64-none-elf |
✔ | ✔ | ✔ | newlib |
aarch64-unknown-elf |
✔ | ✔ | ✔ | newlib |
aarch64-unknown-linux |
✘ | ✘ | ✘ | glibc |
arm-none-eabi |
✔ | ✔ | ✔ | newlib |
arm-unknown-linux |
✘ | ✘ | ✘ | glibc |
avr |
✔ | ✔ | ✔ | avrlibc |
frv-none-elf |
✔ | ✔ | ✔ | newlib |
frv-unknown-elf |
✔ | ✔ | ✔ | newlib |
frv-unknown-linux |
✘ | ✘ | ✘ | glibc |
ia64-none-elf |
✔ | ✘ | ✔ | newlib |
ia64-unknown-elf |
✔ | ✘ | ✔ | newlib |
ia64-unknown-linux |
✘ | ✘ | ✘ | glibc |
microblaze-none-elf |
✔ | ✔ | ✔ | newlib |
microblaze-unknown-elf |
✔ | ✔ | ✔ | newlib |
microblaze-unknown-linux |
✘ | ✘ | ✘ | glibc |
mips-none-elf |
✔ | ✔ | ✔ | newlib |
mips-unknown-elf |
✔ | ✔ | ✔ | newlib |
mips-unknown-linux |
✘ | ✘ | ✘ | glibc |
mips64-none-elf |
✔ | ✔ | ✔ | newlib |
mips64-unknown-elf |
✔ | ✔ | ✔ | newlib |
mips64-unknown-linux |
✘ | ✘ | ✘ | glibc |
or1k-none-elf |
✔ | ✔ | ✔ | newlib |
or1k-unknown-elf |
✔ | ✔ | ✔ | newlib |
or1k-unknown-linux |
✘ | ✘ | ✘ | glibc |
m68k-none-elf |
✔ | ✔ | ✔ | newlib |
m68k-unknown-elf |
✔ | ✔ | ✔ | newlib |
m68k-unknown-linux |
✘ | ✘ | ✘ | glibc |
lm32-none-elf |
✔ | ✔ | ✔ | newlib |
ppcle-none-elf |
✔ | ✔ | ✔ | newlib |
ppcle-none-eabi |
✔ | ✔ | ✔ | newlib |
ppcle-unknown-elf |
✔ | ✔ | ✔ | newlib |
ppcle-unknown-linux |
✘ | ✘ | ✘ | glibc |
ppc-none-elf |
✔ | ✔ | ✔ | newlib |
ppc-none-eabi |
✔ | ✔ | ✔ | newlib |
ppc-unknown-elf |
✔ | ✔ | ✔ | newlib |
ppc-unknown-linux |
✘ | ✘ | ✘ | glibc |
ppc64le-none-elf |
✔ | ✔ | ✘ | none |
ppc64le-none-eabi |
✘ | ✘ | ✘ | none |
ppc64le-unknown-elf |
✔ | ✔ | ✘ | none |
ppc64le-unknown-linux |
✘ | ✘ | ✘ | none |
ppc64-none-elf |
✔ | ✔ | ✘ | none |
ppc64-none-eabi |
✘ | ✘ | ✘ | none |
ppc64-unknown-elf |
✔ | ✔ | ✘ | none |
ppc64-unknown-linux |
✘ | ✘ | ✘ | none |
riscv32-none-elf |
✔ | ✔ | ✔ | newlib |
riscv32-unknown-elf |
✔ | ✔ | ✔ | newlib |
riscv32-unknown-linux |
✘ | ✘ | ✘ | glibc |
riscv64-none-elf |
✔ | ✔ | ✔ | newlib |
riscv64-unknown-elf |
✔ | ✔ | ✔ | newlib |
riscv64-unknown-linux |
✘ | ✘ | ✘ | glibc |
rx-none-elf |
✔ | ✔ | ✔ | newlib |
rx-unknown-elf |
✔ | ✔ | ✔ | newlib |
rx-unknown-linux |
✘ | ✘ | ✘ | glibc |
s390-unknown-linux |
✘ | ✘ | ✘ | none |
s390x-ibm-tpf |
✔ | ✘ | ✘ | none |
s390x-unknown-linux |
✘ | ✘ | ✘ | none |
sh4-none-elf |
✔ | ✔ | ✘ | none |
sh4-unknown-elf |
✔ | ✔ | ✘ | none |
sh4-unknown-linux |
✘ | ✘ | ✘ | none |
sparc-none-elf |
✔ | ✔ | ✔ | newlib |
sparc-unknown-elf |
✔ | ✔ | ✔ | newlib |
sparc-unknown-linux |
✘ | ✘ | ✘ | glibc |
sparc64-none-elf |
✔ | ✔ | ✘ | none |
sparc64-unknown-elf |
✔ | ✔ | ✘ | none |
sparc64-unknown-linux |
✘ | ✘ | ✘ | glibc |
x86_64-none-elf |
✔ | ✔ | ✔ | newlib |
x86_64-unknown-elf |
✔ | ✔ | ✔ | newlib |
x86_64-unknown-linux |
✘ | ✘ | ✘ | glibc |
hppa-none-elf |
✔ | ✔ | ✘ | none |
hppa-unknown-elf |
✔ | ✔ | ✘ | none |
hppa64-none-elf |
✔ | ✔ | ✘ | none |
hppa64-unknown-elf |
✔ | ✔ | ✘ | none |
hppa1.1-hp-hpux10 |
✔ | ✘ | ✔ | none |
hppa1.1-hp-hpux11 |
✔ | ✘ | ✔ | none |
hppa2.0-hp-hpux10 |
✔ | ✘ | ✔ | none |
hppa2.0-hp-hpux11 |
✔ | ✘ | ✔ | none |
There are a few things that need to be fixed or added. They are as follows.
- Allow for selection of install and build paths at execution time without the need to edit the script
- Allow for selection of targets to build and/or not build
- Fix the
x-unknown-linuxtargets so they build and then enable them
This script is licensed under the BSD 3 Clause, the full text of which can be found in the LICENSE file.