Commit Graph

446 Commits

Author SHA1 Message Date
Jesse Hall
2eceb17d62 am 5e427929: Merge "Add GLESv3 to future NDK release" into jb-mr2-dev
* commit '5e42792955753495f3643260b7a8af099dac32f9':
  Add GLESv3 to future NDK release
2013-06-29 21:04:31 -07:00
Andrew Hsieh
e5499c53e8 am ae9621de: Merge "Fix wchar.h not to redefine WCHAR_MAX/WCHAR_MIN"
* commit 'ae9621de63000a4c54e95fc9424f7a02f2d9af9a':
  Fix wchar.h not to redefine WCHAR_MAX/WCHAR_MIN
2013-06-21 13:52:51 -07: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
ca71e0f9da am 720848df: Merge "Header comparison tool for Bionic vs NDK platforms"
* commit '720848df0b749e6c6f97249fcf7f9d5afce5be53':
  Header comparison tool for Bionic vs NDK platforms
2013-06-21 08:12:21 -07:00
Grigoriy Kraynov
a67bdae6b1 Header comparison tool for Bionic vs NDK platforms
This tool is useful to compare headers between Bionic and NDK platforms.
It shows a summary list of non-equal headers and writes diff report to file.
See 'ndk/tools/headers-diff-bionic-vs-ndk.py --help' for details.

Change-Id: I3a9cf8a5e2dc862e34e27ab343ca17a0b4597b4d
Signed-off-by: Grigoriy Kraynov <grigoriy.kraynov@intel.com>
2013-06-21 14:01:40 +00:00
Andrew Hsieh
a8c949ea49 am 1db04560: Merge "Add clone in x86"
* commit '1db0456074007500c7e289e893e41149f8d8ff3c':
  Add clone in x86
2013-06-20 09:34:34 -07:00
Andrew Hsieh
d166ec49f9 Add clone in x86
clone is already declared in header and exists in both arm/mips libc.
Add the missing one in libc.so and libc.a (*1) for x86.

(*) only updated bionic_clone.o and clone.o from build after
22d366cc09383956dc264ed4641572e609392eee

Change-Id: Ibcb39948d48b84398543d84304ead21dab534c40
2013-06-19 18:02:20 -07:00
Andrew Hsieh
ace0c1c3db am 91009134: Merge "stdint.h header is not fully compatible with C99(ISO9899:1999)"
* commit '91009134462a1757982e5e80064075e52295e57c':
  stdint.h header is not fully compatible with C99(ISO9899:1999)
2013-06-19 13:31:29 -07:00
Andrew Hsieh
9100913446 Merge "stdint.h header is not fully compatible with C99(ISO9899:1999)" 2013-06-19 20:30:02 +00:00
Jesse Hall
c05863dac1 Add GLESv3 to future NDK release
* Headers were copied from frameworks/native/opengl/include/GLES3/.
* Symbol lists were generated with ndk/build/tools/gen-system-symbols.sh.
* Symbols are identical between architectures

Change-Id: I011094ea3b479cf166ffb6bef3778cde683fc502
2013-06-18 10:19:36 -07:00
Andrew Hsieh
fecb58b41d am 38c1a99c: Merge "Fix malloc_usable_size() declaration."
* commit '38c1a99c6193e4daecc48e67fc03a35b058045ee':
  Fix malloc_usable_size() declaration.
2013-06-05 22:36:47 -07:00
Andrew Hsieh
38c1a99c61 Merge "Fix malloc_usable_size() declaration." 2013-06-06 05:35:06 +00:00
Andrew Hsieh
2878c1ec89 am f2d1fca8: Merge "Fix AMotionEvent_getHistorical* to take const AInputEvent* motion_event"
* commit 'f2d1fca86d4f94207eee67f54ff3eb50192dcbad':
  Fix AMotionEvent_getHistorical* to take const AInputEvent* motion_event
2013-05-28 17:08:50 -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
David 'Digit' Turner
bb37dac9fa Fix malloc_usable_size() declaration.
This doesn't break the ABI.

See https://android-review.googlesource.com/#/c/59195 for corresponding
fix in the C library.

