OSDN Git Service
Jiyong Park [Fri, 30 Jun 2017 06:36:12 +0000 (15:36 +0900)]
__cfi_slowpath[_diag] are available to NDK and VNDK clients
When a vendor lib (or vendor-available platform lib) is built with
sanitizer on, __cfi_slowpath_diag is required. However, when building
for those libs, the llndk stub of libdl.so is provided for them and
__cfi_slowpath_diag is not exposed to the stub. In order to make the
sanitizing build successful, expose the symbol.
These symbols are also exposed to NDK clients since we may want to CFI
for unbundled apps.
Bug:
63053790
Bug:
63342219
Test: BOARD_VNDK_VERSION=current m -j libstagefright_foundation.vendor
Change-Id: I081deddb4f66354aaecec4b395d4e17e5566c578
Victor Khimenko [Mon, 10 Jul 2017 22:33:54 +0000 (22:33 +0000)]
Merge "Move environ valiable into it's own file"
Elliott Hughes [Mon, 10 Jul 2017 20:40:53 +0000 (20:40 +0000)]
Merge "Make inline tcsetattr definition match constants."
Treehugger Robot [Mon, 10 Jul 2017 20:20:53 +0000 (20:20 +0000)]
Merge "Undo recent _FILE_OFFSET_BITS=64 changes."
Treehugger Robot [Mon, 10 Jul 2017 20:07:01 +0000 (20:07 +0000)]
Merge "Fix ffs on x86 for old API levels."
Elliott Hughes [Wed, 5 Jul 2017 22:23:50 +0000 (15:23 -0700)]
Undo recent _FILE_OFFSET_BITS=64 changes.
We had several bugs filed saying "if I set _FILE_OFFSET_BITS=64 when
targeting an API < L, various functions are missing". Instead of
saying "yes, they are", we quietly just modified the header files to
expose the non-64-bit variants. This makes no sense. We can't just say
"oh, yeah, we don't have a version of this function that agrees with
your calling code about how large off_t is, but here's a version that
doesn't: I'm sure it'll be fine".
_FILE_OFFSET_BITS=64 on Android LP32 has always been a game of chance,
but that game should be "are all the functions my code needs available
at compile time?", not "will my code actually work at run time?".
Bug: https://github.com/android-ndk/ndk/issues/449
Bug: https://github.com/android-ndk/ndk/issues/442
Bug: https://github.com/android-ndk/ndk/issues/333
Bug: https://github.com/android-ndk/ndk/issues/332
Bug: https://github.com/android-ndk/ndk/issues/324
Test: builds
Change-Id: Ib095251d3e21e77ed50cc3575388107fecec4ecd
Victor Khimenko [Mon, 10 Jul 2017 19:15:37 +0000 (21:15 +0200)]
Move environ valiable into it's own file
Test: build statically the example program below
char** environ;
int main() {
}
Change-Id: I3f01652da1d5063d92ba7cbff7fb09bd0a89325c
Ivan Lozano [Fri, 7 Jul 2017 20:07:20 +0000 (20:07 +0000)]
Merge "Disable integer_overflow sanitizer in libm."
Elliott Hughes [Thu, 6 Jul 2017 22:33:42 +0000 (22:33 +0000)]
Merge "Support building binutils out of the box for x86/x86-64."
Elliott Hughes [Thu, 6 Jul 2017 22:20:34 +0000 (22:20 +0000)]
Merge "Make <sys/ttydefaults.h> more usable."
Ivan Lozano [Thu, 6 Jul 2017 20:54:56 +0000 (13:54 -0700)]
Disable integer_overflow sanitizer in libm.
Explicitly disables the integer_overflow sanitizer in the libm library.
This change should not impact any other build targets.
Bug:
30969751
Test: Built with and without SANITIZE_TARGET=integer_overflow
Change-Id: I98d0312344086b01394f456d4b953463b5e6cb1a
Elliott Hughes [Thu, 6 Jul 2017 22:15:04 +0000 (22:15 +0000)]
Merge "Update <arpa/*> from FreeBSD."
Elliott Hughes [Thu, 6 Jul 2017 21:22:20 +0000 (21:22 +0000)]
Merge "Claim to have a POSIX shell and utilities."
Elliott Hughes [Thu, 6 Jul 2017 21:21:20 +0000 (21:21 +0000)]
Merge "Conditionally expose splice(2) and sync_file_range(2) constants."
Elliott Hughes [Thu, 6 Jul 2017 21:15:35 +0000 (21:15 +0000)]
Merge "Fix <dirent.h> d_ino/d_off types."
Elliott Hughes [Thu, 6 Jul 2017 18:04:15 +0000 (11:04 -0700)]
Support building binutils out of the box for x86/x86-64.
x86 needs the <sys/user.h> additions, x86-64 the <sys/procfs.h> ones.
Bug: N/A
Test: ndkports x86 and x86_64 binutils-2.28
Change-Id: I2e4738d3f8343d12db0536ca77045e2a0ccc6596
Elliott Hughes [Thu, 6 Jul 2017 17:33:15 +0000 (10:33 -0700)]
Make <sys/ttydefaults.h> more usable.
* TTYDEF_OFLAG referred to the BSD OXTABS constant instead of the Linux XTABS,
so references to it wouldn't compile.
* CEOL was incorrect (compared to `stty -a`).
* ttydefchars wouldn't compile (removed rather than attempt to fix something
of unclear utility).
Bug: http://b/
63145226
Test: new test
Change-Id: I823e5eaab789cafd2eeea03f77ea553346822f74
Dimitry Ivanov [Thu, 6 Jul 2017 15:16:03 +0000 (15:16 +0000)]
Merge "The ifdef check for AT_SYSINFO_EHDR is no longer needed"
Treehugger Robot [Thu, 6 Jul 2017 14:48:01 +0000 (14:48 +0000)]
Merge "Bionic: Add ziparchive test dependency"
dimitry [Thu, 6 Jul 2017 10:17:14 +0000 (12:17 +0200)]
The ifdef check for AT_SYSINFO_EHDR is no longer needed
AT_SYSINFO_EHDR is present in all architectures
Test: make
Change-Id: I0f4c115bb48e47ea156e7fca936960f5f10c618e
Andreas Gampe [Thu, 6 Jul 2017 05:36:20 +0000 (22:36 -0700)]
Bionic: Add ziparchive test dependency
Add missing dependency.
Bug:
37342627
Test: m
test: mmma bionic
Change-Id: I43ae69a007f0e8745db5721296f457b3e58206dd
Elliott Hughes [Wed, 5 Jul 2017 23:45:55 +0000 (16:45 -0700)]
Claim to have a POSIX shell and utilities.
We pretty much do these days. And apparently some GNU tools turn on obsolete
backwards-compatible behaviors otherwise.
Bug: http://b/
63145226
Test: builds
Change-Id: I9a8af860768cc2c10548f172d1e8b4fba3e5115b
Elliott Hughes [Wed, 5 Jul 2017 22:51:44 +0000 (15:51 -0700)]
Update <arpa/*> from FreeBSD.
We've had <arpa/telnet.h> for years, despite being slightly more useless
than <arpa/ftp.h> and <arpa/tftp.h>. The inetutils package expects these
to be available.
Bug: http://b/
63145226
Test: builds
Change-Id: I1e3c7421779e965b3342d681fefb8dc2561b604d
Elliott Hughes [Wed, 5 Jul 2017 22:59:58 +0000 (15:59 -0700)]
Conditionally expose splice(2) and sync_file_range(2) constants.
As in other places, only expose the constants at API levels where
we're also exposing the functions (to cope with "poor man's configure"
where an author assumes the presence of the #define to imply the
availability of the function).
Bug: http://b/
63145226
Test: builds
Change-Id: I524f7288513aa6c35479c550e748a619397929b0
Elliott Hughes [Wed, 5 Jul 2017 19:34:29 +0000 (12:34 -0700)]
Fix <dirent.h> d_ino/d_off types.
Bug: http://b/
63336806
Test: builds
Change-Id: I781e7c66c41bcb772d49ce7c23aab185ddd5da1e
Elliott Hughes [Wed, 5 Jul 2017 19:00:29 +0000 (12:00 -0700)]
Make inline tcsetattr definition match constants.
Before this change we have the old NDK inline termios functions with the
modern constants. Unfortunately the old NDK inline functions relied on
hacking the constants. Fix things by sharing the implementation between
the platform and the NDK headers.
Bug: https://github.com/android-ndk/ndk/issues/441
Test: ran tests
Change-Id: I2773634059530bc954167f29c4783413a2294d5a
Elliott Hughes [Sat, 1 Jul 2017 15:48:58 +0000 (15:48 +0000)]
Merge "Work around missing _Exit in old API levels."
Elliott Hughes [Fri, 30 Jun 2017 22:57:59 +0000 (15:57 -0700)]
Fix ffs on x86 for old API levels.
<strings.h>'s ffs used to work by accident. In the past, <strings.h> used
to incorrectly declare ffs for all platforms at all API levels. In the
unified headers, there's no such declaration for x86 before API 18 (which
makes sense, because that function was missing on x86 until then).
But as long as there was a declaration for ffs, the compiler just inlined
__builtin_ffs. There was no problem at link time because the compiler didn't
actually add a reference to the missing ffs symbol.
Restore the old behavior by manually instructing the compiler to inline its
builtin in these cases.
Bug: https://github.com/android-ndk/ndk/issues/439
Test: built new NDK 'ffs' test
Change-Id: I840e99f237c86f7cb028a0f67aaa8c6ff3eda245
Elliott Hughes [Fri, 30 Jun 2017 23:39:25 +0000 (16:39 -0700)]
Work around missing _Exit in old API levels.
Rather than do this in libandroid_support, we may as well just stick it with
the other historical stdlib workarounds in bionic itself...
Bug: N/A
Test: built new NDK test
Change-Id: Ia5cf4010581eb79d4adf924e87d0bc050b9e2839
Treehugger Robot [Fri, 30 Jun 2017 22:33:27 +0000 (22:33 +0000)]
Merge "Add version info for C++ versions of basename, strchrnul."
Josh Gao [Fri, 30 Jun 2017 20:20:28 +0000 (13:20 -0700)]
Add version info for C++ versions of basename, strchrnul.
These still won't get guards added by the preprocessor, because it
compiles with C-only.
Bug: https://github.com/android-ndk/ndk/issues/440
Test: treehugger
Change-Id: I893b345e528ed1b761e0db00700037411bbb8b78
Roozbeh Pournader [Fri, 30 Jun 2017 01:10:10 +0000 (01:10 +0000)]
Merge "Revert "arm64: expand CFI shadow to cover 48-bit virtual addresses""
Elliott Hughes [Thu, 29 Jun 2017 23:48:43 +0000 (23:48 +0000)]
Revert "arm64: expand CFI shadow to cover 48-bit virtual addresses"
This reverts commit
ae735163e51fbc7cac4217ce392c4894efdfc5a7.
QA claims this causes:
AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaPlayer.setSurface(android.view.Surface)' on a null object reference
AndroidRuntime: at com.android.setupwizardlib....
Bug: http://b/
63141434
Change-Id: I05a6849471623d4cde8b254b1020b0ccbd84b699
Treehugger Robot [Thu, 29 Jun 2017 16:27:52 +0000 (16:27 +0000)]
Merge "bionic: fix assorted static analyzer warnings"
Elliott Hughes [Thu, 29 Jun 2017 15:23:32 +0000 (15:23 +0000)]
Merge "arm64: expand CFI shadow to cover 48-bit virtual addresses"
Treehugger Robot [Thu, 29 Jun 2017 00:39:30 +0000 (00:39 +0000)]
Merge "Put back more legacy pthread APIs."
George Burgess IV [Tue, 27 Jun 2017 23:23:45 +0000 (16:23 -0700)]
bionic: fix assorted static analyzer warnings
Warnings:
bionic/libc/bionic/fts.c:722:5: warning: Null passed to a callee that
requires a non-null 1st parameter
bionic/libc/bionic/sched_cpualloc.c:34:25: warning: Result of 'malloc'
is converted to a pointer of type 'cpu_set_t', which is incompatible
with sizeof operand type 'unsigned long'
bionic/linker/linker_main.cpp:315:7: warning: Access to field 'e_type'
results in a dereference of a null pointer (loaded from variable
'elf_hdr')
bionic/linker/linker_main.cpp:493:66: warning: Access to field 'e_phoff'
results in a dereference of a null pointer (loaded from variable
'elf_hdr')
bionic/linker/linker_main.cpp:90:14: warning: Access to field 'next'
results in a dereference of a null pointer (loaded from variable 'prev')
Bug: None
Test: mma; analyzer warnings are gone. CtsBionicTestCases pass.
Change-Id: I699a60c2c6f64c50b9ea06848a680c98a8abb44a
Kevin Brodsky [Mon, 26 Jun 2017 10:46:02 +0000 (11:46 +0100)]
arm64: expand CFI shadow to cover 48-bit virtual addresses
Starting from Linux 4.7, arm64's defconfig enables 48-bit VAs, see:
https://git.kernel.org/torvalds/c/
211102d8
On arm64, the CFI shadow configuration currently assumes that VAs
are 39-bit long, and as expected this results in a segfault on a
(defconfig) 4.7+ kernel, when linking a CFI-enabled library.
Consequently, this change increases the max target address to
account for the new max VA size.
Change-Id: I3fb808563fa77a457c65e9663da0613117332072
Treehugger Robot [Tue, 27 Jun 2017 19:46:28 +0000 (19:46 +0000)]
Merge "Enable dlfcn.dt_runpath_absolute_path in glibc tests"
Dimitry Ivanov [Tue, 27 Jun 2017 18:02:51 +0000 (11:02 -0700)]
Enable dlfcn.dt_runpath_absolute_path in glibc tests
dlfcn.dt_runpath_absolute_path no longer fails when
running bionic-unit-tests on glibc
Bug: http://b/
25320359
Test: bionic-unit-tests-glibc --gtest_filter=dlfcn.dt*
Change-Id: Ia0ecf43293cb0fed28516fd8cb87e7f5f2d6e648
Treehugger Robot [Fri, 23 Jun 2017 17:39:05 +0000 (17:39 +0000)]
Merge "Expand Seccomp whitelist"
Paul Lawrence [Fri, 23 Jun 2017 15:10:18 +0000 (08:10 -0700)]
Expand Seccomp whitelist
This seccomp failure is in the fault handler:
05-25 12:03:25.042 10201 27425 27425 F DEBUG : backtrace:
05-25 12:03:25.042 10201 27425 27425 F DEBUG : #00 pc
00015380
/data/data/redacted/files/storage/lib/libcrashsdk.so
So whenever an app using this crash sdk crashes it looks like a seccomp
problem. Fixing this won't stop the apps crashing, but will make the
crash reports accurate and useful.
So yes, the bug below is already fixed, but this issue has come back 2
or 3 times with different apps (latest is b/
62874867). This change
doesn't fix that crash either, but again it improves the reporting.
Bug:
62090571
Test: Device boots, app still fails but no longer with SECCOMP error
Change-Id: Ie0f8dc965001c8bc43f6a545b35bdcd38f006213
Treehugger Robot [Fri, 23 Jun 2017 01:39:07 +0000 (01:39 +0000)]
Merge "Whitelist __NR__newselect."
Josh Gao [Thu, 22 Jun 2017 23:46:19 +0000 (16:46 -0700)]
Whitelist __NR__newselect.
Bug: http://b/
62779795
Test: treehugger
Change-Id: I3e0279385641d4f06fcdeb955819a01c12c5229e
Dan Albert [Thu, 22 Jun 2017 19:40:55 +0000 (12:40 -0700)]
Put back more legacy pthread APIs.
Test: make checkbuild
Bug: https://github.com/android-ndk/ndk/issues/423
Bug: https://stackoverflow.com/q/
44580542/632035
Change-Id: Ibf52a969afffbfcdf6793a0bf8b0e10bbdd1f32c
Treehugger Robot [Thu, 22 Jun 2017 01:40:04 +0000 (01:40 +0000)]
Merge "Disable stack protector for __libc_preinit"
Stephen Crane [Tue, 9 May 2017 21:27:43 +0000 (14:27 -0700)]
Disable stack protector for __libc_preinit
__libc_preinit sets up the stack protector global cookie value, and thus
cannot intialize a stack protector cookie for itself in the function
prologue. LTO compilation can inline functions requiring a stack
protector into __libc_preinit. This patch disables stack protection for
__libc_preinit and forces all potentially inlined functions into a
helper that can have a stack protector.
Test: run bionic-unit-tests
Change-Id: I45911611190f216c91eb6feff722967214c5f99f
Elliott Hughes [Wed, 21 Jun 2017 15:09:53 +0000 (15:09 +0000)]
Merge "Shave a stack frame off asserts."
Elliott Hughes [Wed, 21 Jun 2017 00:28:42 +0000 (17:28 -0700)]
Shave a stack frame off asserts.
No-one cares about seeing "async_safe_fatal" (which you have to admit is a
pretty confusing name for an app developer anyway).
On arm:
#00 pc
0001a43c /system/lib/libc.so (abort+63)
#01 pc
0001a627 /system/lib/libc.so (__assert+14)
And aarch64:
#00 pc
000000000001d75c /system/lib64/libc.so (abort+120)
#01 pc
000000000001dad0 /system/lib64/libc.so (__assert+44)
Bug: N/A
Test: ran `crasher assert` and `crasher64 assert`
Change-Id: I00be71c566c74cdb00f8e95d634777155bc3da03
Treehugger Robot [Wed, 21 Jun 2017 00:20:33 +0000 (00:20 +0000)]
Merge "Shave another uninteresting stack frame off aborts."
Elliott Hughes [Tue, 20 Jun 2017 21:26:56 +0000 (14:26 -0700)]
Shave another uninteresting stack frame off aborts.
With this, stack frame 0 is the abort, not tgkill.
arm:
#00 pc
0001a41c /system/lib/libc.so (abort+63)
arm64:
#00 pc
000000000001d75c /system/lib64/libc.so (abort+120)
Also "include what you use" for <sys/syscall.h>.
Bug: N/A
Test: ran `crasher abort` and `crasher64 abort`
Change-Id: I6517ac67b39b4133e890d52efc115071c812958b
Treehugger Robot [Tue, 20 Jun 2017 10:35:52 +0000 (10:35 +0000)]
Merge "make libasync_safe vendor_available:true"
Jaesung Chung [Mon, 19 Jun 2017 00:13:07 +0000 (00:13 +0000)]
Merge "linker_config_test: allow search paths of systems without a vendor partition"
Jaesung Chung [Fri, 16 Jun 2017 05:43:16 +0000 (14:43 +0900)]
linker_config_test: allow search paths of systems without a vendor partition
linker_config#smoke and linker_config.asan_smoke are trying to find
paths under the /vendor directory. If there is no vendor partition,
the real path of them is started with /system/vendor.
This CL allows those paths in the tests by getting the resolved paths
for systems without a vendor partition.
Bug: http://b/
62562515
Test: linker_config_test passes without a vendor partition.
Change-Id: Id6d16ef623efd81ab9083c3e819da2ad22a28bf8
Treehugger Robot [Fri, 16 Jun 2017 22:51:58 +0000 (22:51 +0000)]
Merge "Add sys/stat.h compatibility macros for old NDKs."
Treehugger Robot [Fri, 16 Jun 2017 21:04:10 +0000 (21:04 +0000)]
Merge "Remove obsolete <machine/cpu-features.h>."
Elliott Hughes [Fri, 16 Jun 2017 20:56:03 +0000 (20:56 +0000)]
Merge "Add #defines for some key enums."
Elliott Hughes [Fri, 16 Jun 2017 18:05:16 +0000 (11:05 -0700)]
Remove obsolete <machine/cpu-features.h>.
This is no longer used in the platform, and shouldn't be used in NDK. Apps
should use the NDK's cpu-features module, which supports (a) more specific
queries and (b) all Android architectures, not just 32-bit ARM.
Bug: http://b/
18556103
Test: builds
Change-Id: I544ef267a6d7d887223186180c77d9ad0321e605
Christopher Ferris [Fri, 16 Jun 2017 16:40:01 +0000 (16:40 +0000)]
Merge "Add benchmarks for strcpy and strcmp."
Elliott Hughes [Fri, 16 Jun 2017 14:40:08 +0000 (14:40 +0000)]
Merge "libc: warn that cpu-features.h is deprecated"
Christopher Ferris [Thu, 15 Jun 2017 23:11:48 +0000 (23:11 +0000)]
Merge "Update posix_memalign testing."
Elliott Hughes [Thu, 15 Jun 2017 22:12:29 +0000 (15:12 -0700)]
Add #defines for some key enums.
Building ruby actually trips over both of these:
* if the RTLD_ constants aren't #defined, it uses its own incorrect values.
* if the REG_ constants aren't #defined, it confuses x86 with x86-64.
In all other places where we have enums in our headers, we already match
existing glibc practice.
Bug: http://b/
62531921
Test: builds
Change-Id: I5b3aab25a1a24611bdc58f2eda4104a78e9f841c
Elliott Hughes [Thu, 15 Jun 2017 21:30:06 +0000 (21:30 +0000)]
Merge "Move a <wchar.h> implementation detail into the implementation."
Christopher Ferris [Thu, 15 Jun 2017 20:30:44 +0000 (13:30 -0700)]
Update posix_memalign testing.
Move all tests into stdlib_test.cpp since that's where the definition lives
in bionic.
Add a sweep test and a various size test.
Test: Run new unit tests on glibc and angler.
Change-Id: Ief1301f402bea82ce90240500dd6a01636dbdbae
Christopher Ferris [Thu, 15 Jun 2017 20:34:54 +0000 (20:34 +0000)]
Merge "Add copy-only, seek-only, and copy-and-seek benchmarks for strcat"
Treehugger Robot [Thu, 15 Jun 2017 18:21:12 +0000 (18:21 +0000)]
Merge "MIPS64: move fstat64/fstatat64/_flush_cache syscalls to SECCOMP_WHITELIST.TXT"
Elliott Hughes [Thu, 15 Jun 2017 17:36:43 +0000 (10:36 -0700)]
Move a <wchar.h> implementation detail into the implementation.
No other C library expose these, and I couldn't find any callers.
Bug: http://b/
62531921
Test: builds
Change-Id: I4a3505bc0897286a4036c48066b98d16665b573a
Treehugger Robot [Thu, 15 Jun 2017 16:15:22 +0000 (16:15 +0000)]
Merge "Expose pthread_mutex_lock_timeout_np to the NDK."
Elliott Hughes [Thu, 15 Jun 2017 15:06:34 +0000 (15:06 +0000)]
Merge "Don't use the overloadable attribute if we're not fortified."
Nicolas Geoffray [Thu, 15 Jun 2017 09:05:31 +0000 (09:05 +0000)]
Merge "Move libc/zoneinfo/ files to system/timezone"
Miodrag Dinic [Mon, 12 Jun 2017 08:52:12 +0000 (10:52 +0200)]
MIPS64: move fstat64/fstatat64/_flush_cache syscalls to SECCOMP_WHITELIST.TXT
fstat64/fstatat64/_flush_cache were accidentally put in SYSCALLS.TXT in:
https://android-review.googlesource.com/#/c/390454/
This patch just moves them to SECCOMP_WHITELIST.TXT because we do not
want stubs accidenatally generated for the mentioned syscalls using
gensyscalls.py script.
This commit does not introduce any functional changes to mips64_policy.cpp.
Test: Run genseccomp.py -> File seccomp/mips64_policy.cpp not changed.
Test: Run gensyscalls.py -> INFO:root:no changes detected!
Change-Id: I3b527b3d9f18715c44a4e6ddc6db6e49f48f4890
Signed-off-by: Miodrag Dinic <miodrag.dinic@imgtec.com>
Treehugger Robot [Thu, 15 Jun 2017 02:40:33 +0000 (02:40 +0000)]
Merge "Add <sys/mtio.h>."
Anders Lewis [Mon, 12 Jun 2017 19:33:06 +0000 (12:33 -0700)]
Add benchmarks for strcpy and strcmp.
Test: Ran benchmarks and verified that runtimes were sensible.
Change-Id: I609e3261503a015bfd4982767fef3ce56141aebc
Elliott Hughes [Thu, 15 Jun 2017 00:16:05 +0000 (17:16 -0700)]
Add <sys/mtio.h>.
In a similar style to some of our other "not really, but enough" headers
like <sys/vt.h>.
Bug: N/A
Test: build GNU dd or BSD dd with a standalone toolchain
Change-Id: I8fbd1aac1d97e24b05e7aae8a55666300b5bf1ed
Elliott Hughes [Wed, 14 Jun 2017 23:54:32 +0000 (16:54 -0700)]
Don't use the overloadable attribute if we're not fortified.
See code comment.
Bug: N/A
Test: building bash and binutils with a standalone toolchain
Change-Id: I73b5d55716072ca1b03b1b0157d65cb1ceb22841
Anders Lewis [Mon, 12 Jun 2017 18:24:01 +0000 (11:24 -0700)]
Add copy-only, seek-only, and copy-and-seek benchmarks for strcat
Test: Ran benchmarks and verified that runtimes were sensible.
Change-Id: I6da3aaea0ba4817662534b24873993589385e6c5
Dan Albert [Mon, 12 Jun 2017 21:59:38 +0000 (14:59 -0700)]
Add sys/stat.h compatibility macros for old NDKs.
Test: make checkbuild
Bug: https://github.com/android-ndk/ndk/issues/417
Change-Id: I04fdb2f31131e87907adab9f3264b783917de542
Neil Fuller [Mon, 12 Jun 2017 15:57:29 +0000 (16:57 +0100)]
Move libc/zoneinfo/ files to system/timezone
Move libc/zoneinfo/ files to system/timezone.
Bug:
31008728
Bug:
36882778
Test: make -j30 droid / boot device
Merged-In: I1d75b0be12b41258f89614b92c1ef68aa7ebfaf9
Change-Id: I1d75b0be12b41258f89614b92c1ef68aa7ebfaf9
Jiyong Park [Mon, 15 May 2017 06:22:12 +0000 (15:22 +0900)]
make libasync_safe vendor_available:true
This, when used with BOARD_VNDK_VERSION flag, enables the
module to be built and installed twice, one for /system,
other for /vendor.
libasync_safe is used by libbacktrace which is in turn used by libs in
/vendor and thus marked as vendor_available. Therefore, libasync_safe
is also marked as vendor_available.
Details: https://android-review.googlesource.com/368372
Bug:
33241851
Test: BOARD_VNDK_VERSION=current m libasync_safe.vendor successful
Merged-In: I4b4de3b99a024d52612109cee3d66b4e5fc12dec
Change-Id: I4b4de3b99a024d52612109cee3d66b4e5fc12dec
(cherry picked from commit
ec0d6b416e6f9c7044c79fdc8a4760f23ade8eb4)
Treehugger Robot [Wed, 14 Jun 2017 00:44:31 +0000 (00:44 +0000)]
Merge "Remove `volatile` from the `__errno` declaration."
Treehugger Robot [Tue, 13 Jun 2017 23:20:38 +0000 (23:20 +0000)]
Merge "The bsd_signal declaration shouldn't be visible if API > 21."
Elliott Hughes [Tue, 13 Jun 2017 21:43:53 +0000 (14:43 -0700)]
Remove `volatile` from the `__errno` declaration.
This breaks code that declares `errno` itself for whatever crazy reason:
b.c:22:12: error: conflicting types for '__errno'
extern int errno;
^
/usr/local/google/ndkports/toolchain/bin/../sysroot/usr/include/errno.h:47:20: note: expanded from macro 'errno'
#define errno (*__errno())
^
/usr/local/google/ndkports/toolchain/bin/../sysroot/usr/include/errno.h:44:15: note: previous declaration is here
volatile int* __errno(void) __attribute_const__;
^
Bug: N/A
Test: built various bits of GNU source
Change-Id: I27c03bf3bde419a001f98f1ea6c267c847f31271
Elliott Hughes [Tue, 13 Jun 2017 21:29:15 +0000 (14:29 -0700)]
The bsd_signal declaration shouldn't be visible if API > 21.
This causes GNU make to fail to build:
main.o:main.c:(.text+0x18c): more undefined references to `bsd_signal' follow
Bug: N/A
Test: built GNU make with a hacked standalone toolchain
Change-Id: Icdfb4cf674df8abed44f6671454bed9f8d68e74b
Treehugger Robot [Tue, 13 Jun 2017 20:33:48 +0000 (20:33 +0000)]
Merge "libc: Sync qsort(3) with FreeBSD revision r318515."
Xin Li [Fri, 19 May 2017 17:13:08 +0000 (10:13 -0700)]
libc: Sync qsort(3) with FreeBSD revision r318515.
r279663: enhance to handle 32-bit aligned data on 64-bit systems
r279666: qsort(3): small style(9) cleanups.
r288030: Use ANSI C prototypes. Eliminates -Wold-style-definition
warnings.
r318514: Use size_t.
r318515: Reduce the possible recursion level to log2(N) by always
recursing on the smaller partition instead.
Bug:
38450217
Test: builds, ./tests/run-on-host.sh 64
Change-Id: Ieb622e6f54f8f6d6f62e1bdb491d3b5c8e2f9965
Christopher Ferris [Tue, 13 Jun 2017 18:05:01 +0000 (18:05 +0000)]
Merge "Split memmove benchmark into separate overlapping (src before dst and dst before src) and non-overlapping tests."
Dan Albert [Mon, 12 Jun 2017 21:17:49 +0000 (14:17 -0700)]
Expose pthread_mutex_lock_timeout_np to the NDK.
The proper API for this isn't available until L, so expose this for
API levels earlier than that.
Test: make checkbuild
Bug: https://github.com/android-ndk/ndk/issues/420
Change-Id: I382b8f557be9530f3e13aaae353b4a6e7f9301ab
Anders Lewis [Wed, 7 Jun 2017 20:00:38 +0000 (13:00 -0700)]
Split memmove benchmark into separate overlapping (src before dst and dst before src) and non-overlapping tests.
Test: Ran benchmarks and verified that runtimes were sensible.
Change-Id: Ia7fbc5596dfdc162fff2364f4ef6dafe5549b907
Josh Gao [Fri, 9 Jun 2017 06:01:24 +0000 (06:01 +0000)]
Merge "Explain why we have a test that FALLOC_FL_PUNCH_HOLE is missing."
Christopher Ferris [Fri, 2 Jun 2017 22:02:53 +0000 (22:02 +0000)]
Merge "Use libdemangle for function names."
Josh Gao [Fri, 2 Jun 2017 21:57:49 +0000 (14:57 -0700)]
Explain why we have a test that FALLOC_FL_PUNCH_HOLE is missing.
Change-Id: I7388f2e0bc419f195247a1d3e73195cb4d199d5c
Test: none
Christopher Ferris [Thu, 1 Jun 2017 21:16:32 +0000 (14:16 -0700)]
Use libdemangle for function names.
Bug:
62141808
Test: Ran unit tests, ran malloc debug with leaks and verified functions
Test: are demangled.
Change-Id: I1900632e9a55bb818b1aabc798224ff3eebc1fca
Jake Weinstein [Tue, 11 Apr 2017 05:24:22 +0000 (01:24 -0400)]
libc: warn that cpu-features.h is deprecated
Test: mm
Change-Id: I39668fc75e72004224e35ac9e7d6ffc858df2169
Treehugger Robot [Thu, 1 Jun 2017 23:30:56 +0000 (23:30 +0000)]
Merge "Fix boost build with unified headers."
Elliott Hughes [Thu, 1 Jun 2017 21:08:58 +0000 (14:08 -0700)]
Fix boost build with unified headers.
boost (1.64.0 at least) assumes that if you have POSIX_MADV_NORMAL, you have
posix_madvise. With unified headers, this isn't true. Rather than make life
harder for projects that don't use configure, just make it so. We already
applied similar workarounds for epoll_create1 and inotify_init1.
Bug: https://github.com/android-ndk/ndk/issues/395
Test: built boost (long story!)
Change-Id: I5d2d8de7b30921dde913251d35dcd249a2876f94
Treehugger Robot [Thu, 1 Jun 2017 17:44:40 +0000 (17:44 +0000)]
Merge "MIPS: 32/64-bit VDSO support"
Goran Ferenc [Tue, 30 May 2017 14:00:41 +0000 (16:00 +0200)]
MIPS: 32/64-bit VDSO support
File libc/SYSCALLS.TXT is updated to generate bionic's system call wrappers
for clock_gettime() & gettimeofday() that will be called if kernel vdso
implementations fail to execute.
The system call wrappers are generated using a python script gensyscalls.py.
Since all architectures support vdso now, there is no more need for conditional
statements regarding supported architectures in libc/bionic/vdso.cpp &
libc/private/bionic_vdso.h files.
Test: builds
Change-Id: I7213f29c179a7929851499d78a72900638ae861a
Signed-off-by: Goran Ferenc <goran.ferenc@imgtec.com>
Treehugger Robot [Thu, 1 Jun 2017 07:16:11 +0000 (07:16 +0000)]
Merge "Make dl_iterate_phdr return correct name for first entry"
Dimitry Ivanov [Wed, 31 May 2017 22:07:41 +0000 (15:07 -0700)]
Make dl_iterate_phdr return correct name for first entry
Test: bionic-unit-tests --gtest_filter=link*
Change-Id: Ib3f1e0fbc76fed9a5f27ffdd9bbf847a3e8d3665
Christopher Ferris [Wed, 31 May 2017 20:07:29 +0000 (20:07 +0000)]
Merge "Move mallopt to correct section."