buildcross - a tool for building GCC cross toolchains
Usage:
buildcross [options] [<TARGET>] [<CROSS_DIR>]
Options:
--cross-dir=<CROSS_DIR> | -c <CROSS_DIR>
Place resulting cross-compiler in <CROSS_DIR>.
Default: <CWD>/cross-<TARGET>
--downloads-dir=<DOWNLOADS_DIR> | -d <DOWNLOADS_DIR>
Place downloaded sources in <DOWNLOADS_DIR>.
Default: <CWD>/downloads
--host-tools-dir=<HOST_TOOLS_DIR> | -h <HOST_TOOLS_DIR>
Place built host tools in <HOST_TOOLS_DIR>.
Default: <CWD>/host-tools
-j<N>
Pass -j<N> to make. Default: empty
--sources-dir=<SOURCES_DIR> | -s <SOURCES_DIR>
Place unpacked source archives in <SOURCES_DIR>.
Default: <CWD>/sources
--target=<TARGET> | -t <TARGET>
Build the indicated <TARGET>. If this option is
not present then <TARGET> must be present as the
first non-option parameter.
Supported targets and resulting toolchains:
| Target | Toolchain |
|---|---|
| 6502 | 6502 (binutils from cc65, libtinyc) |
| a29k | a29k-unknown-coff (no libc) 1 |
| aarch64 | aarch64-unknown-linux-gnu |
| aarch64-mingw64 | aarch64-w64-mingw32 |
| alpha | alpha-unknown-linux-gnu |
| arc | arc-unknown-linux-gnu |
| arc64 | arc64-unknown-linux-gnu |
| armv7l | armv7l-unknown-linux-gnueabi |
| avr | avr-unknown-elf (no libc) |
| avr32 | avr32-unknown-linux-uclibc 2 |
| bfin | bfin-unknown-linux-uclibc |
| bpf | bpf-unknown-none (no libc) |
| c4x | c4x-unknown-coff (no libc) 1 |
| c6x | c6x-unknown-uclinux |
| cr16 | cr16-unknown-elf |
| cris | crisv32-unknown-linux-uclibc |
| crx | crx-unknown-elf (no libc) 2 |
| csky | csky-unknown-linux-gnu (only little-endian) |
| d10v | d10v-unknown-elf 1 |
| d30v | d30v-unknown-elf (no libc) 3 |
| epiphany | epiphany-unknown-elf |
| fr30 | fr30-unknown-elf |
| frv | frv-unknown-linux-uclibc |
| ft32 | ft32-unknown-elf |
| h8300 | h8300-unknown-linux-uclibc |
| hexagon | hexagon-unknown-linux-gnu 1 |
| hppa | hppa-unknown-linux-gnu (no -m64 support) |
| i860 | i860-stardent-sysv4 (no libc) 1 |
| i960 | i960-unknown-elf with uclinux and uclibc 1 |
| ia16 | ia16-unknown-elf 2 |
| ia64 | ia64-unknown-linux-gnu |
| ip2k | ip2k-unknown-elf (no libc) 3 |
| iq2000 | iq2000-unknown-elf |
| kvx | kvx-unknown-uclibc |
| lm32 | lm32-uclinux-uclibc |
| loongarch64 | loongarch64-unknown-linux-gnu |
| m1750 | m1750-coff (custom libc) 1 |
| m32c | m32c-unknown-elf 2 |
| m32r | m32r-unknown-elf |
| m6809 | m6809-unknown-none with newlib 2 |
| m68hc11 | m68hc11-unknown-elf 2 |
| m68k | m68k-unknown-linux-gnu |
| m68k-elf | m68k-unknown-elf |
| m68k-uclibc | m68k-unknown-linux-uclibc |
| m88k | m88k-unknown-openbsd (elf, no libc) 2 |
| maxq | maxq-unknown-coff (no libc) 2 |
| mcore | mcore-unknown-elf |
| mep | mep-unknown-elf (no libc) 2 |
| metag | metag-unknown-linux-uclibc 2 |
| microblaze | microblaze-unknown-linux-gnu |
| mips64 | mips64-unknown-linux-gnu with -mabi=64, -mabi=n32, and -mabi=32 support |
| mmix | mmix-knuth-mmixware with newlib |
| mn10300 | mn10300-unknown-elf |
| moxie | moxie-unknown-elf |
| msp430 | msp430-unknown-elf |
| mt | mt-unknown-elf 1 |
| nds32 | nds32le-unknown-linux-gnu |
| nios2 | nios2-unknown-linux-gnu |
| ns32k | ns32k-unknown-netbsd (no libc) 3 |
| nvptx | nvptx-none with newlib |
| or1k | or1k-unknown-linux-gnu |
| pdp11 | pdp11-unknown-aout (no libc) |
| pj | pjl-unknown-elf (no libc) 1 |
| ppc64 | ppc64-unknown-linux-gnu with -m64 and -m32 support |
| ppc64le | ppc64le-unknown-linux-gnu (no -m32 support) |
| pru | pru-unknown-elf |
| rl78 | rl78-unknown-elf |
| riscv64 | riscv64-unknown-linux-gnu (no 32-bit support) |
| rx | rx-unknown-elf |
| s390x | s390x-unknown-linux-gnu with -m64 and -m31 support |
| score | score-unknown-elf (no libc) 2 |
| sh4 | sh4-unknown-linux-gnu |
| sparc64 | sparc64-unknown-linux-gnu with -m64 and -m32 support |
| tilegx | tilegx-unknown-linux-gnu |
| tms9900 | tms9900-unknown-elf (no libc) 2 |
| tricore | tricore-unknown-elf |
| ubicom32 | ubicom32-linux-uclibc 2 |
| v850 | v850e-uclinux-uclibc |
| vax | vax-unknown-linux (no libc or kernel headers) |
| visium | visium-unknown-elf |
| x86_64 | x86_64-unknown-linux-gnu with -m64, -mx32, and -m32 support |
| x86_64-mingw64 | x86_64-w64-mingw32 with -m64 and -m32 support |
| x86_64-musl | x86_64-unknown-linux-musl (only -m64) |
| x86_64-uclibc | x86_64-unknown-linux-uclibc (only -m64) |
| xc16x | xc16x-unknown-elf 2 |
| xstormy16 | xstormy16-unknown-elf |
| xtensa | xtensa-unknown-linux-uclibc |
| z8k | z8k-unknown-coff with newlib 1 |
| zpu | zpu-unknown-elf 2 |
All toolchains include the libc indicated by their target triplets, elf ones with newlib, unless otherwise noted.
Notes:
Footnotes
-
In addition to 3, requires a 32-bit build. See the code for details. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10
-
Requires an old version of the host GCC. See the code for details. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11 ↩12 ↩13 ↩14 ↩15 ↩16
-
In addition to 2, requires a special build procedure. See the code for details. ↩ ↩2 ↩3 ↩4