OSDN Git Service
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
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."
Christopher Ferris [Wed, 31 May 2017 18:15:09 +0000 (18:15 +0000)]
Merge "Revert "Make mallopt available in the future.""
Christopher Ferris [Wed, 31 May 2017 18:00:18 +0000 (11:00 -0700)]
Move mallopt to correct section.
Bug:
62202823
Test: Built and built unit tests.
Change-Id: Icefc152eb756fd60ce8f51d694f22923a41a9cd1
Christopher Ferris [Wed, 31 May 2017 17:40:31 +0000 (17:40 +0000)]
Merge "Add mallopt to canonical list of exports."
Christopher Ferris [Wed, 31 May 2017 00:35:28 +0000 (17:35 -0700)]
Add mallopt to canonical list of exports.
Bug:
62202823
Test: Ran script and verified that none of the other map files are modified.
Change-Id: Ib890ce77c60b877434fbb65a5add8f6c4603d3d0
Christopher Ferris [Wed, 31 May 2017 00:14:15 +0000 (00:14 +0000)]
Revert "Make mallopt available in the future."
This reverts commit
083923d96acb7cfe4e1a1c22100047fa87feb347.
Reason for revert: No longer correct, this will be in API 26.
Change-Id: Iaf82d797405135fcd30455fd750b23fc57e9623a
Elliott Hughes [Fri, 26 May 2017 18:04:26 +0000 (18:04 +0000)]
Merge "Enable exporting the non-uapi scsi headers."
Christopher Ferris [Fri, 26 May 2017 16:57:58 +0000 (16:57 +0000)]
Merge "Add offset to backtrace_string printing."
Elliott Hughes [Fri, 26 May 2017 00:13:32 +0000 (17:13 -0700)]
Enable exporting the non-uapi scsi headers.
Callers are supposed to #include <scsi/sg.h> but if we tell soong to add
bionic/libc/kernel/android/ to the include path, the uapi headers in there
would be (unintentionally) accessible as either <linux/name.h> or
<uapi/linux/name.h>.
Bug: N/A (hit while upgrading strace to 4.17)
Test: builds
Change-Id: I8d47dd51da688c38f747a255d401dfb2c209c805
Christopher Ferris [Fri, 26 May 2017 01:26:37 +0000 (18:26 -0700)]
Add offset to backtrace_string printing.
The libmemunreachable code uses backtrace_string to print out the backtrace
information. However, when the offset of the map that a frame is in is
non-zero, no information is printed. This means that when a frame comes from
a shared library loaded from an apk, it's impossible to tell which
shared library the frame is really coming from.
Add the offset display when it's non-zero. This means this can now be fed
to development/scripts/stack to decode the frame.
Bug:
37276041
Test: Ran dumpsys meminfo --unreachable on an app that leaks from a
Test: shared library and verified the offset output is present.
Change-Id: I61d34ae3f617622d354cc099eff520a64782b6e2
Treehugger Robot [Fri, 26 May 2017 01:30:01 +0000 (01:30 +0000)]
Merge "Relax flaky _SC_AVPHYS_PAGES check in sys_sysinfo_test"
Treehugger Robot [Fri, 26 May 2017 01:01:54 +0000 (01:01 +0000)]
Merge "Expand whitelist"
Christopher Ferris [Fri, 26 May 2017 00:29:59 +0000 (00:29 +0000)]
Merge "Update malloc debug documentation."
Christopher Ferris [Thu, 25 May 2017 02:04:33 +0000 (19:04 -0700)]
Update malloc debug documentation.
Test: NA
Change-Id: I8ab73bfc28c7a673efb5b0cec6067989153f092a
Paul Lawrence [Thu, 25 May 2017 21:15:23 +0000 (14:15 -0700)]
Expand whitelist
Bug:
37769298
Test: Boots. Cannot test app behavior without account
Change-Id: Iebb7616f100368bf2e702ec51f637df1f3727885
Treehugger Robot [Thu, 25 May 2017 22:50:05 +0000 (22:50 +0000)]
Merge "Remove the repetitive warnings from the uapi headers."
Dimitry Ivanov [Thu, 25 May 2017 21:02:03 +0000 (14:02 -0700)]
Relax flaky _SC_AVPHYS_PAGES check in sys_sysinfo_test
The number of available physical pages is not constant and can
potentially change between calls to get_avphys_pages and
sysconf(_SC_AVPHYS_PAGES) calls.
Relax the assert to check that sconf(_SC_AVPHYS_PAGES) <= phys_pages.
Bug: http://b/
31502852
Test: build and run bionic-unit-tests
Change-Id: Ibf8873d2151d93239391d2638dfbf055b70cde3a
Elliott Hughes [Thu, 25 May 2017 20:48:01 +0000 (13:48 -0700)]
Remove the repetitive warnings from the uapi headers.
Having
WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS
every four lines made the headers harder to read, made the diffs much worse
each time we upgraded, and wasn't really providing any benefit. Before the
next uapi update, let's just stop doing this.
Bug: N/A
Test: builds, manually inspected files look right
Change-Id: Id7088cf750894c9d24950f3d53587fe3156c4f7d
Treehugger Robot [Thu, 25 May 2017 01:43:05 +0000 (01:43 +0000)]
Merge "Stop including <sys/sysmacros.h> from <sys/types.h>."
Christopher Ferris [Thu, 25 May 2017 01:26:17 +0000 (01:26 +0000)]
Merge "Fix assembler warnings."
Christopher Ferris [Wed, 24 May 2017 23:00:37 +0000 (16:00 -0700)]
Fix assembler warnings.
There are a few instructions deprecated on armv8 that result in lots
of warnings. Add an arch directive so that these warnings go away.
This doesn't cause any problems because the instructions still
execute properly.
Bug:
38319728
Test: Built all of these assembler files and verified the warning are gone.
Change-Id: If063defdd16f290c01975233c8d257d1b2005e76
Elliott Hughes [Wed, 24 May 2017 15:05:59 +0000 (15:05 +0000)]
Merge "Remove obsolete __stack_chk_fail_local."
Treehugger Robot [Wed, 24 May 2017 07:13:34 +0000 (07:13 +0000)]
Merge "Fix _POSIX_THREAD_PROCESS_SHARED."
Elliott Hughes [Tue, 23 May 2017 23:43:30 +0000 (16:43 -0700)]
Remove obsolete __stack_chk_fail_local.
Clang doesn't use this.
Bug: N/A
Test: x86 emulator builds and boots
Change-Id: I2865c0d568a644f61f34bdea539daff5224896bc
Elliott Hughes [Tue, 23 May 2017 23:39:59 +0000 (23:39 +0000)]
Merge "Switch to inline assembler in crtbegin."
Elliott Hughes [Tue, 23 May 2017 22:53:36 +0000 (15:53 -0700)]
Stop including <sys/sysmacros.h> from <sys/types.h>.
<sys/types.h> unconditionally includes <sys/sysmacros.h>.
<sys/sysmacros.h> defines major, minor, and makedev. In the deprecated NDK
headers, these were inline functions. In the unified headers, they are
function-like macros.
The inline functions would only collide with another function called major,
minor, or makedev but the macros will replace anything with a function-like
form such as definitions of class methods called major, minor, or makedev.
This causes code which has such definitions to fail to compile when moving
from the deprecated headers to the unified headers.
Resolve this by removing the transitive dependency. Folks who want
<sys/sysmacros.h> can ask for it explicitly (it's been in both bionic and
glibc for years, though I don't think macOS has it [as usual]).
Bug: https://github.com/android-ndk/ndk/issues/398
Test: builds
Change-Id: If2921c7b5d979c3066f199f22c64d4d2f7bf6632
Elliott Hughes [Tue, 23 May 2017 18:03:58 +0000 (11:03 -0700)]
Switch to inline assembler in crtbegin.
Using __builtin_frame_address was clever, but didn't work for arm64 (for
reasons which were never investigated) and the ChromeOS folks claim it
causes trouble for x86 with ARC++ (though without a reproduceable test case).
Naked functions turn out to be quite unevenly supported: some architectures
do the right thing, others don't; some architectures warn, others don't (and
the warnings don't always match the platforms that _actually_ have problems).
Inline assembler also removes the guessing games: everyone knows what the
couple of instructions _ought_ to be, and now we don't have to reason about
what the compiler will actually do (yet still keep the majority of the code
in C).
Bug: N/A
Test: builds, boots
Change-Id: I14207ef50ca46b6eca273c3cb7509c311146a3ca
Treehugger Robot [Tue, 23 May 2017 13:17:41 +0000 (13:17 +0000)]
Merge "Make use of the DNS query hook in the netcontext"
Dan Willemsen [Tue, 23 May 2017 05:50:37 +0000 (05:50 +0000)]
Merge "Move libdlext_... to NATIVE_TESTS instead of ETC"
Treehugger Robot [Tue, 23 May 2017 00:48:00 +0000 (00:48 +0000)]
Merge changes Iefdc1662,I8ee9ce62
* changes:
Don't define IN_CLOEXEC/IN_NONBLOCK for pre-L.
Undef EPOLL_CLOEXEC for pre-L.
Dan Willemsen [Tue, 23 May 2017 00:36:16 +0000 (17:36 -0700)]
Move libdlext_... to NATIVE_TESTS instead of ETC
ETC did end up causing problems, since it's not per-arch. But
SHARED_LIBRARIES isn't correct either, since the build system tries to
read shared libraries as ELF files (to create the toc files).
NATIVE_TESTS is slightly better -- they are not libraries, so we don't
attempt to generate toc files, but they are considered per-arch.
Bug:
38463793
Test: Run CtsBionicTestCases
Change-Id: I01b4b093359e0c39eb2f8639d5c5dde9e304ed20
Ben Schwartz [Mon, 24 Apr 2017 21:57:11 +0000 (17:57 -0400)]
Make use of the DNS query hook in the netcontext
This will allow netd to run queries over TLS:
https://android-review.googlesource.com/#/c/391513/
https://android-review.googlesource.com/#/c/380593/
Bug:
34953048
Test: Device tests pass. No issues during manual testing.
Change-Id: I8d613322307fc40cdba59b82599eda753697278f
Treehugger Robot [Mon, 22 May 2017 22:29:08 +0000 (22:29 +0000)]
Merge "Add a netcontext variant of gethostbyname"
Dan Albert [Mon, 22 May 2017 19:58:18 +0000 (12:58 -0700)]
Don't define IN_CLOEXEC/IN_NONBLOCK for pre-L.
Some third-party code uses the existence of IN_CLOEXEC/IN_NONBLOCK to
detect the availability of inotify_init1. This is not correct, since
`syscall(__NR_inotify_init1, IN_CLOEXEC)` is still valid even if the C
library doesn't have that function, but for the time being we don't
want to harm adoption to the unified headers. We'll avoid defining
IN_CLOEXEC and IN_NONBLOCK if we don't have inotify_init1 for the time
being, and maybe revisit this later.
Test: make checkbuild
Bug: https://github.com/android-ndk/ndk/issues/394
Change-Id: Iefdc1662b21045de886c7ad1cbeba6241163d943
Dan Albert [Mon, 22 May 2017 19:52:00 +0000 (12:52 -0700)]
Undef EPOLL_CLOEXEC for pre-L.
Some third-party code uses the existence of EPOLL_CLOEXEC to detect
the availability of epoll_create1. This is not correct, since having
up-to-date UAPI headers says nothing about the C library, but for the
time being we don't want to harm adoption to the unified headers.
We'll undef EPOLL_CLOEXEC if we don't have epoll_create1 for the time
being, and maybe revisit this later.
Test: make checkbuild
Bug: https://github.com/android-ndk/ndk/issues/302
Bug: https://github.com/android-ndk/ndk/issues/394
Change-Id: I8ee9ce62768fb174070ec51d114f477389befc4a
Ben Schwartz [Mon, 22 May 2017 14:19:25 +0000 (10:19 -0400)]
Add a netcontext variant of gethostbyname
Bug:
34953048
Test: Integration tests pass
Change-Id: I670427d67fde09d8e76ea6a920c90a1969230c4f
Treehugger Robot [Mon, 22 May 2017 10:06:29 +0000 (10:06 +0000)]
Merge "Add a netcontext variant of gethostbyaddr"
Treehugger Robot [Mon, 22 May 2017 02:51:33 +0000 (02:51 +0000)]
Merge "Add the DNS query hook to net context"
Treehugger Robot [Sat, 20 May 2017 22:08:10 +0000 (22:08 +0000)]
Merge "Va_end should be used with va_start"
Mikhail Lappo [Sat, 25 Mar 2017 18:02:55 +0000 (19:02 +0100)]
Va_end should be used with va_start
va_start is used and va_end should
be invoked accordingly
Change-Id: I2b0a2af762e22082a351a4d8139aaa48bc791e88
Elliott Hughes [Sat, 20 May 2017 19:47:14 +0000 (12:47 -0700)]
Fix _POSIX_THREAD_PROCESS_SHARED.
We've had pthread_*_setpshared for long enough that there are no
__INTRODUCED_IN guards.
Found because fio's configure script was confused by this.
Bug: N/A
Test: ran tests
Change-Id: I07b4d937741e4dcd7e615f2371b17c827341917a
Christopher Ferris [Fri, 19 May 2017 23:20:25 +0000 (23:20 +0000)]
Merge "Fix missing function export."