Commit graph

16635 commits

Author SHA1 Message Date
Elliott Hughes
5db4b6e5de Make it harder to use a broken legacy function by accident.
This function only exists for backwards compatibility, so leave it as it was.

Bug: http://b/26944282
Change-Id: I31973d1402660933103ee2d815649ab9569e4dfc
2016-04-04 16:15:37 -07:00
Dan Willemsen
2678c90f7d Merge "Update Android.bp with recent Android.mk changes" 2016-04-04 21:14:01 +00:00
Dimitry Ivanov
04c7d3d257 Merge "Enable ifunc test for arm" 2016-04-04 20:25:21 +00:00
Dan Willemsen
be45b22a51 Update Android.bp with recent Android.mk changes
This ports Idb3d445e053c44180773f59774df19b324f6817f to Android.bp

Change-Id: Id5cdb450330792810b8eb61b3cab115ef046e55d
2016-04-04 13:20:31 -07:00
Elliott Hughes
e5f79381db Merge "Remove a workaround from stack_protector_test that's not needed in master." 2016-04-04 19:46:18 +00:00
Elliott Hughes
6b19f35f68 Merge "Move math headers in with the other headers." 2016-04-04 18:41:05 +00:00
Dimitry Ivanov
c967d89245 Enable ifunc test for arm
Bug: http://b/27930475
Change-Id: I1f9e7c5b9ffabfd77ae6ebd534938aef39ec7987
2016-04-04 11:28:41 -07:00
Dimitry Ivanov
d15837a3b2 Merge "Revert "[MIPS] Link .dex or .oat code lacking .MIPS.abiflags segment"" 2016-04-04 16:49:21 +00:00
Nick Kralevich
a30c44a3e3 Merge "tests: allow brk to fail with ENOMEM" 2016-04-03 16:20:26 +00:00
Daniel Micay
126ab12882 tests: allow brk to fail with ENOMEM
Any caller of brk needs to handle failure by falling back to mmap as
there's no guarantee that other mappings are not placed above the brk
heap. Since jemalloc starts with mmap in the first place and dlmalloc
knows how to fall back to mmap, it's already a legacy API in Android.

Forcing it to succeed rules out stronger ASLR implementations where the
brk heap might not have any room to grow. It's also valid for the brk
implementation to simply return -1 with errno set to ENOMEM in every
case and that's a good way of finding anything relying on it. It would
make sense for it to be an optional kernel feature.

The brk heap is also not guaranteed to be initially page aligned. PaX
ASLR randomizes the internal bits. It was only mentioned in a comment to
explain the design of the test though.

Bug: 24233096
Change-Id: I16e9bc8677e796c73915b830b99b0ce39c02b31d
2016-04-03 15:31:58 +00:00
Elliott Hughes
afe835d540 Move math headers in with the other headers.
Keeping them separate is a pain for the NDK, and doesn't help the platform.

Change-Id: I96b8beef307d4a956e9c0a899ad9315adc502582
2016-04-02 08:36:33 -07:00
Elliott Hughes
17fdd028da Remove a workaround from stack_protector_test that's not needed in master.
The compiler in master doesn't leave a gap between the buffer and the stack
guard canary.

Bug: http://b/27815668
Change-Id: Iae6681683881055c2719d661a2179f5305c23135
2016-04-01 21:02:25 -07:00
Elliott Hughes
2152a8ca35 Merge "Fix the stack-protector test for x86/x86-64." 2016-04-02 04:01:54 +00:00
Elliott Hughes
6057d184f5 Fix the stack-protector test for x86/x86-64.
Built for fugu this was working fine, but built for generic x86/x86-64
the compiler was (a) optimizing out all the stack writes and (b) inserting
enough padding on x86-64 for the canary to be safely out of the way.

While here, let's tighten up this test so we test that it's sufficient to
only overwrite the buffer by one byte...

(cherry-pick of 6f90c1ac59eb4e7811b7b0e408615049c935c0a9.)

Bug: http://b/27815668
Change-Id: I80a646de4b30fd5c78df20fdaa7e3eb163585caf
2016-04-01 20:08:03 -07:00
Elliott Hughes
1e8958448a Merge "Ensure only mips is using GCC to build bionic." 2016-04-01 20:30:11 +00:00
Yabin Cui
af39abdef5 Merge "Check current pid at libc initialization for 32-bit build." 2016-04-01 17:56:33 +00:00
Elliott Hughes
cf73e00dde Ensure only mips is using GCC to build bionic.
MIPS still have ld128 and 16-bit atomics issues with clang, so we can't
just remove this yet.