See http://b.android.com/55725 for details.

Change-Id: Id01e38ef7951368897b9bbaae09741fa927fd548
2013-05-23 10:08:44 +02:00
Andrew Hsieh
a09e0b1c4b am 19202f5a: Merge "Implement optimized __swap16md and __swap32md."
* commit '19202f5a753e1d2120dad5d177fc11d4e5e7bf7a':
  Implement optimized __swap16md and __swap32md.
2013-05-16 08:47:15 -07:00
Lai Wei-Chih
7e7f8b295f Implement optimized __swap16md and __swap32md. 2013-05-15 21:04:52 +08:00
Michael Wright
4f842f0072 am a7d5ca6b: Stop errors being logged erroneously on event predispatch
* commit 'a7d5ca6b2eaaa5a1c7766dea477c0d6c795b3721':
  Stop errors being logged erroneously on event predispatch
2013-04-23 16:46:09 -07:00
Michael Wright
a7d5ca6b2e Stop errors being logged erroneously on event predispatch
Change-Id: Ie4d15a7d01b9d63e7db16a2701024e6108eb0cc0
2013-04-22 18:11:08 -07:00
Andrew Hsieh
25c7f95934 Fix x86 endian.h
See https://code.google.com/p/android/issues/detail?id=54465
and https://android-review.googlesource.com/#/c/57242

Change-Id: Ib61fc0696e4979421f9bc6916c776a41fdc8be71
2013-04-22 11:25:41 +08:00
Andrew Hsieh
13dfb24d10 Merge "[MIPS] Cleaned up sig_0 error messages and added a few more checks." 2013-04-07 01:07:31 +00:00
Pete Delaney
b294db4498 [MIPS] Cleaned up sig_0 error messages and added a few more checks.
Change-Id: I316e60d891af99c18fc4b838b35a6d8977d0e7c8
Signed-off-by: Pete Delaney <piet.delaney@imgtec.com>
2013-04-05 16:00:35 -07:00
Chris Dearman
8663dd74ad [MIPS] Add portable versions of wait(), wait3() and wait4()
Added logging and refactored the code

Change-Id: Idcd2a9e8fbe933d410e9d67f0789fa074e89baef
2013-04-05 15:19:30 -07:00
Andrew Hsieh
3c10a2037e Fix sys/un.h to be included on its own
See https://code.google.com/p/android/issues/detail?id=53711
https://android-review.googlesource.com/#/c/42763

Change-Id: Ibd8a445dfde752cddab61b3ae53ad077738701ea
2013-04-01 14:02:06 +08:00
Andrew Hsieh
8d04b13138 Merge "ndk: Fix potential event handling issue in android_native_app_glue" 2013-03-27 18:08:08 +00:00
Andrew Hsieh
3ccf4f2c03 Deprecate __set_errno; Add #include <stdint.h> in elf.h
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
2013-03-27 10:44:19 -07:00
Lai Wei-Chih
521bcfb17a [libportable] Add fenv support.
Fix ndk/tests/device/fenv.

Change-Id: I46e1b47c3bec5213e827fabe311ef9e29a28195b
2013-03-26 22:09:17 +08:00
Andrew Hsieh
2f6ae26a67 Fix build >= JB
File arch-mips/sigsetjmp.S includes <asm-generic/portability.h>
already defined in LOCAL_CFLAGS, and build system prior JB
passes LOCAL_CFLAGS for building *.S as well, but no more >=JB.

Use LOCAL_C_INCLUDES instead (pass for *.S too)

Change-Id: I7e6d6e838d632f980aa6c9b6b2b2862bd7de11b1
2013-03-20 11:35:43 -07:00
Andrew Hsieh
fa33fb1132 Merge "Clean up unnecessary wrap functions." 2013-03-20 14:43:48 +00:00
David 'Digit' Turner
0d92cf5450 ndk: Fix potential event handling issue in android_native_app_glue
Developers report that concurrent events generated from different
sources/devices can lead to application freezes then ANRs.

See https://code.google.com/p/android/issues/detail?id=41755

where it is suggested that handling all incoming events in
the "process_input" callback solves the issue. Hence this patch
implements the suggestion, however it's unclear whether this
solves the symptom, or the root cause of the problem.

