Professional Documents
Culture Documents
Bionic ChangeLog:
-----------------
-------------------------------------------------------------------------------
Differences between Android 2.3 and Android 2.2:
- <pthread.h>: Add reader/writer locks implementation. Add sanity
checking to pthread_mutex_destroy() (e.g. a locked mutex will return
EBUSY).
- sysconf() didn't work for some arguments due to a small bug in the
/proc line parser.
- <termio.h>: added missing header (just includes <termios.h>)
- <wchar.h>: small fixes to really support wchar_t in Bionic (not there yet).
the size of wchar_t is still 32-bit (decided by the compiler)
Page 1
Untitled
- clearerr(): fix broken implementation.
- Feature test macros like _POSIX_C_SOURCE / _XOPEN_SOURCE / _C99_SOURCE
are now handled correctly by our C library headers (see <sys/cdefs.h>)
- <sys/select.h>: add missing declaration for pselect()
Page 2
Untitled
- <time64.h>: Add missing C++ header inclusion guards.
- <unistd.h>: Add getusershell(), setusershell() and endusershell(), though
implementation are bogus. GLibc compatibility.
- <wchar.h>: Add mbstowcs() and wcstombs()
- add clone() implementation for ARM (x86 and SH-4 not working yet).
- <sys/epoll.h>: <sys/system_properties.h>: Add missing C++ inclusion guards
- fix getpwnam() and getpwgrp() to accept "app_0" as a valid user name.
- DNS: get rid of spurious random DNS queries when trying to resolve
an unknown domain name. Due to an initialization bug, a random DNS search
list was generated for each thread if net.dns.search is not defined.
- <pthread.h>: Add pthread_condattr_init/destroy/setpshared/getpshared functions
to enable proper shared conditional variable initialization.
Modify the pthread_mutex_t and pthread_cond_t implementation to use private
futexes for performance reasons. Mutexes and Condvars are no longer shareable
between processes by default anymore, unless you use PTHREAD_PROCESS_SHARED
with pthread_mutexattr_setpshared() and/or pthread_condattr_setpshared().
-------------------------------------------------------------------------------
Differences between Android 2.1 and 2.0.1:
- zoneinfo: updated data tables to version 2009s
-------------------------------------------------------------------------------
Differences between Android 2.0.1 and 2.0:
- abort(): ARM-specific hack to preserve the 'lr' register when abort()
is called (GCC does not preserve it by default since it thinks that
abort() never returns). This improves stack traces considerably.
Page 3
Untitled
-------------------------------------------------------------------------------
Differences between Android 2.0 and 1.6:
- <time.h>:
* Add missing tzset() declaration.
* Add Android-specific strftime_tz().
- getaddrinfo():
Only perform IPv6 lookup for AF_UNSPEC if we have IPv6 connectivity.
This saves one DNS query per lookup on non-IPv6 systems.
- mktime(): Fix an infinite loop problem that appeared when switching to
GCC 4.4.0.
- strftime(): fix incorrect handling of dates > 2038 due to 64-bit issue
in original code.
-------------------------------------------------------------------------------
Differences between Android 1.6 and 1.5:
Page 4
Untitled
- DNS: Allow underscore in the middle of DNS labels. While not really
standard, this extension is needed for some VPN configurations and is
supported by other operating systems.
- DNS: Support for DNS domain search lists through the new net.dns.search
system property. The corresponding value must be a space-separated list of
domain suffixes.
Page 5