Commit Graph

56 Commits

Author SHA1 Message Date
Andrew Hsieh
3dbef8fe11 Bump up clang vesion accepting __builtin_isnan __attribute__((pcs("aapcs")))
Upstream clang3.6 still doesn't allow change of calling convension of
__builtin_isnan from the default to "softfp" (via __attribute__((pcs("aapcs"))))
as required by bionic libm.so for 32-bit ARM.  Let's hope clang3.7
fix that.  See upstream bug http://llvm.org/bugs/show_bug.cgi?id=20958

Change-Id: Ibdcc1783ffa7cf2f36e733983bd6d912ad38df70
2014-09-26 16:20:56 +08:00
Andrew Hsieh
e85f942ec6 Fix warning about undefined __LP64__
See b.android.com/69975

Change-Id: If7f2b6fa29c36221b1a0d31a334cb34cecb4e8bc
2014-06-02 14:44:19 +08:00
Andrew Hsieh
b280e72a97 Bump __clang_minor__ check to 6 for __builtin_isnan
It appears that upstream 3.5 still can't accept __builtin_isnan redeclared
with calling convention, eg.

cat > isnan.c <<EOF
int __builtin_isnan(double) __attribute__((pcs("aapcs")));
EOF

  clang  -target armv5te-none-linux-androideabi -c isnan.c
  isnan.c:1:5: error: function declared 'aapcs' here was previously declared without calling convention
  int __builtin_isnan(double) __attribute__((pcs("aapcs")));
      ^
  isnan.c:1:5: note: previous declaration is here

Change-Id: Iff466fd913c3deec27aa3ff355a208543028d368
2014-04-25 09:55:31 -07:00
Andrew Hsieh
884081d929 Fix MIPS' struct stat
In NDK r9c MIPS' struct stat was incorrectly set to its 64-bit
counterpart for API >= 12

Change-Id: I75db78ac7654fad982430e6adbe4480828776051
2014-02-20 07:56:38 +08:00
Andrew Hsieh
2643554fa0 Move sys/cachectl.h up from mips-specific folder
It is only effective when compile with mips, although
development no longer has to check themselves

Change-Id: I7fb703170e1cc6bb2e6ea31109851a90a26eacb8
2014-02-10 09:28:47 +08:00
David Friedman
3b601c6550 Fixed apparent copy/paste mistake
Bug: 11634373

Change-Id: I44766217f414988bfd3be68043a4b80dd21554d8
2014-02-05 11:18:32 +08:00
Andrew Hsieh
ca34e29d94 Merge "Fix headers to be inclued alone" 2014-01-16 17:03:03 +00:00
Andrew Hsieh
42bb3bcadc Merge "Fix typo in comments in looper.h" 2014-01-16 17:02:47 +00:00
Andrew Hsieh
2c8776805a Fix headers to be inclued alone
See b.android.com/64679 for one of header sys/prctl.h

Change-Id: Ie415ebe2086d2f0190d84fba0c57cc7e1e5822ae
2014-01-13 12:58:46 +08:00
Andrew Hsieh
d980848377 Fix typo in comments in looper.h
Remove android-13's looper.h because it's identical to android-9's
Note that ndk/platforms/android-N only keep delta to previous level

Change-Id: Ibd2c3e168cfe7f6902fdc6eca2e2778d8ccf1fac
2014-01-08 17:24:22 +08:00
Andrew Hsieh
7e25851a68 Implement wait4 already exist in header
1. Implement wait4 by calling __wait4 exists in libc.so
2. Add wait4 to libc.a

Change-Id: I08b6555cc50ee88358cd2ec63f9d8d2d4482305a
2013-12-30 11:57:38 +08:00
Logan Chien
ad40d952a1 Workaround the __builtin_isnan() type error for clang 3.4.
Similar to clang 3.3, it seems that clang 3.4 declares an incompatible
function prototypes for __builtin_isnan().  To workaround this issue,
we should not declare the function prototype for __builtin_isnan().

Note: Though it may be good to fix this in clang type checker, like
__builtin_nexttoward(), however it seems non-trivial since __builtin_isnsn()
might be overloaded.  We can revert this after we have fixed the
clang builtin definition.

Change-Id: I329b56225f3d229b0c141bb8414c4369f154efda
2013-12-25 01:59:29 +00:00
David 'Digit' Turner
db275132c5 ndk: Fix wait4() declarations
wait4() was incorrectly declared in <sys/wait.h>, but only added to the
C library in Android 4.3 (API level 18) [1]

This patch:

- Removes the wait4() declarations for any <sys/wait.h> header before
  API level 19.

