Short: Modernized libnix C runtime (GCC 6.5.0b) Author: Matthias Fleischer, Gunther Nikl, Stefan "Bebbo" Franke Uploader: jj201 telia com (Jörgen Johansson) Type: dev/cross Version: 2.1-cross Requires: AmigaOS 2.0+, m68k-amigaos-gcc (Bebbo toolchain) Architecture: m68k-amigaos >= 2.0. Distribution: Public Domain DESCRIPTION This is a maintained and extended version of libnix, a lightweight C runtime library for AmigaOS/m68k. It is intended for use with the GCC 6.5.0b cross compiler and provides a small, fast and dependency-free runtime for building standalone AmigaOS binaries. The library includes startup code, ANSI C functions, POSIX stubs, AmigaOS wrappers and math libraries for 68020+ and 68881/2. It produces binaries that run on Kickstart 2.0 through 3.2 without requiring ixemul or newlib at runtime. FEATURES * AmigaOS-native startup code (ncrt0.o) * No external runtime dependencies * Small binary footprint * Works on OS 2.0?3.2 * Optimized for 68020?68060 * Supports soft-float and hard-float builds * Compatible with GCC 6.x?11.x INSTALLATION To install libnix into your cross-compiler toolchain, run: make -f Makefile.gcc6 make -f Makefile.gcc6 install PREFIX=/opt/amiga This installs all library variants, startup objects, headers and tools into: /opt/amiga/m68k-amigaos/libnix/ /opt/amiga/m68k-amigaos/lib/ /opt/amiga/bin/ Manual installation is possible, but not recommended. You must replicate the directory structure created by: make -f Makefile.gcc6 install PREFIX=/opt/amiga This includes multiple library variants (lib, libb, libm020, libm881, etc.), startup objects, stubs, and the mkstub tool. See Makefile.gcc6 for details. Note: This version of libnix requires the m68k-amigaos-gcc cross-compiler. It does not work with the old Amiga-native gcc 2.95.3 or other legacy AmigaOS gcc versions. DIFFERENCES FROM UPSTREAM LIBNIX 2.1 This version contains many changes compared to the original libnix 2.1: 1. Updated for modern GCC versions (6.x?11.x). Adjusted headers, prototypes and inline behaviour to match newer compilers. 2. Uses newlib headers during build. This affects only the build process, not the runtime behaviour. No newlib components are required at runtime. 3. Improved AmigaOS startup code. Better stack setup, cleaner exit handling, improved argc/argv handling and fixes for 68040/68060 cache behaviour. 4. Numerous bug fixes. Corrected undefined behaviour, improved malloc/free, fixed math precision issues and improved DOS file I/O handling. 5. Additional AmigaOS wrappers. Safer Exec and DOS helpers, improved handling of file locks and BPTRs, and more robust library opening/closing. 6. Updated math libraries. Rebuilt libm020.a and libm881.a with improved precision and performance on 68040/68060. 7. Reorganised source tree. Removed obsolete files, modernised Makefiles and added GCC-specific build scripts. LICENSE This version of libnix is Public Domain. You may use, modify and redistribute it without restriction. CONTACT Original authors: Matthias Fleischer Gunther Nikl Modern maintainer: Stefan "Bebbo" Franke 2026-01-14