Commit graph

21288 commits

Author SHA1 Message Date
Goran Ferenc
996f6decfa 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>
2017-06-01 08:50:57 -07:00
Christopher Ferris
15eaaddef9 Merge "Move mallopt to correct section." 2017-05-31 20:07:31 +00:00
Christopher Ferris
8f7a987cd0 Merge "Revert "Make mallopt available in the future."" 2017-05-31 18:15:11 +00:00
Christopher Ferris
488eb8b7d2 Move mallopt to correct section.
Bug: 62202823

Test: Built and built unit tests.
Change-Id: Icefc152eb756fd60ce8f51d694f22923a41a9cd1
2017-05-31 11:00:18 -07:00
Christopher Ferris
8f6f70db45 Merge "Add mallopt to canonical list of exports." 2017-05-31 17:40:33 +00:00
Christopher Ferris
ca84fe3be7 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
2017-05-30 17:38:52 -07:00
Christopher Ferris
7c08c7910d Revert "Make mallopt available in the future."
This reverts commit 083923d96a.

Reason for revert: No longer correct, this will be in API 26.

Change-Id: Iaf82d797405135fcd30455fd750b23fc57e9623a
2017-05-31 00:15:00 +00:00
Elliott Hughes
6be65c135b Merge "Enable exporting the non-uapi scsi headers." 2017-05-26 18:04:28 +00:00
Christopher Ferris
f6a5afcb62 Merge "Add offset to backtrace_string printing." 2017-05-26 16:58:00 +00:00
Elliott Hughes
5059939c87 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
2017-05-25 19:17:55 -07:00
Christopher Ferris
c0352bbd5f 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
2017-05-25 18:38:45 -07:00
Treehugger Robot
232681160a Merge "Relax flaky _SC_AVPHYS_PAGES check in sys_sysinfo_test" 2017-05-26 01:30:03 +00:00
Treehugger Robot
eca29cb508 Merge "Expand whitelist" 2017-05-26 01:01:56 +00:00
Christopher Ferris
a559cff654 Merge "Update malloc debug documentation." 2017-05-26 00:30:01 +00:00
Christopher Ferris
4c65669ab7 Update malloc debug documentation.
Test: NA
Change-Id: I8ab73bfc28c7a673efb5b0cec6067989153f092a
2017-05-25 17:23:08 -07:00
Paul Lawrence
966cf62a74 Expand whitelist
Bug: 37769298
Test: Boots. Cannot test app behavior without account
Change-Id: Iebb7616f100368bf2e702ec51f637df1f3727885
2017-05-25 16:22:04 -07:00
Treehugger Robot
025fb33c9d Merge "Remove the repetitive warnings from the uapi headers." 2017-05-25 22:50:06 +00:00
Dimitry Ivanov
f008a11ef2 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
2017-05-25 14:27:37 -07:00
Elliott Hughes
96c1db7b9d 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
2017-05-25 13:48:01 -07:00
Treehugger Robot
f58179cda5 Merge "Stop including <sys/sysmacros.h> from <sys/types.h>." 2017-05-25 01:43:07 +00:00
Christopher Ferris
1143a62977 Merge "Fix assembler warnings." 2017-05-25 01:26:19 +00:00
Christopher Ferris
866e7b6906 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
2017-05-24 16:06:11 -07:00
Elliott Hughes
6c01208e90 Merge "Remove obsolete __stack_chk_fail_local." 2017-05-24 15:05:59 +00:00
Treehugger Robot
1f66c6d078 Merge "Fix _POSIX_THREAD_PROCESS_SHARED." 2017-05-24 07:13:36 +00:00
Elliott Hughes
4af220cfef Remove obsolete __stack_chk_fail_local.
Clang doesn't use this.