Change-Id: Ic6b0ad05d192763a6d8842c8befcb87db9714a3c
2013-03-20 11:13:38 +01:00
Lai Wei-Chih
3917ab0c97 Clean up unnecessary wrap functions.
For wrap functions that call real function directly, it could be removed.

Change-Id: I261aa6639349da776e835b9eb74f00b246d4e3c1
2013-03-20 14:30:13 +08:00
Andrew Hsieh
78175cbcc5 Don't use errno directly
errno in MIPS is macro for "*__errno)()".  Use of errno inside
WRAP(__errno)() cause infinite loop.  This may happen in other
wrapper functions which access errno.

Change all error to *REAL(__error)()

Change-Id: I1c09d84a58855bd7896fcd4e70f740b8a0f0b386
2013-03-19 18:06:30 -07:00
Andrew Hsieh
6433ec22b1 Use linker -Wl,--wrap=symbol
Linker --wrap option resolves to __wrap_symbol for undefined symbol.
During the compilation of host libportable.a, __HOST__ is defined
to rename all portable functions to  __wrap_symbol, and the
real function to __real_symbol.  This way libportable.a can be
validated at host w/o changes of user's source code.

See http://sourceware.org/binutils/docs/ld/Options.html

Change-Id: Idcbe53dd642536f3dc2be85a875f95535b9dc0b1
2013-03-18 21:55:39 -07:00
Andrew Hsieh
228a227967 Fix X86 sigsetjmp and siglongjmp
Both exist in header android-X/arch-<arch>/usr/include/setjmp.h
already.  Add to X86 to be consistent with header and other archs
ARM/MIPS

See https://code.google.com/p/android/issues/detail?id=19851

Change-Id: I635c6c0491f5bf2aaa9013f23cb4b1bf7cb57a40
2013-03-14 14:40:37 -07:00
Andrew Hsieh
d7faff47ab Merge "Added struct Elf32_auxv_t and Elf64_auxv_t" 2013-03-14 20:28:20 +00: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
c4e201a35c Added struct Elf32_auxv_t and Elf64_auxv_t
See https://code.google.com/p/android/issues/detail?id=38441

Change-Id: If06ec47d4e15639461c044248e3fe0020748b305
2013-03-13 19:21:56 -07:00
Andrew Hsieh
8052dc36d9 Make libportable.a compile on host
where cutils/log.h doesn't exit

Change-Id: I0ed6389a28f419f90ccbc6719b72895b366bb611
2013-03-12 22:48:28 -07:00
WenHan Gu
55128d1aca [ARM] Add unwind portable header adaptor.
ARM expanse some functions to others. For example,
_Unwind_GetIP will be inlined to _Unwind_GetGR, which
will be inlined to _Unwind_VRS_Get. This happens at
header-included level.

However, we use Itanium _Unwind_* header as portable one.
We do the inlining in ARM libportable to prevent
undefined reference to these functions.

Change-Id: Iad94c4a92531cdcfbcf535443fb257d02cb24c43
Signed-off-by: WenHan Gu <Wenhan.gu@mediatek.com>
2013-03-06 10:25:32 +08:00
Andrew Hsieh
27bd326dc3 Merge "[MIPS] Allow errno safe logging" 2013-02-26 11:55:15 +00:00
Pete Delaney
7ddc46bf9f [MIPS] Allow errno safe logging
Change-Id: I35b4a9007572bec15ab7ba81aad3756fa96c5eb2
Signed-off-by: Chris Dearman <chris.dearman@imgtec.com>
Signed-off-by: Pete Delaney <piet.delaney@imgtec.com>
2013-02-25 22:52:02 -08:00
Pete Delaney
858086ef5f [MIPS] Fixed mmap_portable()
mmap_portable() was calling madvise() and disrupting errno.
The call to madvise() has been dropped in bionic's version of
mmap() and now we just call that.

Updated helper functions to use the newer <class>_pton() style.

Added logging calls; like the rest of Lib-Portable,
it frequently helps save time.