- Brings the API level 19 <sys/wait.h> which correctly declares wait4().

- Update the libc.so.functions.txt for API level 19 of all platforms
  to include the exported symbol.

NOTE: This does not bring the static libc.a to API level 19, which means
      it is stuck at API level 9 for ARM.

See [2] for the corresponding NDK tests.

http://b.android.com/19854

[1] 17a8b0db63
[2] https://android-review.googlesource.com/#/c/72000/

Change-Id: I7735473d177c44f43b09bb6738e9914945cd4d0a
2013-12-11 17:23:46 +01:00
Andrew Hsieh
2a571fda2b Fix -mhard-float for calling __builtin_* math functions
Annotate __builtin math functions with __NDK_FPABI_MATH__ too.
1. __attribute__((pcs("aapcs"))) has no effect on codegen when __buitlin
   function is emitted inlined.
2. When __builtin call into regular function in Android's libm, it has
   proper attribute which observes soft float-abi

Change-Id: I11e8b74fc22f3072b9ce849193e4a56e98c92d64
2013-12-04 11:45:04 +08:00
Andrew Hsieh
effaa95815 <pthread.h>: Mark pthread_exit() as __noreturn
Same fix as https://android-review.googlesource.com/#/c/67540/
Fix for: https://code.google.com/p/android/issues/detail?id=60686

Change-Id: I27b8f1ed71dbb44f3598f7f4551bd881754ef945
2013-11-04 10:37:50 +08:00
David 'Digit' Turner
82703204a9 ndk: Add missing declaration for mkdtemp
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.c
    https://android.googlesource.com/platform/bionic/+/android-1.6_r1/libc/Android.mk

[2] ad1ff2fb26

Change-Id: I838b54bcb5cbfd2fed24cf7649897889ec7a5559
2013-10-28 18:46:54 +01:00
Andrew Hsieh
5881b5cbe7 Add __NDK_FPABI__ to function taking/returning float/double
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
2013-10-17 19:15:22 +08:00
David 'Digit' Turner
fe8625d401 ndk: Fix WCHAR_MIN / WCHAR_MAX definitions.
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
2013-07-20 00:56:53 +02:00
Andrew Hsieh
f56a37e539 Fix wchar.h not to redefine WCHAR_MAX/WCHAR_MIN
Change-Id: I6c6f2e020b72cce4c8665133ea0a0c5db977e348
2013-06-21 11:11:35 -07:00
Andrew Hsieh
5b1e1adadc Fix AMotionEvent_getHistorical* to take const AInputEvent* motion_event
See b.android.com/55873

Change-Id: I5ad9160ff286c291feece2deda647af66e251bb5
2013-05-27 12:12:53 +08:00
Andrew Hsieh
1d1bc5287d Fix OpenSLES_AndroidConfiguration.h to be usable for C code
See https://code.google.com/p/android/issues/detail?id=53163

Change-Id: I0eaa3f93860134daf7d589696e47828166fbc899
2013-03-14 10:33:15 -07:00
Andrew Hsieh
9ca4e48605 Sync pthread.h and resolv.h
See 9831ad3ce6bd5b22da16a275ed67e7236eae3d1f and
23d3e6b21b4b6debff87da8c6558495e564cc38e

Change-Id: I22c7bbda1cd763e5f67410cc2e4054292e71af04
2012-12-20 19:08:54 +08:00
Andrew Hsieh
d30385fc7c Correct typo
Change-Id: I150ee24f93d1a4fe16de938dafb335a9f1a171b0
2012-12-12 10:34:21 +08:00
Andrew Hsieh
206315bc74 Merge "Bug: __WINT_TYPE__ and wint_t reference to different types" 2012-11-29 19:21:58 -08:00
Sergey Melnikov
02327e165a Bug: __WINT_TYPE__ and wint_t reference to different types
__WINT_TYPE__ type provided by gcc. It references to unsigned int
type for android and linux. Patch corrects wint_t typedef to
__WINT_TYPE__.

Signed-off-by: Sergey Melnikov <sergey.melnikov@intel.com>
Change-Id: Ib02a808283f91f17c1124fc9e304911659f4af74
2012-11-26 12:01:00 +04:00
Andrew Hsieh
1535354143 Merge "Correct typo" 2012-11-23 01:35:35 -08:00
Andrew Hsieh
6162d4e848 Correct typo
See http://code.google.com/p/android/issues/detail?id=15134

Change-Id: I3eeed151949086fa132dc258d43bee21eab4af9b
2012-11-23 17:01:06 +08:00
Andrew Hsieh
28464f3b51 Check the presence of __STDC_VERSION__ in <sys/cdefs.h>
See http://code.google.com/p/android/issues/detail?id=14627
and bea05255de

