1 Bionic is a very small C library because we have decided to *not* implement various features 2 of the POSIX standard. we only add functions on a as-needed basis, and there are a few things 3 we wish we'll never put in there. 4 5 this file is here to document explicitely what we don't want to support in Bionic: 6 7 - C++ exceptions are not supported. on embedded systems, they lead to extremely larger and 8 slower code for no good reason (even when so-called zero-cost exception schemes are 9 implemented, they enforce very large numbers of registers spills to the stack, even 10 in functions that do not throw an exception themselves). 11 12 - pthread cancellation is *not* supported. this seemingly simple "feature" is the source 13 of much bloat and complexity in a C library. Besides, you'd better write correct 14 multi-threaded code instead of relying on this stuff. 15 16 - pthread_once() doesn't support C++ exceptions thrown from the init function, or the init 17 function doing a fork(). 18 19 - locales and wide characters are not supported. we use ICU for all this i18n stuff, which 20 is much better than the ill-designed related C libraries functions. 21 22 - at the moment, several user-account-related functions like getpwd are stubbed and return 23 the values corresponding to root. this will be fixed when we'll be able to have distinct 24 users on the Android filesystem. :-( 25 26 see bionic/stubs.c for the details 27