• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Bionic is a very small C library because we have decided to *not* implement various features
2of the POSIX standard. we only add functions on a as-needed basis, and there are a few things
3we wish we'll never put in there.
4
5this 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