This function only seems to be intended as a internal helper method and should thus not be exported. However, by only relying on the inline keyword this is not necessarily the case. Instead, static inline must be used. Otherwise, idris2 fails to compile with: Exception: (while loading libidris2_support.so) Error relocating Idris2-0.4.0/build/exec/idris2_app/libidris2_support.so: _simple_handler: symbol not found diff -upr Idris2-0.4.0.orig/support/c/idris_signal.c Idris2-0.4.0/support/c/idris_signal.c --- Idris2-0.4.0.orig/support/c/idris_signal.c 2021-06-25 18:31:52.006434516 +0200 +++ Idris2-0.4.0/support/c/idris_signal.c 2021-06-25 18:32:18.189796466 +0200 @@ -91,7 +91,7 @@ void _collect_signal(int signum) { } #ifndef _WIN32 -inline struct sigaction _simple_handler(void (*handler)(int)) { +static inline struct sigaction _simple_handler(void (*handler)(int)) { struct sigaction new_action; new_action.sa_handler = handler;