Amiga Shared Objects

Amiga shared objects are very similar to shared objects from the other operating systems. So similar in fact that they share compiler options and behaviour.

The primary reason shared objects have been introduced is to speed up software development by enabling the direct use of code from other operating systems. In the past, if a library was required for use on the Amiga it would not only need to be ported but the interface entirely reworked to be used as an Amiga library. This process ranges from very simple to extremely complicated. In all cases, it adds an extra development step which requires development time and maintenance when the library baseline changes.

The use of shared objects are optional but they should be seriously considered because they can save a lot of development time and decrease maintenance costs significantly.

For much more detailed information about shared objects please see the AmigaOS SDK introduction document.

The libdl.so Library

The libdl.so library is included with AmigaOS as a standard component. It currently exists as a shared object only because it mimics the behaviour the libdl library from many other operating systems.

Dynamic linking is also available directly from the elf.library. The libdl.so component is implemented as a thin layer on top of the elf.library implementation.

If your software is Amiga-only, considering using the elf.library directly. If your software will be more portable then consider using libdl.so instead.