Bug: N/A
Test: x86 emulator builds and boots
Change-Id: I2865c0d568a644f61f34bdea539daff5224896bc
2017-05-23 16:43:30 -07:00
Elliott Hughes
81a5b6f558 Merge "Switch to inline assembler in crtbegin." 2017-05-23 23:40:00 +00:00
Elliott Hughes
8543f923fe 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
2017-05-23 15:53:36 -07:00
Elliott Hughes
94072fbb4e 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
2017-05-23 14:47:16 -07:00
Treehugger Robot
dc18a4be63 Merge "Make use of the DNS query hook in the netcontext" 2017-05-23 13:17:43 +00:00
Dan Willemsen
c777139e02 Merge "Move libdlext_... to NATIVE_TESTS instead of ETC" 2017-05-23 05:50:39 +00:00
Treehugger Robot
7bbe7cb619 Merge changes Iefdc1662,I8ee9ce62
* changes:
  Don't define IN_CLOEXEC/IN_NONBLOCK for pre-L.
  Undef EPOLL_CLOEXEC for pre-L.
2017-05-23 00:48:01 +00:00
Dan Willemsen
6718e0309e 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
2017-05-22 17:36:16 -07:00
Ben Schwartz
90a83beb4d 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
2017-05-22 18:37:25 -04:00
Treehugger Robot
6e7f14d9f7 Merge "Add a netcontext variant of gethostbyname" 2017-05-22 22:29:10 +00:00
Dan Albert
5a215d7817 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
2017-05-22 12:58:18 -07:00
Dan Albert
cdfface662 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
2017-05-22 12:52:00 -07:00
Ben Schwartz
dd878fe129 Add a netcontext variant of gethostbyname
Bug: 34953048
Test: Integration tests pass
Change-Id: I670427d67fde09d8e76ea6a920c90a1969230c4f
2017-05-22 10:19:25 -04:00
Treehugger Robot
4767bc4a6c Merge "Add a netcontext variant of gethostbyaddr" 2017-05-22 10:06:31 +00:00
Treehugger Robot
761bb2be4d Merge "Add the DNS query hook to net context" 2017-05-22 02:51:36 +00:00
Treehugger Robot
137a2cf967 Merge "Va_end should be used with va_start" 2017-05-20 22:08:12 +00:00
Mikhail Lappo
13ec1cf3da Va_end should be used with va_start
va_start is used and va_end should
be invoked accordingly

Change-Id: I2b0a2af762e22082a351a4d8139aaa48bc791e88
2017-05-20 13:20:41 -07:00
Elliott Hughes
468c8086e6 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
2017-05-20 13:11:14 -07:00
Christopher Ferris
8433d40f56 Merge "Fix missing function export." 2017-05-19 23:20:27 +00:00
Christopher Ferris
2b0f2a4855 Fix missing function export.
Bug: 36401135

Test: Actually enable debug malloc and verify it loads properly.
Test: Ran unit tests.
Change-Id: I9df1699b06bb14c5df2c3cab35dc2eb0819033f1
2017-05-19 13:47:16 -07:00
Elliott Hughes
8fbd15a6d0 Merge "Make union semun usable." 2017-05-19 18:24:09 +00:00
Elliott Hughes
497ad30d7d Make union semun usable.
This is a bit bogus because it's been removed from glibc (though not
thoroughly) and is never useful on Android (because the system calls
in question are compiled out of Android kernels, and SELinux would
disallow them even if you weren't running an Android kernel). This
also means that on glibc you need to include <linux/sem.h> for this
and on bionic you need <sys/sem.h> (and for either if you #include
the other file, you won't get this union).

Bug: https://github.com/android-ndk/ndk/issues/400
Test: added new test
Change-Id: I47f721da77515531f616d6ad8479bfbc9b60ee47
2017-05-18 15:05:26 -07:00
Ben Schwartz
50178056f7 Add a netcontext variant of gethostbyaddr
Bug: 34953048
Test: Integration tests pass
Change-Id: Id04830345be56cd7a077981c6e2acfb5568e7a88
2017-05-18 14:32:21 -04:00
Ben Schwartz
f0305dcee9 Add the DNS query hook to net context
This change
 - adds a query hook to android_net_context
 - exposes relevant definitions to netd
 - corrects a bug in query hooks' interaction with the cache

This change does not introduce any code to read the query hook
from the net context or make use of it.

Bug: 34953048
Test: Netd test suite passes
Change-Id: Ie091980e22ce9da07a3c4d387b371e544379d762
2017-05-18 12:03:11 -04:00
Treehugger Robot
f06535035e Merge "Fix Mac build." 2017-05-18 02:23:37 +00:00
Christopher Ferris
61073263d4 Merge "Make mallopt available in the future." 2017-05-18 02:23:07 +00:00