Bug: http://b/25291096
Change-Id: I2645ebf3af04e1a4008d70da780c04240e3d7a85
2016-04-01 10:54:27 -07:00
Elliott Hughes
538bdf9623 Merge "Tell GCC that sometimes we have to build deprecated functions." 2016-04-01 17:26:53 +00:00
Elliott Hughes
cd3abe38ef Tell GCC that sometimes we have to build deprecated functions.
We're the C library. Nothing could be more deprecated.

bionic/libc/bionic/pthread_cond.cpp:243:10: error: 'int pthread_cond_timedwait_relative_np(pthread_cond_t*, pthread_mutex_t*, const timespec*)' is deprecated (declared at bionic/libc/bionic/pthread_cond.cpp:227): use pthread_cond_timedwait instead [-Werror=deprecated-declarations]
   return pthread_cond_timedwait_relative_np(cond_interface, mutex, &ts);
          ^
bionic/libc/bionic/pthread_cond.cpp:243:71: error: 'int pthread_cond_timedwait_relative_np(pthread_cond_t*, pthread_mutex_t*, const timespec*)' is deprecated (declared at bionic/libc/bionic/pthread_cond.cpp:227): use pthread_cond_timedwait instead [-Werror=deprecated-declarations]
   return pthread_cond_timedwait_relative_np(cond_interface, mutex, &ts);
                                                                       ^

Change-Id: Idb3d445e053c44180773f59774df19b324f6817f
2016-04-01 10:25:52 -07:00
Elliott Hughes
e9daecf74b Merge "Stop defining HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE." 2016-04-01 16:43:42 +00:00
Elliott Hughes
4e764a0f98 Merge "Differentiate the MNTTYPE_* and MNTOPT_* constants." 2016-04-01 02:11:49 +00:00
Elliott Hughes
5dd13d09c1 Differentiate the MNTTYPE_* and MNTOPT_* constants.
Bug: http://b/27952303
Change-Id: I926593c16143f76b21a65af7f6e1979d0fb44cac
2016-03-31 18:20:01 -07:00
Elliott Hughes
a30e19da56 Merge "Add a few missing types and constants to headers." 2016-04-01 01:14:23 +00:00
Elliott Hughes
1f1a51aecd Add a few missing types and constants to headers.
This (and other stuff still to come) prevented xfstests from building out
of the box.

Bug: http://b/27952303
Change-Id: Id38fd37386d43fc351c56dca18785a465e3e6145
2016-03-31 17:05:30 -07:00
Yabin Cui
36733fc4c1 Check current pid at libc initialization for 32-bit build.
Although there is a test pthread.pthread_mutex_owner_tid_limit
to check pid_max, but bionic-unit-tests hangs before reaching
that test. So abort at libc initialization if not able to reach
the test when running bionic-unit-tests32. It is more friendly
for debugging.

Bug: 24016357
Change-Id: Ia70c2e36fd8a3a040d41ea5722c7b48a6134e102
2016-03-30 16:45:08 -07:00
Elliott Hughes
96583dcf95 Stop defining HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE.
Bug: http://b/27918161
Change-Id: I21d4dfa4636aa06a93b3c8a215113f66f37f0bc7
2016-03-30 10:33:54 -07:00
Josh Gao
eaf50be332 Merge "Add a checksum to jmp_buf on mips and mips64." 2016-03-30 02:27:00 +00:00
Josh Gao
a42789f9d2 Merge changes from topic 'setjmp_checksum_x86'
* changes:
  Add a checksum to jmp_buf on x86_64.
  Delete lies from x86_64 setjmp implementation.
  Add a checksum to jmp_buf on x86.
2016-03-30 00:58:30 +00:00
Josh Gao
686e5f6f69 Add a checksum to jmp_buf on x86_64.
Bug: http://b/27856501
Bug: http://b/27417786
Change-Id: I541f5a7ce4972ef56b3f69e73927ca7df362609a
2016-03-29 17:28:32 -07:00
Josh Gao
c244fcb8a3 Delete lies from x86_64 setjmp implementation.
Previously, the implementation of setjmp on x86_64 claimed that
sigprocmask would write to two longs' worth of bytes.

