Add Bionic Changelog in libc/docs/CHANGES.TXT
This commit is contained in:
parent
fc10b24acc
commit
d6bf8f9229
133
libc/docs/CHANGES.TXT
Normal file
133
libc/docs/CHANGES.TXT
Normal file
@ -0,0 +1,133 @@
|
||||
Bionic ChangeLog:
|
||||
-----------------
|
||||
|
||||
Differences between current and Android 2.1:
|
||||
|
||||
- Add support for SH-4 CPU architecture !
|
||||
|
||||
- __atomic_swap(): use LDREX/STREX CPU instructions on ARMv6 and higher.
|
||||
|
||||
- <arpa/telnet.h>: New header (declarations only, no implementation).
|
||||
|
||||
- <err.h>: New header + implementation. GLibc compatibility.
|
||||
|
||||
- <warn.h>: New header + implementation. GLibc compatibility.
|
||||
|
||||
- <fts.h>: New header + implementation.
|
||||
|
||||
- <mntent.h>: Add missing <stdio.h> include.
|
||||
|
||||
- <regex.h>: New header + implementation.
|
||||
|
||||
- <signal.h>: Added killpg()
|
||||
|
||||
- <stdint.h>: Allow 64-bit type declarations on C99 builds.
|
||||
|
||||
- <stdio.h>: Add fdprintf() and vfdprintf(). Note that GLibc provides
|
||||
the confusing 'dprintf' and 'vdprintf()' functions instead.
|
||||
|
||||
- <stdlib.h>: Fix ptsname_r(): the return type is int instead of char*.
|
||||
The mistake comes from a GLibc man page bug (the man page listed a return
|
||||
type of char*, while the implementation used int. Fixed in late 2009 only).
|
||||
The Bionic implementation was incorrect. Technically, this is an ABI
|
||||
breakage, but code that used this function probably never worked or
|
||||
compiled properly anyway.
|
||||
|
||||
- <strings.h>: Add missing <sys/types.h> include.
|
||||
|
||||
- <sys/queue.h>: Added new header (no implementation - macro templates).
|
||||
|
||||
- <sys/resource.h>: Add rlim_t proper definition.
|
||||
|
||||
- <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()
|
||||
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
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.
|
||||
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
Differences between Android 2.0 and 1.6:
|
||||
|
||||
- memcmp(), memcpy(): ARMv7 optimized versions.
|
||||
|
||||
- pthread_mutexattr_setpshared(): implementation will not return ENOTSUP
|
||||
if PTHREAD_PROCESS_SHARED is used, because our Mutex implementation can
|
||||
work across multiple processes.
|
||||
|
||||
*HOWEVER* it does not use "robust futexes" which means that held mutexes
|
||||
*are not* automatically released by the kernel when the owner process
|
||||
crashes or exits. This is only done to simplify communication between
|
||||
two always-live system processes, DO NOT USE THIS IN APPLICATIONS !
|
||||
|
||||
- pthread_mutex_lock_timeout_np(): New Android-specific function to
|
||||
perform a timed lock (). In case of timeout, it returns EBUSY.
|
||||
|
||||
- pthread_cond_timedwait_monotonic_np(): Same as pthread_cond_timedwait()
|
||||
but uses the monotonic clock(). Android-specific.
|
||||
|
||||
- pthread_cond_timedwait_relative_np(): Same as pthread_cond_timedwait()
|
||||
but uses a relative timeout instead. Android-specific.
|
||||
|
||||
- <netinet/in.h>: Now includes <netinet/in6.h>.
|
||||
|
||||
- <netinet/in6.h>: Added IPV6_JOIN_GROUP, IPV6_LEAVE_GROUP, IN6ADDR_ANY_INIT
|
||||
and ipv6mr_interface definitions.
|
||||
|
||||
- <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 problen 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:
|
||||
|
||||
- C runtime: Fix runtime initialization to be called before any static C++
|
||||
constructors. This allows these to use pthread functions properly.
|
||||
|
||||
- __aeabi_atexit(): Fix implementation to properly call C++ static destructors
|
||||
when the program exits (or when a shared library is unloaded).
|
||||
|
||||
- <sys/stat.h>: added GLibc compatibility macros definitions:
|
||||
|
||||
#define st_atimensec st_atime_nsec
|
||||
#define st_mtimensec st_mtime_nsec
|
||||
#define st_ctimensec st_ctime_nsec
|
||||
|
||||
- getaddrinfo(): implementation will now allow numeric ports if ai_socktype is
|
||||
set to ANY. This is to match the GLibc behaviour.
|
||||
|
||||
- getservent(): and getservent_r() incorrectly returned the port in host-endian
|
||||
order in the s_port field. It now returns it in big-endian order.
|
||||
|
||||
- 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.
|
Loading…
x
Reference in New Issue
Block a user