]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - android-sdk/platform-bionic.git/blob - libc/CAVEATS
auto import from //depot/cupcake/@135843
[android-sdk/platform-bionic.git] / libc / CAVEATS
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.
5 this file is here to document explicitely what we don't want to support in Bionic:
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).
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.
16 - pthread_once() doesn't support C++ exceptions thrown from the init function, or the init
17   function doing a fork().
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.
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. :-(
26   see bionic/stubs.c for the details