These are the base requirements and enough for most (desktop) use.
Linking a binary needs an installed C compiler (
cc). At the moment it
expects GCC or a recent Clang.
The Cortex-M family of microcontrollers is well supported, as it uses the stable ARM LLVM backend (which is even used in the propietary C compiler from ARM). Compiling to object code should be supported out of the box, but compiling the final binary and flashing it needs some extra tools.
arm-none-eabi-objcopy) for linking and for producing .hex files for flashing.
clang-7) for building assembly files and the compiler runtime library https://compiler-rt.llvm.org/.
The AVR backend has similar requirements as the
ARM Cortex-M backend. It
needs the following tools:
avr-objcopy) for flashing.
avr-gcc) for linking object files.
avr-libc), which is not installed on Debian as a dependency of
avrdudefor flashing to an Arduino.
The WebAssembly backend only needs a special linker from the LLVM project:
ld.lld-7) for linking WebAssembly files together.