This fixes two minor issues with recent updates to the IPv6 related headers:
- add missing <linux/ipv6.h> kernel header
- avoid conflict in netinet/in6.h, the macro is already defined by <linux/in6.h>
The atomic operations exported by the platform's C library do not
provide full memory barriers. This can result in incorrect results
when NDK machine code linked against them runs on multi-core devices.
While the bug has been fixed in the platform, this NDK header change
ensures that any source code that includes <sys/atomics.h> will end
up using a correct implementation of these functions, based on the
corresponding GCC builtins.
These builtins always provide a full barrier and have reasonable
performance. Application developers who depend on <sys/atomics.h>
should recompile their unmodified sources against this version
of the NDK as soon as possible.
This patch contains a minor update to the netinet headers from the C library.
Most of the changes come from later platform release, but can be safely back-ported
to previous API levels since they don't change the ABI:
- <netinet/icmp6.h>, <netinet/ip6.h>: new headers
- <netinet/in.h>: now always include <linux/ipv6.h> by default
- <netinet/in6.h>: add macros: IN6_IS_ADDR_ULA, IN6ADDR_LOOPBACK_INIT
- <netinet/ip.h>: add macro: IPTOS_MINCOST
- <net/if_ether.h>: always include <sys/types.h> by default.
This is a minor update to two ARM-specific kernel headers.
- <asm/ptrace.h>: Add two new constants
- <asm/user.h>: Add 'struct vfp_user' and 'struct vfp_user_exc'
Corrected for example <asm/io.h> to include io_32.h instead of io_64.h
(which is missing, BTW).
Copied from the results of commit (same title) in bionic.git:
126601dd3f5303b50033dcb88945d928aa764aa4
* commit '844020ace77515e55a6dc7a09e17c1a90f4178ac':
[MIPS] crt* Object files generated from .S files. The object files are generated with the assembler built from binutils-2.21
* commit '314dea12dfec428d9e832ab10a52e75dea1a130e':
ndk: Include limits.h in wchar.h as it contains the definitions for INT_MAX and INT_MIN. Without this fix, the following lines will fail when configuring gnu stdlibc++ library. (INT_MAX and INT_MIN are undefined.)
* commit '799fada598b048b02bf63c0eea9b6d676f9be142':
ndk: Include limits.h in wchar.h as it contains the definitions for INT_MAX and INT_MIN. Without this fix, the following lines will fail when configuring gnu stdlibc++ library. (INT_MAX and INT_MIN are undefined.)
Corrected for example <asm/io.h> to include io_32.h instead of io_64.h
(which is missing, BTW).
Copied from the results of commit (same title) in bionic.git:
126601dd3f5303b50033dcb88945d928aa764aa4
Change-Id: I49547d5253459396bfc85012b1fd263ad5c7e9d0
INT_MIN. Without this fix, the following lines will fail when configuring
gnu stdlibc++ library. (INT_MAX and INT_MIN are undefined.)
#define WCHAR_MAX INT_MAX
#define WCHAR_MIN INT_MIN
Change-Id: Ifa87cf011cf7068c48755fc9ce5c0d73e95ef2dc
Signed-off-by: Chao-Ying Fu <fu@mips.com>
This patch modifies <signal.h>, starting from API level 8,
to include <asm/sigcontext.h>.
It is required to be able to use <signal.h> on a MIPS
platform. See https://android-review.googlesource.com/32281
Change-Id: I720259541fa7e2a4d6a428eae9fd4882c5355c31
The x86 asm headers define __u64 regardless of __STRICT_ANSI__.
The linux/videodev2.h header requires __u64 to be defined, thus
this fixes compiling with -std=c99 when including the
linux/videodev2.h header.
In glibc, the asm/types.h header defines __u64 regardless of
__STRICT_ANSI__.
This commit copies the updated header from bionic into the ndk
platform headers.
This fixes two minor issues with recent updates to the IPv6 related headers:
- add missing <linux/ipv6.h> kernel header
- avoid conflict in netinet/in6.h, the macro is already defined by <linux/in6.h>
Change-Id: Ibd0d44fd801affc6ca405e96982a73f9a630bdba
Symbols for both arm and x86.
+ missing declarations for getpwnam_r and getpwuid_r which were implemented
in Android 4.0.1. This didn't appear in previous comparison because the
platform header always declare these in <pwd.h>, so it never changed
when the functions were added. They appear in libc.so.functions.txt though.
The arm symbols are generated from the library files extracted from the
'yakju' platform build for 4.0.1 a.k.a. ITL41D.
The x86 symbols are generated by building the corresponding libraries
for the full_x86-eng product, using the same Bionic sources.
+ x86: Add missing symbols for "siglongjmp" and "sigsetjmp" which are not
exported by the gingerbread version of full_x86-eng libc.so. This was
checked with a fresh build of the product from the current gingerbread
tree on the AOSP server. Probably a bug, but a minor one.
Change-Id: I41d3eb28cecc1989e1bec4a00ac236c4b262c2be
Only for arm, since oneycomb isn't supported on x86
(i.e. API levels 11 to 13).
Change-Id: I662400ed7e222ea070dd1f9f6681c21971b589e1
ndk: API level 11: Add libm.so symbols for ARM
Change-Id: I5688b57557ad7021d49f458e1b9519e8800d795e
This is a minor update to two ARM-specific kernel headers.
- <asm/ptrace.h>: Add two new constants
- <asm/user.h>: Add 'struct vfp_user' and 'struct vfp_user_exc'
Change-Id: I25d31bb33a9102e3c74a169c28dce66211ced636
- Add pread64(), pwrite64(), ftruncate64() for API level 11
- Cleanup declaration of lseek64() to use off64_t instead of loff_t
- Cleanup declaration of prctl() to use variable number of arguments
The cleanups are performed to better match upstream.
Change-Id: Ic9e44c0ea3dc1202d3c3478bdb2b6006e83b08dc
This patch adds timegm(), timelocal(), time2posix() and posix2time()
to this standard library header.
Change-Id: Ic7b42eece8c11eb040d0522ed8b54d36b7404f9a
Add the following definitions related to cpu affinity to <sched.h>:
- cpu_set_t and associated macros: CPU_ZERO, CPU_SET, CPU_CLR, CPU_ISSET, CPU_EQUAL,
CPU_COUNT, CPU_AND, CPU_OR, CPU_XOR.
- sched_getcpu(), sched_getaffinity() and sched_setaffinity()
- define macros for dynamically-sized cpu_set_t variables, i.e.:
CPU_ALLOC_SIZE, CPU_ALLOC, CPU_FREE, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S,
CPU_ISSET_S, CPU_EQUAL_S, CPU_COUNT_S
NOTE: You must define _GNU_SOURCE before including the header to get them.
Change-Id: I37338573c7af092118e7987420f6a930b6cc24b1
This patch fixes some formatting issues in <sys/cdefs.h>:
- change '#if __STDC_VERSION__ > xxx' into '#if defined(__STDC_VERSION__) && __STDC_VERSION > xxx'
- add __LIBC_HIDDEN__ definition (not technically required, but makes comparing the headers with upstream easier)
Change-Id: I5fd13224181e2f757fb01cb99c93508c3a6d9e13
This patch improves the formatting of <pthread.h> as exposed by the NDK:
- change '#if __cplusplus' into '#ifdef __cplusplus'
- change C++-style comment into C-style comment
It also adds pthread_atfork() for API level 11 (3.0)
Change-Id: Ie814208335ed102d4c178a4c373e6963e5dcc9dd