1. move sgidefs.h to libc/arch-mips.
See bionic 6e50cb454451916ced315680f6c13dc08cf3959a
2. change type of u_ar0 from "unsigned long" to "struct user_regs_struct*".
See bionic e03950fa0c5567edf70d011b856a027e03b1c0f7
3. sync fts.h, dlext.h, sys/user.h
4. remove ' from string.h
Change-Id: I2ba58b0df4c655f107ea086efbd0220de2b40e9a
Macros putc, getc and their unlock cousins use internal functions and
variables not necessarily available in future libc.so (*1). Remove macros
and use functions aleady exists in libc.so instead.
(*1) https://android-review.googlesource.com/#/c/110662/
Change-Id: I3faa2d74de40ef8376119b38f2a39d46ece47d07
Also
1. Header singal.h now includes <sys/ucontext.h>
2. asm/user.h include sys/user.h
3. change use of user_i387_struct to user_fpregs_struct
See bionic 26a8eb50a84e131d34d10d5d167d67e9995399bd
Change-Id: I9592e98b90d773ef5babb428a6a6ef208fe86327
When GCC is built bionic's stdio.h (among other headers) is fixed: __va_list
is replaced with __gnuc_va_list, and put in include-fixed/stdio.h,
unless stdio.h already contains __gnuc_va_list. When GCC is later
used bionic's stdio.h is never included.
The problem in the context of NDK is that all 32-bit Android toolchain
are built with android-9 header and expect to work with all API levels
sometime with sustantially different stdio.h.
This CL stops GCC from generating include-fixed/stdio.h by putting
__gnuc_va_list in it.
See bionic df85f50b and b.android.com/73728
Change-Id: I7a490496efbd491a0376608b9ae6e9e2dfc15fb3
Define __PTHREAD_MUTEX_INIT_VALUE, __PTHREAD_RECURSIVE_MUTEX_INIT_VALUE,
and __PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE in pthread.h for API < 9.
Pthread.h in API >= 9 have those already since bionic
9831ad3ce6bd5b22da16a275ed67e7236eae3d1f
Change-Id: Ia97960ecbfed0811dde70f75cb23951ecdf803af
The mkdtemp() function has always been implemented in the C library
(see [1] for proof) but was missing a declaration in <stdlib.h>, until
Android 4.0.1 [2]
This patch simply adds the missing declaration to former <stdlib.h>
versions. This makes it easier to build certain open-source programs
for Android, because auto-tools probing typically looks at the symbols
in libc.so to define HAVE_MKDTEMP, then the source fails to compile
because of the lack of declaration.
Note that the mkdtemp is also already listed in
platforms/android-*/arch-*/symbols/libc.so.functions.txt, which were
generated by parsing actual system libraries, and thus don't need to
be updated here.
[1] https://android.googlesource.com/platform/bionic/+/android-1.6_r1/libc/stdio/mktemp.chttps://android.googlesource.com/platform/bionic/+/android-1.6_r1/libc/Android.mk
[2] ad1ff2fb26
Change-Id: I838b54bcb5cbfd2fed24cf7649897889ec7a5559
Allow user code to be compiled with "-mhard-float" for armeabi-v7a
(which implies -mfloat-abi=hard), and either link with
1. Android native APIs which use softfp, or
2. A customized libm_hard.a which is compiled with -mhard-float. Need
-D_NDK_MATH_NO_SOFTFP=1
See tests/device/hard-float/jni/Android.mk for details and restriction
on Clang
Change-Id: I773a842c73368e08b9a6cda0441e95a96fa303b2
This fixes WCHAR_MIN / WCHAR_MAX to be signed / unsigned based on
the target ABI.
This only impacts ARM where wchar_t is really 'unsigned int'.
One can define _WCHAR_IS_ALWAYS_SIGNED to restore the old behaviour.
See http://b.android.com/55749
Change-Id: Idb63b7b11aecd3cfee37f5b6dd2eba78b308876f
This patch ensures that wchar_t is a 32-bit number when targetting
API level < 9 (i.e. Froyo or older).
You can restore the previous (and broken) behaviour by defining
_WCHAR_IS_8BIT at compile time. See http://b.android.com/57267
for more context.
BUG=57267
Change-Id: Ib334e8fe95a3f592d5d4bb157b0f123984133597
The LONG_LONG_MIN, LONG_LONG_MAX and ULONG_LONG_MAX are
GLibc-specific macros. Move their declarations from
<pthread.h> to <limits.h> where they belong.
Change-Id: I597465b99893706ade82069238f60df73d8e236e
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
- 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 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
This change removes the declaration of functions that are not
implemented by our various versions of our C library.
The corresponding declarations are moved inside #if 0 .. #endif
blocks (so it becomes easy to remember that they are missing)
Also refresh the headers a little (i.e. adding a few missing decl
and macros, remove C++ comments, etc)
See http://code.google.com/p/android/issues/detail?id=7807
Change-Id: I4ae1b1f3a181419eee2004c41b54768cc15e896f
NOTE: The missing decl are still there but encased in #if 0 .. #endif
blocks (to make it easier to implement them later). There are
a few exceptions in order to build STLport and libstdc++-v3
properly.
This commit removes duplication of system headers per platform, i.e. remove
copies of common headers like <stdlib.h> from arch-arm/usr/include and arch-x86/usr/include
and move them to a common include directory. More specifically:
- common headers: android-N/arch-A/usr/include --> android-N/include
- arch-specific headers: android-N/arch-A/usr-include --> android-N/arch-A/include
- arch-specific libs: android-N/arch-A/usr/lib --> android-N/arch-A/lib
Change-Id: Ifdba5038d108901931f3e3a7c14ebe6270d2d276
NOTE: This also contains careful separation of API-level-specific headers.
For example, platforms/android-5/include/pthread.h contains new function
declarations that are not available when using platforms/android-3/include/pthread.h
NOTE: The NDK's build-platforms.sh script has been updated to understand the new
layout. This change in develeopment/ndk does not change the layout of
platform files under $NDK/platforms after build-platforms.sh is called.