Change-Id: Ie990b7c1df91adab631634e6b68454e4c5bab19d
2012-11-23 12:53:04 +08:00
David 'Digit' Turner
db5a5ada90 ndk: Remove LONG_LONG_MIN/MAX hack from pthread.h
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
2012-10-16 09:49:10 +02:00
Andrew Hsieh
7de8e93107 Remove linux-unistd.h
Change-Id: I95cc89bfacb05d92da658fa533cb75ac65d397bf
2012-08-18 16:08:51 +08:00
Andrew Hsieh
e6c0176071 Fixed compilation error #include <android/*h>
Fixed compilation error when header in #include <android/*h> is
included alone.

Fix for rect.h already exists in $ANDROID/frameworks/native/include/android

Change-Id: I7c49e044507581c5ad591f26f99cda6870b411c5
2012-04-16 14:17:41 +08:00
Andrew Hsieh
d3830daec2 am 314dea12: am 58f599f9: am 2038b5ac: am 799fada5: Merge "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 undefin
* 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.)
2012-03-27 10:19:43 -07:00
Raghu Gandham
c06e37eb51 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.)

    #define  WCHAR_MAX   INT_MAX
    #define  WCHAR_MIN   INT_MIN

Change-Id: Ifa87cf011cf7068c48755fc9ce5c0d73e95ef2dc
Signed-off-by: Chao-Ying Fu <fu@mips.com>
2012-03-15 17:24:23 -07:00
David 'Digit' Turner
47c55f4af2 ndk: <unistd.h>: Update for API level 11 + minor cleanup
- 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
2012-01-11 11:29:10 +01:00
David 'Digit' Turner
e4f252821e ndk: <pthread.h>: formatting + updates
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
2012-01-11 11:29:10 +01:00
David 'Digit' Turner
e0ff98803f ndk: android-9: Add missing <sys/eventfd.h> header
For some reason, the header was missing from previous NDK releases.
Note: the function symbols are properly listed in arch-$ARCH/symbols/libc.so.functions.txt

Change-Id: I72bf307ccaf55c9b8fc344f5bbfa7b44ba673d62
2012-01-11 11:29:10 +01:00
David 'Digit' Turner
25e3c216f2 ndk: ANativeActivity: Fix 'clazz' member documentation.
As discussed on android-ndk, the member is misnamed

Change-Id: I2a5a1c8dce327ddf9ab7a4d14f4e2fdf62808753
2011-11-09 13:13:43 +01:00
David 'Digit' Turner
0d7f537fea ndk: Refresh EGL/GLES Khronos headers
This patch updates the Khronos headers with updated version.
This mostly brings definitions (constants and types) related to
a bunch of new extensions. Since each extension is optional and
must be actively probed at runtime by the client program, this
doesn't change the NDK ABI at all. Moreover, which extension is
available depends on the specific hardware, not the Android system
version.

+ Define GLchar and GLvoid and adjust function signatures to
  use them instead of 'char' and 'void'

List of new extensions supported:

GLES 1.x
--------
GL_OES_vertex_array_object
GL_OES_EGL_image_external
GL_APPLE_texture_2D_limited_npot
GL_EXT_blend_minmax
GL_EXT_discard_framebuffer
GL_EXT_multi_draw_arrays
GL_EXT_read_format_bgra
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_format_BGRA8888
GL_EXT_texture_lod_bias
GL_IMG_read_format
GL_IMG_texture_compression_pvrtc
GL_IMG_texture_env_enhanced_fixed_function
GL_IMG_user_clip_plane
GL_IMG_multisampled_render_to_texture
GL_NV_fence
GL_QCOM_driver_control
GL_QCOM_extended_get
GL_QCOM_extended_get2
GL_QCOM_perfmon_global_mode
GL_QCOM_writeonly_rendering
GL_QCOM_tiled_rendering

GLES 2.0
--------
GL_OES_element_index_uint
GL_OES_get_program_binary
GL_OES_mapbuffer
GL_OES_packed_depth_stencil
GL_OES_texture_3D
GL_OES_texture_float
GL_OES_texture_float_linear
GL_OES_texture_half_float_linear
GL_OES_texture_npot
GL_OES_vertex_array_object
GL_OES_EGL_image_external
GL_AMD_program_binary_Z400
GL_EXT_blend_minmax
GL_EXT_discard_framebuffer
GL_EXT_multi_draw_arrays
GL_EXT_read_format_bgra
GL_EXT_texture_format_BGRA8888
GL_EXT_texture_compression_dxt1
GL_IMG_program_binary
GL_IMG_read_format
GL_IMG_shader_binary
GL_IMG_texture_compression_pvrtc
GL_IMG_multisampled_render_to_texture
GL_NV_coverage_sample
GL_NV_depth_nonlinear
GL_QCOM_extended_get
GL_QCOM_extended_get2
GL_QCOM_writeonly_rendering
GL_QCOM_tiled_rendering

