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