Home | History | Annotate | Download | only in libc
      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