Index: src/amiga-library.h ================================================================== --- src/amiga-library.h +++ src/amiga-library.h @@ -80,12 +80,13 @@ /* strtod() uses sscanf() internally */ int (*_Nonnull vsscanf)(const char *_Nonnull restrict, const char *_Nonnull restrict, va_list); #endif void (*_Nonnull exit)(int); + int (*_Nonnull atexit)(void (*_Nonnull)(void)); of_sig_t _Nullable (*_Nonnull signal)(int, of_sig_t _Nullable); char *_Nullable (*_Nonnull setlocale)(int, const char *_Nullable); int (*_Nonnull _Unwind_Backtrace)(int (*_Nonnull)(void *_Nonnull, void *_Null_unspecified), void *_Null_unspecified); }; extern bool of_init(unsigned int version, struct of_libc *libc, FILE **sF); Index: src/amiga-library.m ================================================================== --- src/amiga-library.m +++ src/amiga-library.m @@ -636,10 +636,16 @@ { libc.exit(status); OF_UNREACHABLE } + +int +atexit(void (*function)(void)) +{ + return libc.atexit(function); +} of_sig_t signal(int sig, of_sig_t func) { return libc.signal(sig, func); Index: src/linklib/linklib.m ================================================================== --- src/linklib/linklib.m +++ src/linklib/linklib.m @@ -328,10 +328,11 @@ .vsnprintf = vsnprintf, #ifdef OF_AMIGAOS_M68K .vsscanf = vsscanf, #endif .exit = exit, + .atexit = atexit, .signal = signal, .setlocale = setlocale, ._Unwind_Backtrace = _Unwind_Backtrace };