Commit Graph

71 Commits

Author SHA1 Message Date
Dan Albert
3b59037af3 Backport the inlines for cfsetspeed and tcdrain.
This fixes some issues with using boost's asio (which wrongly assumes
_BSD_SOURCE implies that these things are available) following our
change from -isystem to --sysroot.

Test: Manual, check that we can build when using cfsetspeed on ICS.
Bug: https://github.com/android-ndk/ndk/issues/302
Change-Id: Iab50221e4864f9a09a8fb00691252170eb6e8d09
2017-02-23 11:24:00 -08:00
Dan Albert
9e464b2b80 Purge the android_alarm headers.
These aren't part of the current UAPI headers. They're already gone
from the unified headers, but it would be good to remove them from
the legacy headers as well since it will help find the people that
are still using them (if any).

Test: ndk/checkbuild.py
Bug: None
Change-Id: I04f78e06116a7fba3c894c710dee014cda4030f4
2017-01-31 18:34:45 +00:00
Dan Albert
17f4026295 Stop shadowing __pure2 in math.h.
I'd actually fixed sys/cdefs.h quite some time ago, but that
definition of __pure2 was being clobbered by the bogus one in math.h.

Test: clang -E -dM --sysroot $NDK/platforms/android-9/arch-arm/ \
          platforms/android-9/include/math.h | grep __pure2
Bug: http://b.android.com/62020

Change-Id: I9b93a7c46075a02ed1ea0ca2cc77624b15955c7f
2016-09-29 10:09:36 -07:00
Dan Albert
5831e92366 Remove more hard float crap.
Ugh. We had redefinitions of all the __builtin_* math functions in
here.

Test: ./checkbuild.py
Bug: https://github.com/android-ndk/ndk/issues/142
Change-Id: Iec187c3a542e2dc9b3d628c2a9aa3fb45d7986ef
2016-08-02 10:24:19 -07:00
Dan Albert
27f936e0b9 Remove __NDK_FPABI__ from all definitions.
There's no such thing as the hard float ABI any more.

Change-Id: I94edfc1f12e93286b87febfd9b8486f2f3df051e
2016-07-15 11:30:28 -07:00
Dimitry Ivanov
aca425a0cf Remove symbols and header prior android-9
The earliest api version ndk supports is 9, remove
everything before that.

Bug: http://b/26143749
Change-Id: I108692a03db7577ed9c49cf3fbebbbe7b21ad553
2016-04-25 14:18:02 -07:00
Pablo Ceballos
a240a81a0e NDK EGL: Build break fix
- Make sure all headers can be included by themselves.

Change-Id: If8a072ea7db5b8c29ee6e0ac4843d26e82988ae5
2016-04-04 15:28:40 -07:00
Pablo Ceballos
b55209b98a Revert "Revert "Merge changes Icc59b133,I71814ffd,Idfdb90b5,Ie3bded59,Icaa93832, ...""
This reverts commit 5a4b526228.
2016-04-04 15:15:46 -07:00
Dan Albert
5a4b526228 Revert "Merge changes Icc59b133,I71814ffd,Idfdb90b5,Ie3bded59,Icaa93832, ..."
Broke the build.

This reverts commit bc8899c103, reversing
changes made to 615357b952.

Change-Id: Ibd36bc1df7f7e20cb054c6a64686f4324f2d818c
2016-03-31 11:27:27 -07:00
Pablo Ceballos
b28db537de NDK EGL: Updates to android-9
Change-Id: I1d1784c78b1e00b24403cd6342f411d02e669062
2016-03-30 13:23:11 -07:00
Dimitry Ivanov
11ae5ebfb6 Replace __page_size reference with PAGE_SIZE for android-12 and below
Also remove __getpageshift since it is not present in later version of
android (>12)

Bug: http://b/26475272
Bug: https://github.com/android-ndk/ndk/issues/1
Change-Id: I117194ede3b13a63ff020364b0f573fb25d5205d
2016-01-09 14:16:13 -08:00
Dimitry Ivanov
6bef207c7b Remove new set of LIBC_PRIVATE symbols from libc
Bug: http://b/26234924
Change-Id: If0acb2105c75bf9e6dd97230391f3944157990ae
2016-01-05 15:26:03 -08:00
Dan Albert
c57abe4eb2 Always use the newest sys/cdefs.h.
This is all macros, so there's no reason to have one per API level.

This is still quite a ways from matching what we have in bionic, but
that's a problem for another day.

Change-Id: I804edfd6299d9ba15a3ba59e1091f301eace2142
2015-12-08 14:19:48 -08:00
Andrew Hsieh
3598d53b42 Drop clang version check for __builtin_isinf and __builtin_isnan
This CL unconditionally removes the existance of __builtin_isinf and
__builtin_isnan from math.h for clang, because (unlike other math functions)
clang doesn't like those to be declared.

See LLVM bugzilla entry: http://llvm.org/bugs/show_bug.cgi?id=20958

The reason for decorating all math functions with __attribute__((pcs("aapcs")))
is to offer developers the ability to compile their code with hardfp and still
link Android's libm.so which follows softfp calling convention.

Before issue 20958 is fixed, those who want clang to compile their code with
hardfp in NDK has to go all the way hard, ie.
1) LOCAL_CFLAGS += -mhard-float -D_NDK_MATH_NO_SOFTFP=1
   Note that _NDK_MATH_NO_SOFTFP=1 remove __attribute__((pcs("aapcs"))) for all math functions
2) LOCAL_LDLIBS += -lm_hard  # link libm_hard.a recompiled with -mhard-float instead of bionic libm.so

Change-Id: Ie2f95e73e58e1574e8cadbcab92a5209d94448e1
2015-01-16 14:24:04 -08:00
Andrew Hsieh
d3ab539366 Change sysconf(3) to return long
See bionic 60d84af1726225320b26683b726e5e735d9d76e8

BUG=18390956

Change-Id: I20c6aa48115610b35e1d59f9f37ce5abbe6ac2f7
2014-11-17 09:48:36 +08:00
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