From: Yann Le Du <yann.le.du(a)kernkonzept.com>
The existing limit of 20 was found to be insufficient when moving from
gcc 8 to gcc 9. At the time a test ran already 16 handlers had been
installed leaving only minimal room for application installed handlers.
Musl uses 32, as does newlib. Further, the ISO C standard for C99
specifies that:
The implementation shall support the registration of at least
32 functions.
(7.20.4.2 The atexit function)
Co-authored-by: Yann Le Du <yann.le.du(a)kernkonzept.com>
Signed-off-by: Marcus Haehnel <marcus.haehnel(a)kernkonzept.com>
---
include/stdlib.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/stdlib.h b/include/stdlib.h
index 8b1375184..d4e0b75e7 100644
--- a/include/stdlib.h
+++ b/include/stdlib.h
@@ -606,7 +606,7 @@ libc_hidden_proto(unsetenv)
#ifdef __UCLIBC_DYNAMIC_ATEXIT__
# define __UCLIBC_MAX_ATEXIT INT_MAX
#else
-# define __UCLIBC_MAX_ATEXIT 20
+# define __UCLIBC_MAX_ATEXIT 32
#endif
--
2.45.2