Short: BSD/Unix runtime environment Author: Markus Wild, Hans Verkuil et al.; v80.2: Jörgen Johansson Uploader: jj201 telia com (Jörgen Johansson) Type: dev/lib Version: 80.2 Replaces: dev/lib/ixemul-80.1-m68k.lha Requires: AmigaOS 3.x Architecture: m68k-amigaos Ixemul 80.2 =========== Release date: 2026-10-30 Ixemul 80.2 provides a BSD/Unix runtime environment for AmigaOS. It implements many of the system interfaces and C library functions needed by software ported from BSD and other Unix-like systems. The Ixemul 80.x series represents a substantial update, with emphasis on correctness, stability, compatibility with more recent Unix software, and improved performance on m68k systems Version 80.2 remains based on the traditional ixemul.library interface. It is intended as a compatible replacement for earlier releases rather than a redesigned runtime environment. Historical behaviour has generally been preserved unless it was clearly unsafe or incorrect. Changes since version 80.1 Version 80.2 includes important correctness, stability and performance improvements for AmigaOS m68k systems. - Improved runtime stability and memory management, including allocation integrity checks, safer library initialization, multiuser.library resource cleanup, and hardened SIGWINCH handling to prevent potential use-after-free crashes. - Improved m68k performance with optimized implementations of memcmp(), memset() and bcopy(). - Extended C library compatibility with C99 printf/scanf integer length modifiers, a new inttypes.h header, reentrant time conversion functions, and improved assert.h compatibility with newer GCC versions. - Improved floating-point support with inline FPU implementations of round() and trunc(), and corrected FPU initialization to use IEEE default rounding (round to nearest, extended precision). - Improved filesystem and MEMBUF handling, including corrected stat()/fstat() block sizes, a fix for a memory corruption regression introduced in 80.0, and improved buffer failure recovery and select() readiness at EOF. - Fixed select()/poll() handling of multiple concurrent waiters on AF_UNIX sockets and pipes. See NEWS, ChangeLog and NEW_FUNCTIONS for complete details. Known issues and workarounds are documented in the included BUGS file. Requirements ------------ - AmigaOS 3.x or a compatible system - Motorola 68000 or later - A suitable network stack when ixnet networking is used Contents -------- This archive contains: - ixemul.library - ixnet.library - the ixpipe-handler and its mount list - startup command for mounting the IXPIPE: device - headers, C libraries and startup objects for GG: - the complete source code - documentation, NEWS and revision history The runtime libraries and development files belong to the same release. Do not mix the version 80.2 libraries with headers, libc files or startup objects from an older ixemul development environment. Installation ------------ The archive contains files for both the AmigaOS system partition and the Geek Gadgets development environment. AmigaOS system files -------------------- The system files should normally be installed on the AmigaOS system partition, usually the Workbench partition. Copy the supplied files as follows: devs/MountList.IXPIPE -> DEVS:MountList.IXPIPE l/ixpipe-handler -> L:ixpipe-handler libs/ixemul.library -> LIBS:ixemul.library libs/ixnet.library -> LIBS:ixnet.library Back up existing versions of the libraries before replacing them. Do not overwrite an existing S:user-startup. Add the relevant commands from the supplied s/add_to_startup file to the existing file. If ADE uses a separate startup script, IXPIPE: can instead be mounted by adding: ; Mount the ixpipe: device Mount IXPIPE: FROM DEVS:MountList.IXPIPE Geek Gadgets development files ------------------------------ The supplied GG: files contain the headers, C libraries and startup objects needed to compile and link programs against ixemul.library 80.2. Copy these files to the corresponding directories below GG:, preserving the directory structure in the archive. Back up the existing development environment before replacing its files. All ixemul headers, libc files and startup objects should be updated together. They must match the installed version of ixemul.library. Source code ----------- The complete source code is included for developers who want to inspect, modify or rebuild ixemul.library, ixnet.library and the supplied utilities. The source code is not required for normal use of ixemul-based programs. The source tree is intended to be built in an ADE or Geek Gadgets development environment using GCC 2.95.3 and the supplied development files. Completing the installation --------------------------- Reboot after installing the system libraries, or make sure that old resident versions are no longer in use before testing the new release. Main changes since ixemul 48.2 ------------------------------ Version 80.x includes extensive correctness and stability fixes, improved boundary and error handling, compatibility updates, new functionality and targeted performance improvements for m68k systems. Important areas updated in this release include: - memory and string functions - file and directory handling - stdio and formatted output - signals, timers and select() - process creation, waiting and termination - console, TTY, PTY and pipe handling - socket and network compatibility - time and timezone handling - compatibility with newer Unix software - support for 68000 through 68060 processors See the included NEWS and ChangeLog files for detailed information about the changes. Compatibility ------------- The library is intended to support software compiled for the traditional Ixemul API. This fork deliberately avoids broad semantic changes that could break older applications. Historical behaviour has generally been preserved unless it was clearly unsafe or incorrect. Some programs may depend on undocumented behaviour, so compatibility with every existing ixemul program cannot be guaranteed. Keep a working backup of the previous library when testing this release. Testing and problem reports --------------------------- When reporting a problem, include the following information: - AmigaOS version - CPU type - ixemul.library version - program name and version - exact error message or crash conditions - whether the problem occurs with the previous ixemul.library Authors and contributors ------------------------ Ixemul was originally created by Markus Wild in 1991 or 1992. Later development and maintenance were carried out by Rafael W. Luebbert, Leonard Norrgard, Hans Verkuil and other contributors. Jeff Shepherd contributed to the reorganization of the network support and the introduction of ixnet.library. Matthias Fleischer implemented the automatic stack-extension support. Version 80.2 was developed by Jörgen Johansson. Development of version 80.x was assisted by ChatGPT, Copilot, DeepSeek and Claude which were used for source review, implementation, documentation and test analysis. The resulting changes were integrated by the maintainer. Acknowledgement --------------- This product includes software developed by the University of California, Berkeley and its contributors. License ------- Ixemul contains code distributed under several free software licences. Refer to the source files and included licence documentation for the applicable copyright and licence terms. Disclaimer ---------- This software is provided without warranty. Keep a working backup of the previous Ixemul files before installing this release.