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.
|