blob: fe478b6316c1800685a6e3dd80d769f6d8f814d5 [file] [log] [blame] [view] [edit]
Source code for C/C++ system libaries
=====================================
This directory contains the source code for libc, libc++ and other C/C++ system
libraries. Where possible these are clones of upstream projects (e.g. musl).
For more details about each library see the individual readme files in the
subdirectoris.
Static constructor ordering
---------------------------
These are several static constructors in the emscripten system libraries and they
are in a specific order. When adding/remove/updating these please update this
document.
These current set of static constructors in system libraries and their priorities
(lowest run first) are:
- 47: `initialize_emmalloc_heap` (emmalloc.c)
- 48: `__emscripten_pthread_data_constructor` (pthread/emscripten_tls_init.c)
- 49: `emscripten_tls_init` (pthread/library_pthread.c)
- 50: asan init (??)
Priorities 0 - 100 are reserved for system libraries and user-level
constructors should all run at 101 and above (for example libc++ initializes
its standard I/O streams at priority 101).