AROS ABI
Topic: Current state of available AROS ABI's
Date: 2022-june-06
ABI | Status | Maintainer | Targets | Links | Header text |
---|---|---|---|---|---|
legacy ABIv0 | Obsolete/Abandoned | AROS Development Team | native: pc-i386, pc-x86_64 hosted: mingw32-i386, linux-i386, linux-x86_64, linux-armhf, freebsd-i386 |
repository, downloads | Example |
ABIv1 | Unstable development branch | AROS Development Team | native: amiga-m68k, pc-i386, pc-x86_64, pc-x86_64-smp, raspi-armhf, sam440-ppc hosted: linux-i386, linux-x86_64, linux-arm, linux-armhf, darwin-i386, darwin-x86_64, darwin-ppc, mingw32-i386, mingw32-x86_64 |
repository, downloads | Example |
ABIv0 | Stable release branch | deadwood | native: pc-i386 hosted: linux-i386, mingw-i386 |
repository, downloads | Example |
ABIv11 | Stable release branch | deadwood | hosted: linux-x86_64 | repository, downloads | Example |
AxRT | Stable experimental branch | deadwood | hosted: linux-x86_64 | repository, downloads | Example |
ABIv0 (legacy)
Current status: Abandoned
Last release : 2019-05-20 (very much out of sync with ABIv1)
Was the original development branch, later accompanied/followed by ABIv1.
Both ABI's existed next to each other and where maintained for a longer period and while binary incompatible kept in (relative) sync for a while.
Later on ABIv1 introduced more and more additional features that weren't possible to integrate/maintain for legacy ABIv0 therefore in the end this ABI was abandoned by the AROS Development Team.
ABIv1
Current status: In development (unstable releases)
Last release : present day
Was introduced to be(come) binary compatible with original m68k amiga system.
Introduced more and modern features, became binary compatible with original m68k Amiga OS and as such became the new standard development branch.
This branch is still actively developed till this day by the AROS Development Team.
Introduced (amongst many others) TLSF and SMP
ABIv0
Current status: In development (stable releases)
Last release : 2022 may 30 (version 20180423-1)
Was introduced in order to succeed and be backwards compatible to the original (abandoned, legacy) ABIv0 branch while at the same time incorporating (new) features and improvements from the ABIv11 branch.
The existence of this branch is important because all current existing AROS distributions are based on the (abandoned, legacy) ABIv0 due to the existing software base for this ABI.
The releases are based on ABIv11 development status dates and as such have no resemblance with the original abandoned legacy ABIv0 release dates (yes, that is confusing).
Every current ABIv0 release has a newer code-base than legacy ABIv0 ever had and will have.
Can be considered as a fork and successor of the original abandoned legacy ABIv0.
ABIv11
Current status: In development (stable releases)
Last release : 2022 march 20 (version 20220318-1)
Was introduced as a stable alternative for the ABIv1 development branch and as such is (to a certain extend) compatible with the ABIv1 development branch.
Details about which parts are and aren't stable/compatible can be found here and the ABI specification (which differs from ABiv1) can be read here.
Releases are based on imported changes from ABIv1 development branch, deadwood's own work and ApolloOS development. Improvements/fixes flow back and forth between them.
Can be considered as a fork of the current ABIv1 development branch.
AxRT
Current Status: In development (stable releases)
Last Release : 2022-05-07 (AxRuntime v41.3)
Is an experimental RunTime branch that allows one to develop programs that make use of the Amiga API but runs native on a Linux host OS.
It is experimental in the sense that host implementation is still being developed, additional features/implementations are added, and things might change and as such can not be considered 100% stable on those parts. From a 3th party developer point of view it is assumed to be stable.
As AROS executable's runs native on the host it allows for easy development on the host OS and be able to (cross)compile for a native AROS target (for example when hosted development was finished).
AxRT also makes it possible to run AROS programs (including complete workbench/browser/Amiga shell) on the Linux host.
Has the advantage to develop software that makes use of features not yet available for AROS by using the host OS API for those missing AROS features but also allows for those missing features to be implemented/experimented with on the host so that it can be (back)ported (more easily) to native AROS.
AxRT is ABI/API compatible with ABIv11 and is the only ABIv11 branch to (actively) support SMP.