Bug: http://b/27856501
Change-Id: I9f32b40ac773a0cd91a976aace5bfba6e67fb0f8
2016-03-29 17:28:32 -07:00
Josh Gao
9260785393 Add a checksum to jmp_buf on x86.
Bug: http://b/27856501
Bug: http://b/27417786
Change-Id: Id5a0a81fc38e311bff678cbc7dc2219bc0074503
2016-03-29 17:28:32 -07:00
Yabin Cui
c03e8ceec2 Merge "Fix test getauxval.arm_has_AT_HWCAP2." 2016-03-29 23:44:59 +00:00
Dan Willemsen
8ac6611e7f Merge "Update Android.bp with getdomainname" 2016-03-29 23:36:41 +00:00
Yabin Cui
78f5eb0498 Fix test getauxval.arm_has_AT_HWCAP2.
Bug: 27874785
Change-Id: Ibb39087c5353a0cca7783d39498b370e478fe91c
2016-03-29 15:41:49 -07:00
Dan Willemsen
23aae1ce30 Update Android.bp with getdomainname
Change-Id: I32383162acd16430089708fdce8927be43d1bc5a
2016-03-29 15:21:38 -07:00
Dimitry Ivanov
19f5f6fcb7 Merge "linker: hide the pointer to soinfo" 2016-03-28 22:32:31 +00:00
Dimitry Ivanov
d88e1f3501 linker: hide the pointer to soinfo
Handle no longer is a pointer to soinfo of
a corresponding library. This is done to
prevent access to linker internal fields.

Bug: http://b/25593965
Change-Id: I62bff0d0e5b2dc842e6bf0babb30fcc4c000be24
2016-03-28 13:15:40 -07:00
Elliott Hughes
33a66222fa Merge "Don't bother insisting on AT_HWCAP2 for 32-bit devices." 2016-03-28 19:33:48 +00:00
Greg Hackmann
8a8e0cf549 Merge "clock_nanosleep: add CLOCK_THREAD_CPUTIME_ID special case" 2016-03-28 19:19:15 +00:00
Elliott Hughes
900a4dc5a8 Don't bother insisting on AT_HWCAP2 for 32-bit devices.
Bug: http://b/27874785
Change-Id: I9dcf345ae1221f665f267cba3ed9279435671b75
2016-03-28 11:53:12 -07:00
Greg Hackmann
d15dfb2ff5 clock_nanosleep: add CLOCK_THREAD_CPUTIME_ID special case
POSIX makes "the CPU-time clock of the calling thread" (i.e.,
CLOCK_THREAD_CPUTIME_ID) a special case which returns EINVAL instead of
ENOTSUP.

However, the clock_nanosleep syscall treats this clock just like any
other, and returns -EOPNOTSUPP to indicate an unimplemented nanosleep
handler.  So we need to handle this ourselves in userspace.

This change fixes the LTP clock_nanosleep01 testcase.

Change-Id: If3bed940d276834bcd114d8c17f96197e9384711
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2016-03-28 10:29:16 -07:00
Predrag Blagojevic
3299590dfe Add a checksum to jmp_buf on mips and mips64.
Make it easier to diagnose applications mucking with the contents of
jmp_buf by checksumming its contents.

Bug: http://b/27417786
Change-Id: I473bc2871dece23a9b9d02481945246160d671c6
2016-03-28 14:54:49 +00:00
Nick Kralevich
7c59c70200 Merge "fixup x86 setdomainname.S" 2016-03-28 00:27:05 +00:00
Nick Kralevich
dbf2e19281 fixup x86 setdomainname.S
Both be91052932 and
e2faf07d65 were submitted about
two days ago. The former changed how the syscalls stubs were
generated, but the latter was submitted using the old stub
format.

Use the new stub format for setdomainname.S

Change-Id: I578acd7053f57a275f6831dd2404ef04826c578e
2016-03-27 14:52:58 -07:00
Greg Hackmann
d132099e05 Merge "Add hasmntopt(3)" 2016-03-25 22:43:01 +00:00
Elliott Hughes
d81143df71 Merge "libc: implement kernel vdso syscalls for i386" 2016-03-25 22:20:42 +00:00
Greg Hackmann
76640d5555 Merge "Add {get,set}domainname(2)" 2016-03-25 22:02:07 +00:00
Greg Hackmann
3679ade533 Add hasmntopt(3)
bionic has the Linux-specific mntent.h but is missing hasmntopt().

Change-Id: I0ab7b83626c969704add4e64b37a6fc715d4a723
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2016-03-25 14:16:58 -07:00
Greg Hackmann
e2faf07d65 Add {get,set}domainname(2)
{get,set}domainname aren't in POSIX but are widely-implemented
extensions.

The Linux kernel provides a setdomainname syscall but not a symmetric
getdomainname syscall, since it expects userspace to get the domain name
from uname(2).

Change-Id: I96726c242f4bb646c130b361688328b0b97269a0
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2016-03-25 14:16:58 -07:00
Mingwei Shi
be91052932 libc: implement kernel vdso syscalls for i386
This patch uses __kernel_vsyscall instead of "int 0x80"
as the syscall entry point. AT_SYSINFO points to
an adapter to mask the arch specific difference and gives a
performance boost on i386 architecture.

Change-ID: Ib340c604d02c6c25714a95793737e3cfdc3fc5d7
Signed-off-by: Mingwei Shi <mingwei.shi@intel.com>
2016-03-25 14:10:05 -07:00