Browse Source

stdlib: increase number of static atexit handlers to 32

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@kernkonzept.com>
Signed-off-by: Marcus Haehnel <marcus.haehnel@kernkonzept.com>
Yann Le Du 9 months ago
parent
commit
20ad89de91
1 changed files with 1 additions and 1 deletions
  1. 1 1
      include/stdlib.h

+ 1 - 1
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