Build scripts for a slim LLVM-based toolchain targeting AVR and ARM (Arduino).
./build.sh llvm # Build complete LLVM toolchain
./build.sh sysroot-avr # Build AVR sysroot
./build.sh --help # See all optionstc-build/
├── build.sh # Local build entry point
├── versions.conf # All versions and URLs for source tarballs
├── common/ # Shared scripts
│ ├── utils.sh # Common functions
│ ├── build-deps.sh # Build dependencies
│ └── push-build.sh # Package and release
├── llvm/ # LLVM build scripts
├── sysroot/ # Sysroot build scripts
├── binutils/ # BFD linker build
└── dockerfiles/ # Docker builds for CI
| Component | Selection |
|---|---|
| Compiler | Clang/Clang++ |
| Binary Tools | LLVM Tools |
| Linker | LLD (default), BFD (AVR only) |
| Libc Library | avr-libc (AVR), newlib (ARM) |
| Runtime Library | libgcc |
Due to incomplete AVR linker script support in LLD, the toolchain includes the GNU BFD linker as a workaround. Once LLD fully supports AVR linker scripts, BFD will be removed.
A clang-wrapper is included mprove compatibility with the Arduino build system by handling specific flag adjustments.
- LLVM Toolchain - Statically linked Clang/LLVM binaries
- Sysroot - Target libraries (avr-libc/newlib + libgcc)
- BFD Linker - Optional GNU linker for AVR
Apache-2.0 - See LICENSE