GCC
For a long time, GCC 2.95.3 was a de facto standard for advanced C/C++ compilation, provided in SpareMiNT. Before 2.95 it was possible to run GCC also on other OS than MiNT, initially even without long filenames.
Around 2006 Patrice Mandin maintained a patch against gcc 3.3.x and binutils 2.15 and 2.16, mostly based on the original gcc-2.95.3 and binutils-2.13 patches. It worked pretty well but there were some unsolved bugs, especially in gcc's C++ backend.
Then in July 2007 Vincent Rivière came with gcc-4.2.0 and binutils-2.17, fixed basically all the bugs and had been maintaining it up to gcc-4.6.4 and binutils-2.30. In August 2023 he came with another major upgrade, an ELF compatible gcc-13.2.0 and binutils-2.41. This allowed us to use modern tools, most prominently gdb which basically abandoned the obsolete a.out's "stabs" debugging data format produced by m68k-atari-mint toolchain. m68k-aout support was later completely removed removed in binutils-2.31.
These days one can choose from many different gcc / binutils / libc flavours.
FreeMiNT's m68k-atari-mint (gcc-7.5.0_20250709, binutils-2.30_20180703)
- based on Vincent's toolchain
- maintained by the freemint community
- offered as native builds for the 68000, 68020-60 and 5475 and easily cross-compilable with m68k-atari-mint-build
- unlikely to be updated anymore
FreeMiNT's m68k-atari-mintelf (gcc-13.4.0, binutils 2.42)
- based on Vincent's toolchain, so far there hasn't been a reason to update to a newer gcc/binutils version
- maintained by the freemint community
- offered as native builds for the 68000, 68020-60 and 5475 and easily cross-compilable with m68k-atari-mint-build
- conservative, major releases are published only if there is a good reason / important fix
Vincent Rivière's m68k-atari-mint cross-tools (gcc-4.6.4_20200504, binutils-2.30_20180703)
- initial base for m68k-atari-mint toolchain
- gcc-4.6.4 is still used in EmuTOS for producing smaller code than later gcc versions
- installer for Cygwin
- PPA repository for Ubuntu and Debian GNU/Linux
- links to other Linux/Mac OS X packages
- ultra-conservative and stable: versions are sparsely updated, everything has been personally tested by Vincent
Vincent Rivière's m68k-atari-mintelf cross-tools (gcc-13.2.0_20240130, binutils-2.42_20240218)
- initial base for m68k-atari-mintelf toolchain
- installer for Cygwin
- PPA repository for Ubuntu and Debian GNU/Linux
- ultra-conservative and stable: versions are sparsely updated, everything has been personally tested by Vincent
Thorsten Otto's m68k-atari-mint(elf) cross-tools (latest gcc and binutils)
- related to m68k-atari-mint and m68k-atari-mintelf toolchains however massively patched
- support for 32-bit and 64-bit Cygwin, MinGW and Linux packages as well as for Mac OS X packages
- native builds available, too
- binutils-2.45 (with backported a.out support), binutils-2.30
- gcc-15.2.0, gcc-14.3.0, gcc-13.4.0, gcc-12.3.0, gcc-11.4.0, gcc-10.5.0, gcc-9.5.0, gcc-8.5.0,gcc-7.5.0, gcc-4.6.4
- a lot of precompiled libraries available
- bleeding edge
George Nakos' brownELF (latest gcc and binutils)
- implemented from scratch
- offered as source code only but can be tested in BrownBot (a GodBolt Compiler Exlorer fork before it had native m68k support)
- very few changes to gcc, no changes to binutils (uses brownoutto convert ELF executables to Atari PRG)
- a compiler you could just copy around on USB sticks and point your builds at (meaning: MSYS2 on Windows, statically linked as far as possible)
- bleeding edge, executables are usually compiled using supplied scripts to avoid typing hard to remember command line parameters
Mikael Hildenborg's m68k-atari-elf (gcc-15.1.0, binutils-2.44)
- implemented from scratch
- offered as source code only
- tiny change to gcc (just to introduce a new target) and no changes to binutils (uses a custom ELF to PRG tool as well as custom linker scripts)
- atari-specific functions implemented in newlib
- includes gdbserver to run on Atari hardware to be able to remotely debug the executables (!)
- gdbserver's latest version supports debugging mintelf executables so you can use all features from mintlib instead of the limited (minimal) atari support in newlib
Fredrik Noring's TOS/libc (any m68k-elf-gcc/binutils)
- implemented from scratch
- offered as source code only
- no changes to gcc and binutils (uses a custom ELF to PRG tool as well as custom linker scripts)
- atari-specific functions implemented as part of the library
Armin Diedering's m68k-atari-mint-elf (gcc-8.2.0, binutils-2.30)
- first ever attempt to utilise ELF in Atari world (back in 2012!), reusing freemint's libraries (mintlib, fdlibm, gemlib, ...)
- offered as source code only: https://github.com/ardi69/m68k-atari-mint-elf
- largely unknown to (non-German?) Atari world
- nice features like function attributes for SLB or 16-bit function parameters
- scripts seem to be updated in 2024