Also since __aeabi* and __gnu_Unwind_Find_exidx symbols
were incorrectly versioned in M (android-23) remove them from
the version script for all platform versions <= 23
Bug: https://github.com/android-ndk/ndk/issues/1
Change-Id: I04902aac25a722100fc502600df908bb3a786356
The following arm symbols should be exported by libc.so:
__aeabi_atexit; # arm
__aeabi_memclr; # arm
__aeabi_memclr4; # arm
__aeabi_memclr8; # arm
__aeabi_memcpy; # arm
__aeabi_memcpy4; # arm
__aeabi_memcpy8; # arm
__aeabi_memmove; # arm
__aeabi_memmove4; # arm
__aeabi_memmove8; # arm
__aeabi_memset; # arm
__aeabi_memset4; # arm
__aeabi_memset8; # arm
Bug: https://github.com/android-ndk/ndk/issues/1
Change-Id: I36f758c574a939174d43999048c193e63def548f
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
1. Set APP_ABI:=all in almost all samples
2. Enhance hello-jni to report more ABIs
3. Fix warnings
Change-Id: I2851c42b77ef8225e32143d225edcf973633e782
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
1. __set_errno is deprecated and subject to removal in future release
2. elf.h is seen to be included alone, causing compilation error due
to undefined uint32_t and uint64_t
Change-Id: I4ca348a8ba0689eb3880622dcf5c53be470c57e8
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
Remove the prebuilt system shared libraries and unified symbol files
from development/ndk. We don't need them anymore:
- the unified symbol files are replaced by separate functions/variables
symbol list, which were added in a previous commit, i.e.:
libc.so.txt --> libc.so.functions.txt
libc.so.variables.txt
- the shared libraries are now generated on the fly by the NDK
gen-platforms.sh script, from the functions/variables symbol lists.
Note that we need to keep the static libraries and runtime objects,
they are required to build the cross-toolchains and target binaries.
Change-Id: Ifa0a7f2d741ed32b80216561ca3f17e67df06ce9
This change introduces separate symbol lists for functions
and variables of each NDK system shared library.
Note that we don't remove the unified symbol files yet. This
will be done later when we complete other changes under ndk/,
namely the ability to generate platforms trees containing shell
libraries generated directly from them.
These files were generated using the following:
cd development/ndk
for DIR in platforms/*/*/lib; do
for ARCH in arm x86; do
$NDK/build/tools/gen-system-symbols $DIR $DIR/../symbols
done
done
This means that the symbol lists were generated by parsing the
existing prebuilt shared libraries under platforms/ and extracting
their function and variable names.
Change-Id: Ie1e791d98260a7f0d8d2e9f71323a7ea448f2dd4
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 change updates various system libraries to reflect changes that
happened during distinct platform releases. All details are in the
file bionic/libc/docs/CHANGES.TXT, but the summary is:
API level 5:
pthread.h:
pthread_mutex_lock_timeout_np()
pthread_cond_timedwait_monotonic_np()
pthread_cond_timedwait_relative_np()
API level 8:
pthread.h:
pthread_condattr_init()
pthread_condattr_destroy()
pthread_condattr_setpshared()
pthread_condattr_getpshared()
dlfcn.h:
dladdr()
sched.h:
clone()
signal.h:
killpg()
stdio.h:
fdprintf()
vfdprintf()
unistd.h:
getusershell()
setusershell()
endusershell()
wchar.h:
mbstowcs()
wcstombs()
time.h:
timezone
daylight
plus symbols from new headers: <fts.h>, <regex.h>, <err.h>, <warn.h>
Change-Id: I7ff1ffa2cb37b71473b1d137c7799f17d644ab63
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.
Remove all duplicate platform files, i.e development/ndk/platforms/android-N now
only contains files that are introduced in API level 'N' and not found in level 'N-1'
(This makes it easier to manage independent platform release branches, and makes
platform additions trivial to examine and maintain).
Move samples that depends on features of API level 'N' into platforms/android-N/samples
+ update tests/run-all.sh accordingly
Change-Id: I04c4c67c6c674c1714d5812d461d0524a4f4cfd9