Change-Id: I39f77899f0808e3af5fd2f6610355d2e33c09d85
Signed-off-by: Pete Delaney <piet.delaney@imgtec.com>
Signed-off-by: Chris Dearman <chris.dearman@imgtec.com>
2013-02-25 21:45:47 -08:00
Pete Delaney
183963db80 [MIPS] Portable versions of setjmp, sigsetjmp, ...
The portable (ARM) jmp_buf and sigjmp_buf structures are smaller than the native
(MIPS) structures so it is not safe to simply call the standard bionic routines.

Luckily there is a lot of redundant space in the standard MIPS structures
and it is possible to save all of the needed registers in the area provided by the
ARM application.

Change-Id: I694a90516cdf96d581863e833776092830afe3cc
Signed-off-by: Chris Dearman <chris.dearman@imgtec.com>
Signed-off-by: Pete Delaney <piet.delaney@imgtec.com>
Signed-off-by: Paul Lind <paul.lind@imgtec.com>
2013-02-20 20:07:33 -08:00
Pete Delaney
860342e989 [MIPS] Added support for STDIO sflags().
sflags() returns open() flags via a pointer passed to sflags().

Change-Id: I854dc4302bf09318e97eb3129a8debf98dbe8735
Signed-off-by: Chris Dearman <chris.dearman@imgtec.com>
Signed-off-by: Pete Delaney <piet.delaney@imgtec.com>
Signed-off-by: Paul Lind <paul.lind@imgtec.com>
2013-02-20 20:06:46 -08:00
Pete Delaney
998548881e [MIPS] Fixed a bug and improved fcntl_portable.
Improved Logging, tweaked func names, fixed double mappings
of mips_command.

While debugging the LTP fcntl07* set of failures I modified
a few ALOGV() calls to make logging more helpful in
fcntl_cmd_pton().

Change-Id: Idc9a7c8dd27883dff1e555769d6a8e331f4fdeb9
Signed-off-by: Pete Delaney <piet.delaney@imgtec.com>
Signed-off-by: Chris Dearman <chris.dearman@imgtec.com>
Signed-off-by: Paul Lind <paul.lind@imgtec.com>
2013-02-20 20:06:13 -08:00
Pete Delaney
b7b5e9d3fb [MIPS] Extend Signal Mapping to include RT Signals.
Both MIPS and ARM use signals 32 to 64 for real-time signals.
ARM signals 32 to 64 can't be masked due to the signal
mask being limited to 32 bits. MIPS signals 32 to 64 can be
masked, and Lib-Portable correctly supports this feature.

Fixes LTP tests rt_sigaction01 and ptrace05.

Fixed a few signal problems; Ex last Real Time Signal

1.  The signal handler for signal number 64, the last real
    time signal, wasn't being intercepted. Now catching
    signal number 64.

2.  sigaction() to only change *oldact when return
    value is zero.

3.  Fixed rt_sigqueue_portable() to set errno when
    returning a -1.

4.  Fixed a few cases where signal 0 was being added
    to the table of signal handlers for signal remapping.
    Harmless but a bit silly.

Change-Id: I1a71113d7ce4b60f3a587dae4e243dc88dd6d6bc
Signed-off-by: Pete Delaney <piet.delaney@imgtec.com>
Signed-off-by: Chris Dearman <chris.dearman@imgtec.com>
Signed-off-by: Paul Lind <paul.lind@imgtec.com>
2013-02-20 20:05:46 -08:00
Pete Delaney
c684613e19 [MIPS] Added support for file descriptor related system calls.
Specifically these functions are now supported:
    signalfd4(), eventfd(), timerfd_create(),
    pipe(), and inotify_init1()

Modified syscall_portable() to call signalfd4_portable(),
eventfd_portable(), eventfd2_portable(), and timerfd_create().
These system calls enable the read system calls to access
kernel data structures.

The signalfd4() enables read to return a signalfd_siginfo structure
which have the signal number and errno mapped until an execve().
This is similar to the maintaining a table of signal handlers to
map the signal numbers done earlier. This mapping is extended to
the process after an execve() by passing the final set of mapped
file descriptors via a pair of environment variables.

Disabling signal and file descriptor read mapping in parent
if the child would break the mapping algorithms.