EGL:
----
EGL_ANDROID_recordable
EGL_NV_system_time

Change-Id: I26ae2aeb499539017cc35d0271f13bcfbf6f8a65
2011-10-12 03:07:48 +02:00
David 'Digit' Turner
c63ce7a143 ndk: remove obsolete <android/api-level.h> headers
These are now auto-generated by the gen-platforms.sh NDK script

Change-Id: I5a38e956b58a34c5db96e24f2a46bc1ca1554376
2011-10-12 03:07:48 +02:00
Iliyan Malchev
d78fc7acbc android_native_buffer_t -> ANativeWindowBuffer
Change-Id: I246690d0ecd83b6da8dc0abeff68887abd92fc92
Signed-off-by: Iliyan Malchev <malchev@google.com>
2011-05-03 15:49:31 -07:00
David 'Digit' Turner
9d0136004f Fix two incorrect <android/input.h> function declarations.
The <android/input.h> header file provided with the NDK contained
two invalid function declarations. This patch fixes them.

Note that this breaks the API, but fixes the ABI (which was previously
broken). It is likely that any application developer that tried to use
these function had problems with them anyway.

Another patch to ndk.git will add a note to the changelog and to
the documentation to explain the issue.

+ Fix some documentation typos.

Change-Id: I0f4517458257ff3242127de9f9099f39948c0a56
2011-03-21 13:57:12 +01:00
David 'Digit' Turner
9ad28785ba Fix pwrite() declaration in NDK platform headers.
The corresponding fix is already in the Bionic libc source tree.

See http://code.google.com/p/android/issues/detail?id=8908

Change-Id: Id1329f996cd6708e46f48d33d998b8b3d26bf5d7
2011-03-15 16:30:35 +01:00
David 'Digit' Turner
114db2a1c4 ndk: Fixes PTHREAD_RWLOCK_INITIALIZER definition.
This is a fix for http://code.google.com/p/android/issues/detail?id=15306

Also see https://review.source.android.com//#change,21699 for the corresponding
fix in the C library headers.

Change-Id: I1c46ee9fc7eb120a98f47719a0407b81001f5ac0
2011-03-10 10:24:52 +01:00
David 'Digit' Turner
90887627f1 ndk: Update headers and libraries for API level 9
Change-Id: I39eded0065145803b51b22cdc18abef43abe426c
2010-12-10 17:16:24 +01:00
David 'Digit' Turner
1e7011fcd5 ndk: Add auto-generated <android/api-level.h>
See ndk.git/build/tools/dev-generate-api-levels.sh

Change-Id: Id64e565e7da6bf23f4bfa0fca52a06dbfe843c37
2010-11-22 22:38:57 +01:00
David 'Digit' Turner
186ce6d543 Merge "NDK: Last cleanup of the platform headers" into gingerbread 2010-11-04 04:09:48 -07:00
David 'Digit' Turner
3c7c38b2bb NDK: Last cleanup of the platform headers
- fix a declaration omission in 3/<grp.h>
- add missing 8/<err.h>
- simplify 8/<stdio.h>
- update 9/ headers to the latest Bionic versions
- fix a typo in android_native_app_glue.h
- use __BEGIN_DECLS .. __END_DECLS whenever possible.
- remove C++-style comments from headers

Change-Id: I58b98b3973cde494436206194ba33416a11ca8ee
2010-11-04 04:07:16 -07:00
David 'Digit' Turner
cc5809bf2f Merge "ndk: Use __ANDROID__ instead of ANDROID." into gingerbread 2010-11-04 04:06:31 -07:00
Mathias Agopian
3323f5912c update native_window.h ndk header
Change-Id: I70178a1ddd94279a102c2d25d2ce0459cec9d13a
2010-11-01 14:30:30 -07:00
David 'Digit' Turner
a99a3ff2b2 ndk: Use __ANDROID__ instead of ANDROID.
The platform headers use the ANDROID macro as a platform test.
This macro is set by the NDK build script explicitely, but it
is better to use __ANDROID__, which is also set by our toolchain
as a compiler prebuilt macro.

This allows usage of these headers with our standalone toolchain.

Change-Id: I431c54e29e502bb9da7a52ef7a58a6341211b4db
2010-10-30 20:41:23 -07:00