This code passes at least all of the non-POSIX LTP tests,
including an updated LTP signalfd4 test that posts SIGNALS
and uses this read() mechanism to get signal info.

inotify_init1 is similar to signalfd(), timerfd() and other
filefd functions which map read() calls. Unlike signalfd(), and
similar to timerfd(), the reads don't appear to need to be mapped.

The members of the inotify_event structure appear to be generic.
The mask bits like IN_MOVE_FROM and IN_MOVE_TO are defined in
generic files. The LTP test in testcases/kernel/syscalls/inotify
test for the inotify_event structure being inotify_event structure
being read and does seem to check it contents being correct.

Change-Id: I3f2dcd4e33437ac953cd9f67f56dccc6ec6e5e6f
Signed-off-by: Pete Delaney <piet.delaney@imgtec.com>
Signed-off-by: Chris Dearman <chris.dearman@imgtec.com>
Signed-off-by: Paul Lind <paul.lind@imgtec.com>
2013-02-20 20:05:19 -08:00
Pete Delaney
dbbf0045b6 [MIPS] Fixed LTP Tests 9 and 20 of getaddrinfo_01.
Just mapping struct addrinfo socktype member; everything else is
identical in ARM vs MIPS cpp comparison.

Lots of tests in getaddrinfo_01 fail on Android, but test 9 and 20
were breaking with lib-portable only. This fix corrects that
difference in the test results.

Change-Id: I93c7948cc206ec60b867844857e3e19350c5f5e9
Signed-off-by: Pete Delaney <piet.delaney@imgtec.com>
Signed-off-by: Chris Dearman <chris.dearman@imgtec.com>
Signed-off-by: Paul Lind <paul.lind@imgtec.com>
2013-02-20 20:04:01 -08:00
Pete Delaney
a89a549987 [MIPS] Added missing _NR_* system call support and cleaned up.
Change-Id: I18499a73ad3732a16edb941c4db9fc2811dfe5d5
Signed-off-by: Pete Delaney <piet.delaney@imgtec.com>
Signed-off-by: Chris Dearman <chris.dearman@imgtec.com>
Signed-off-by: Paul Lind <paul.lind@imgtec.com>
2013-02-20 20:03:24 -08:00
Pete Delaney
6732a917fd [MIPS] Add Real Time Signal Functions and minor bug fixes.
1. Added:
        rt_sigaction(),
        rt_sigprocmask(), and
        rt_sigtimedwait portable syscalls.

    2. Fixed a bug in signal.c.

    3. Added a new pair of functions to map siginfo_t
       between portable and native formats.

    4. Fixed LTP rt_siqqueueinfo01 and siqqueue() test failures.

    5. Using these new siginfo_t mapping functions in functions
       that were previously doing this functionality internally:
          a. mips_sigaction_handler()
          b. __rt_sigtimedwait_portable()

    6. Modified rt_sigqueueinfo_portable():
      a. Added a call to this new siginfo_pton() function.
      b. Fixed native_sig calculation; it was converting
         with the wrong function (ntop instead of pton).

    7. Added the Thread Group Flavor of Real Time version of
       sigqueueinfo().

    8. Added and tested the sigqueue() implementation thought it's
       not supported by Android yet. Using a LTP library function
       to implement it via syscall for now.  Android has a
       sysconf() regression that will be addressed in a separate
       commit.

    9. Modified some of the variable names in:

          __rt_sigtimedwait_portable()

       to make it easier/faster to read.

    10. Fixed a SIGTERM --> SIGTERM_PORTABLE mapping bug.

Most LTP Posix sigqueue() tests and the rt_sigqueueinfo01() test
now pass with this commit.

Change-Id: I5a2c28c4f5863cc013fe0c7fce819fa5b7a6dcc7
Signed-off-by: Pete Delaney <piet.delaney@imgtec.com>
Signed-off-by: Douglas Leung <douglas.leung@imgtec.com>
Signed-off-by: Chris Dearman <chris.dearman@imgtec.com>
Signed-off-by: Paul Lind <paul.lind@imgtec.com>
2013-02-20 20:02:52 -08:00