OSDN Git Service

android-x86/bionic.git
8 years agoMerge "Move math headers in with the other headers."
Elliott Hughes [Mon, 4 Apr 2016 18:41:05 +0000 (18:41 +0000)]
Merge "Move math headers in with the other headers."

8 years agoMerge "Revert "[MIPS] Link .dex or .oat code lacking .MIPS.abiflags segment""
Dimitry Ivanov [Mon, 4 Apr 2016 16:49:21 +0000 (16:49 +0000)]
Merge "Revert "[MIPS] Link .dex or .oat code lacking .MIPS.abiflags segment""

8 years agoMerge "tests: allow brk to fail with ENOMEM"
Nick Kralevich [Sun, 3 Apr 2016 16:20:25 +0000 (16:20 +0000)]
Merge "tests: allow brk to fail with ENOMEM"

8 years agotests: allow brk to fail with ENOMEM
Daniel Micay [Thu, 31 Dec 2015 13:04:53 +0000 (08:04 -0500)]
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

8 years agoMove math headers in with the other headers.
Elliott Hughes [Sat, 2 Apr 2016 15:36:33 +0000 (08:36 -0700)]
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

8 years agoMerge "Fix the stack-protector test for x86/x86-64."
Elliott Hughes [Sat, 2 Apr 2016 04:01:54 +0000 (04:01 +0000)]
Merge "Fix the stack-protector test for x86/x86-64."

8 years agoFix the stack-protector test for x86/x86-64.
Elliott Hughes [Fri, 1 Apr 2016 21:51:10 +0000 (14:51 -0700)]
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

8 years agoMerge "Ensure only mips is using GCC to build bionic."
Elliott Hughes [Fri, 1 Apr 2016 20:30:11 +0000 (20:30 +0000)]
Merge "Ensure only mips is using GCC to build bionic."

8 years agoMerge "Check current pid at libc initialization for 32-bit build."
Yabin Cui [Fri, 1 Apr 2016 17:56:33 +0000 (17:56 +0000)]
Merge "Check current pid at libc initialization for 32-bit build."

8 years agoEnsure only mips is using GCC to build bionic.
Elliott Hughes [Fri, 1 Apr 2016 17:54:27 +0000 (10:54 -0700)]
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

8 years agoMerge "Tell GCC that sometimes we have to build deprecated functions."
Elliott Hughes [Fri, 1 Apr 2016 17:26:53 +0000 (17:26 +0000)]
Merge "Tell GCC that sometimes we have to build deprecated functions."

8 years agoTell GCC that sometimes we have to build deprecated functions.
Elliott Hughes [Fri, 1 Apr 2016 17:25:19 +0000 (10:25 -0700)]
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

8 years agoMerge "Stop defining HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE."
Elliott Hughes [Fri, 1 Apr 2016 16:43:42 +0000 (16:43 +0000)]
Merge "Stop defining HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE."

8 years agoMerge "Differentiate the MNTTYPE_* and MNTOPT_* constants."
Elliott Hughes [Fri, 1 Apr 2016 02:11:49 +0000 (02:11 +0000)]
Merge "Differentiate the MNTTYPE_* and MNTOPT_* constants."

8 years agoDifferentiate the MNTTYPE_* and MNTOPT_* constants.
Elliott Hughes [Fri, 1 Apr 2016 01:20:01 +0000 (18:20 -0700)]
Differentiate the MNTTYPE_* and MNTOPT_* constants.

Bug: http://b/27952303
Change-Id: I926593c16143f76b21a65af7f6e1979d0fb44cac

8 years agoMerge "Add a few missing types and constants to headers."
Elliott Hughes [Fri, 1 Apr 2016 01:14:23 +0000 (01:14 +0000)]
Merge "Add a few missing types and constants to headers."

8 years agoAdd a few missing types and constants to headers.
Elliott Hughes [Fri, 1 Apr 2016 00:05:30 +0000 (17:05 -0700)]
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

8 years agoCheck current pid at libc initialization for 32-bit build.
Yabin Cui [Tue, 29 Mar 2016 19:25:12 +0000 (12:25 -0700)]
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

8 years agoStop defining HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE.
Elliott Hughes [Wed, 30 Mar 2016 17:33:54 +0000 (10:33 -0700)]
Stop defining HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE.

Bug: http://b/27918161
Change-Id: I21d4dfa4636aa06a93b3c8a215113f66f37f0bc7

8 years agoMerge "Add a checksum to jmp_buf on mips and mips64."
Josh Gao [Wed, 30 Mar 2016 02:27:00 +0000 (02:27 +0000)]
Merge "Add a checksum to jmp_buf on mips and mips64."

8 years agoMerge changes from topic 'setjmp_checksum_x86'
Josh Gao [Wed, 30 Mar 2016 00:58:30 +0000 (00:58 +0000)]
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.

8 years agoAdd a checksum to jmp_buf on x86_64.
Josh Gao [Tue, 29 Mar 2016 21:53:26 +0000 (14:53 -0700)]
Add a checksum to jmp_buf on x86_64.

Bug: http://b/27856501
Bug: http://b/27417786
Change-Id: I541f5a7ce4972ef56b3f69e73927ca7df362609a

8 years agoDelete lies from x86_64 setjmp implementation.
Josh Gao [Tue, 29 Mar 2016 21:34:03 +0000 (14:34 -0700)]
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

8 years agoAdd a checksum to jmp_buf on x86.
Josh Gao [Tue, 29 Mar 2016 21:03:09 +0000 (14:03 -0700)]
Add a checksum to jmp_buf on x86.

Bug: http://b/27856501
Bug: http://b/27417786
Change-Id: Id5a0a81fc38e311bff678cbc7dc2219bc0074503

8 years agoMerge "Fix test getauxval.arm_has_AT_HWCAP2."
Yabin Cui [Tue, 29 Mar 2016 23:44:59 +0000 (23:44 +0000)]
Merge "Fix test getauxval.arm_has_AT_HWCAP2."

8 years agoMerge "Update Android.bp with getdomainname"
Dan Willemsen [Tue, 29 Mar 2016 23:36:41 +0000 (23:36 +0000)]
Merge "Update Android.bp with getdomainname"

8 years agoFix test getauxval.arm_has_AT_HWCAP2.
Yabin Cui [Tue, 29 Mar 2016 22:41:49 +0000 (15:41 -0700)]
Fix test getauxval.arm_has_AT_HWCAP2.

Bug: 27874785
Change-Id: Ibb39087c5353a0cca7783d39498b370e478fe91c

8 years agoUpdate Android.bp with getdomainname
Dan Willemsen [Tue, 29 Mar 2016 22:21:38 +0000 (15:21 -0700)]
Update Android.bp with getdomainname

Change-Id: I32383162acd16430089708fdce8927be43d1bc5a

8 years agoMerge "linker: hide the pointer to soinfo"
Dimitry Ivanov [Mon, 28 Mar 2016 22:32:31 +0000 (22:32 +0000)]
Merge "linker: hide the pointer to soinfo"

8 years agolinker: hide the pointer to soinfo
Dimitry Ivanov [Thu, 24 Mar 2016 22:30:30 +0000 (15:30 -0700)]
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

8 years agoMerge "Don't bother insisting on AT_HWCAP2 for 32-bit devices."
Elliott Hughes [Mon, 28 Mar 2016 19:33:48 +0000 (19:33 +0000)]
Merge "Don't bother insisting on AT_HWCAP2 for 32-bit devices."

8 years agoMerge "clock_nanosleep: add CLOCK_THREAD_CPUTIME_ID special case"
Greg Hackmann [Mon, 28 Mar 2016 19:19:15 +0000 (19:19 +0000)]
Merge "clock_nanosleep: add CLOCK_THREAD_CPUTIME_ID special case"

8 years agoDon't bother insisting on AT_HWCAP2 for 32-bit devices.
Elliott Hughes [Mon, 28 Mar 2016 18:53:12 +0000 (11:53 -0700)]
Don't bother insisting on AT_HWCAP2 for 32-bit devices.

Bug: http://b/27874785
Change-Id: I9dcf345ae1221f665f267cba3ed9279435671b75

8 years agoclock_nanosleep: add CLOCK_THREAD_CPUTIME_ID special case
Greg Hackmann [Sat, 26 Mar 2016 18:37:55 +0000 (11:37 -0700)]
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>
8 years agoAdd a checksum to jmp_buf on mips and mips64.
Predrag Blagojevic [Wed, 16 Mar 2016 14:49:12 +0000 (15:49 +0100)]
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

8 years agoMerge "fixup x86 setdomainname.S"
Nick Kralevich [Mon, 28 Mar 2016 00:27:05 +0000 (00:27 +0000)]
Merge "fixup x86 setdomainname.S"

8 years agofixup x86 setdomainname.S
Nick Kralevich [Sun, 27 Mar 2016 21:52:58 +0000 (14:52 -0700)]
fixup x86 setdomainname.S

Both be910529322b461148debefd50b9e0d67ae84f8e and
e2faf07d659b1c824002e50b9cdfa9caae62a31b 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

8 years agoMerge "Add hasmntopt(3)"
Greg Hackmann [Fri, 25 Mar 2016 22:43:00 +0000 (22:43 +0000)]
Merge "Add hasmntopt(3)"

8 years agoMerge "libc: implement kernel vdso syscalls for i386"
Elliott Hughes [Fri, 25 Mar 2016 22:20:42 +0000 (22:20 +0000)]
Merge "libc: implement kernel vdso syscalls for i386"

8 years agoMerge "Add {get,set}domainname(2)"
Greg Hackmann [Fri, 25 Mar 2016 22:02:06 +0000 (22:02 +0000)]
Merge "Add {get,set}domainname(2)"

8 years agoAdd hasmntopt(3)
Greg Hackmann [Fri, 4 Mar 2016 18:07:35 +0000 (10:07 -0800)]
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>
8 years agoAdd {get,set}domainname(2)
Greg Hackmann [Thu, 3 Mar 2016 16:37:53 +0000 (08:37 -0800)]
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>
8 years agolibc: implement kernel vdso syscalls for i386
Mingwei Shi [Thu, 12 Nov 2015 07:02:14 +0000 (07:02 +0000)]
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>
8 years agoMerge "epoll_create: reject size <= 0"
Greg Hackmann [Fri, 25 Mar 2016 19:35:01 +0000 (19:35 +0000)]
Merge "epoll_create: reject size <= 0"

8 years agoMerge "clone: check for NULL child stack"
Greg Hackmann [Fri, 25 Mar 2016 19:34:44 +0000 (19:34 +0000)]
Merge "clone: check for NULL child stack"

8 years agoMerge "Fix x86 __memset_chk."
Elliott Hughes [Fri, 25 Mar 2016 18:02:42 +0000 (18:02 +0000)]
Merge "Fix x86 __memset_chk."

8 years agoMerge "Fix the AT_HWCAP2 test."
Elliott Hughes [Fri, 25 Mar 2016 17:31:54 +0000 (17:31 +0000)]
Merge "Fix the AT_HWCAP2 test."

8 years agoFix the AT_HWCAP2 test.
Elliott Hughes [Fri, 25 Mar 2016 15:29:05 +0000 (08:29 -0700)]
Fix the AT_HWCAP2 test.

"I have none of these capabilities" is a legitimate response, and
distinct from "I don't know what my capabilities are". It's the latter
I meant to test for.

Bug: http://b/27810985
Change-Id: Id165423e62390051cbf23fdda54f28d94566cbe7

8 years agoFix x86 __memset_chk.
Elliott Hughes [Fri, 25 Mar 2016 05:34:47 +0000 (22:34 -0700)]
Fix x86 __memset_chk.

The stack offsets assumed we'd pushed %ebx. Unlike x86-64 we can't fall
through, but we can avoid repeating work we've already done.

Change-Id: I7e5f9be50983ed6178dd0c0534042da7ea30ad0c

8 years agoepoll_create: reject size <= 0
Greg Hackmann [Thu, 24 Mar 2016 20:41:17 +0000 (13:41 -0700)]
epoll_create: reject size <= 0

Even though the size parameter to epoll_create(2) is (otherwise) unused,
passing in size <= 0 is explicitly documented as an error.

This change fixes the LTP epoll01 testcase.

Change-Id: I044a38be823c2fa956b57e77cc66571dfae8a4bb
Signed-off-by: Greg Hackmann <ghackmann@google.com>
8 years agoclone: check for NULL child stack
Greg Hackmann [Thu, 24 Mar 2016 00:15:02 +0000 (17:15 -0700)]
clone: check for NULL child stack

The clone syscall accepts NULL child stacks, interpreting this to mean
the child gets a copy of the parent's stack with copy-on-write
semantics.  However clone(2) is explicitly documented to treat this an
an error.

"Fortunately" every architecture's __bionic_clone implementation pushes
something onto the child stack before making the clone syscall.  So we
know fixing this won't break legacy apps, because any app that tried
using a NULL child stack would have died with SIGSEGV.

This change fixes the LTP clone04 testcase.

Change-Id: I663b34f34bc8dad2aa405c46e4eed4418cccca0d
Signed-off-by: Greg Hackmann <ghackmann@google.com>
8 years agoMerge "Remove the __USE_GNU guard from pthread_setname_np again."
Elliott Hughes [Thu, 24 Mar 2016 03:28:30 +0000 (03:28 +0000)]
Merge "Remove the __USE_GNU guard from pthread_setname_np again."

8 years agoRemove the __USE_GNU guard from pthread_setname_np again.
Elliott Hughes [Thu, 24 Mar 2016 03:26:35 +0000 (20:26 -0700)]
Remove the __USE_GNU guard from pthread_setname_np again.

Caused build breakage, but not spotted by TreeHugger:

  external/libnfc-nxp/Linux_x86/phDal4Nfc.c:737:5: error: implicit declaration of function 'pthread_setname_np' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    pthread_setname_np(pthread_self(), "reader");
    ^

Nice file name.

Change-Id: I102e55718babf4e4f2f2c64066c6a83ed3ac86d3

8 years agoMerge "Add pthread_getname_np."
Elliott Hughes [Thu, 24 Mar 2016 02:47:10 +0000 (02:47 +0000)]
Merge "Add pthread_getname_np."

8 years agoAdd pthread_getname_np.
Elliott Hughes [Wed, 23 Mar 2016 18:20:47 +0000 (11:20 -0700)]
Add pthread_getname_np.

Also guard both these GNU extensions with _GNU_SOURCE.

Also improve the tests to test each case on both the current thread and
another thread, since the code paths are totally different.

Bug: http://b/27810459
Change-Id: I72b05bca5c5b6ca8ba4585b8edfb716a1c252f92

8 years agoMerge "genversion-scripts: fix script name in autogenerated comment"
Greg Hackmann [Thu, 24 Mar 2016 00:32:35 +0000 (00:32 +0000)]
Merge "genversion-scripts: fix script name in autogenerated comment"

8 years agogenversion-scripts: fix script name in autogenerated comment
Greg Hackmann [Thu, 3 Mar 2016 21:10:23 +0000 (13:10 -0800)]
genversion-scripts: fix script name in autogenerated comment

Change-Id: I2a304818cfc54d08a08d2e621e4cf74e7ce465dd
Signed-off-by: Greg Hackmann <ghackmann@google.com>
8 years agoMerge "Move relocation_packer off libnativehelper."
Elliott Hughes [Wed, 23 Mar 2016 18:22:16 +0000 (18:22 +0000)]
Merge "Move relocation_packer off libnativehelper."

8 years agoMove relocation_packer off libnativehelper.
Elliott Hughes [Wed, 23 Mar 2016 03:27:39 +0000 (20:27 -0700)]
Move relocation_packer off libnativehelper.

Also remove other bits of makefile cruft.

Change-Id: I8b69822200959368003a8af9d1595bea9182d6d8

8 years agoMerge "Fix pthread.pthread_barrier_smoke test."
Yabin Cui [Wed, 23 Mar 2016 02:32:41 +0000 (02:32 +0000)]
Merge "Fix pthread.pthread_barrier_smoke test."

8 years agoMerge "CloseArchive() to free memory when OpenArchive fails."
Yabin Cui [Wed, 23 Mar 2016 02:32:30 +0000 (02:32 +0000)]
Merge "CloseArchive() to free memory when OpenArchive fails."

8 years agoCloseArchive() to free memory when OpenArchive fails.
Yabin Cui [Tue, 22 Mar 2016 00:10:12 +0000 (17:10 -0700)]
CloseArchive() to free memory when OpenArchive fails.

Bug: 26962895
Change-Id: I42418eee320ddae857b42572690316c53f638e85

8 years agoFix pthread.pthread_barrier_smoke test.
Yabin Cui [Tue, 22 Mar 2016 20:45:55 +0000 (13:45 -0700)]
Fix pthread.pthread_barrier_smoke test.

pthread_barrier_smoke test uses WaitUntilThreadSleep() to wait until
BarrierTestHelper threads sleep in pthread_barrier_wait(). But this
is flaky as there a two futex_wait places in pthread_barrier_wait.
This patch modifies this test to avoid using WaitUntilThreadSleep().

Bug: 27780937
Change-Id: I4c36b82cce9345d5088f8854b289dc5bf7a08e8c

8 years agoMerge "Add a CTS test to ensure AT_HWCAP2 is reported."
Elliott Hughes [Mon, 21 Mar 2016 18:20:02 +0000 (18:20 +0000)]
Merge "Add a CTS test to ensure AT_HWCAP2 is reported."

8 years agoAdd a CTS test to ensure AT_HWCAP2 is reported.
Elliott Hughes [Sat, 19 Mar 2016 01:36:04 +0000 (18:36 -0700)]
Add a CTS test to ensure AT_HWCAP2 is reported.

This is important for performance of 32-bit ARM crypto code in apps.

Bug: http://b/27750752
Change-Id: If1cebc4d562aeb2ae0cc2834135af16e9bd0f79a

8 years agoMerge "Fix race in malloc debug option free_track."
Christopher Ferris [Thu, 17 Mar 2016 17:52:54 +0000 (17:52 +0000)]
Merge "Fix race in malloc debug option free_track."

8 years agoMerge "Fix bug where t9 is not correct when __memset_chk_fail is called. t9 is used...
Christopher Ferris [Thu, 17 Mar 2016 01:01:26 +0000 (01:01 +0000)]
Merge "Fix bug where t9 is not correct when __memset_chk_fail is called. t9 is used to calculate gp at the start of __memset_chk_fail."

8 years agoFix race in malloc debug option free_track.
Christopher Ferris [Wed, 16 Mar 2016 05:39:39 +0000 (22:39 -0700)]
Fix race in malloc debug option free_track.

The free track mechanism could fail if, at the same time a free occurs,
another thread is trying to free and verify the same allocation. This
doesn't work if the freed allocation is added to the list and we still
do work on it. The fix is to only add to the free list when we are done
with the allocation.

Also fix a problem where the usable size is computed incorrectly because
two of the arguments where reversed.

In addition, add a check that the allocation being verified has the correct
tag before trying to check the body of the allocation.

Add a test to catch the original failure.

Add a test for the tag being different.

Bug: 27601650
Change-Id: Ie9200677d066255b8e668a48422f23f909f4ddee

8 years agoFix bug where t9 is not correct when __memset_chk_fail is called.
Douglas Leung [Wed, 16 Mar 2016 23:59:23 +0000 (16:59 -0700)]
Fix bug where t9 is not correct when __memset_chk_fail is called.
t9 is used to calculate gp at the start of __memset_chk_fail.

Change-Id: Ief5018699e060afa691bfc1d861abd5e463ab80c

8 years agoMerge "Android.bp: Add missing <complex.h> functions."
Dan Willemsen [Wed, 16 Mar 2016 22:52:57 +0000 (22:52 +0000)]
Merge "Android.bp: Add missing <complex.h> functions."

8 years agoAndroid.bp: Add missing <complex.h> functions.
Dan Willemsen [Wed, 16 Mar 2016 22:46:35 +0000 (15:46 -0700)]
Android.bp: Add missing <complex.h> functions.

Android.bp port of https://android-review.googlesource.com/207658

Change-Id: I4bedd193a20f7dfb97d0a8bbb67c8472e727be87

8 years agoMerge "Add missing <complex.h> functions."
Elliott Hughes [Wed, 16 Mar 2016 18:12:33 +0000 (18:12 +0000)]
Merge "Add missing <complex.h> functions."

8 years agoMerge "Fix PTHREAD_THREADS_MAX."
Elliott Hughes [Wed, 16 Mar 2016 17:07:49 +0000 (17:07 +0000)]
Merge "Fix PTHREAD_THREADS_MAX."

8 years agoFix PTHREAD_THREADS_MAX.
Elliott Hughes [Wed, 16 Mar 2016 00:11:56 +0000 (17:11 -0700)]
Fix PTHREAD_THREADS_MAX.

We don't have a compile-time limit on the number of threads,
and we don't have a definite run-time limit either.

Bug: http://b/27617302
Change-Id: I6a6fe083e7b655d24eb9e7ef7f3e0280d483080b

8 years agoMerge "Fix problem where unknown option is not an error."
Christopher Ferris [Tue, 15 Mar 2016 17:47:02 +0000 (17:47 +0000)]
Merge "Fix problem where unknown option is not an error."

8 years agoMerge "Silence false positive warnings on GCC."
Josh Gao [Tue, 15 Mar 2016 02:43:10 +0000 (02:43 +0000)]
Merge "Silence false positive warnings on GCC."

8 years agoSilence false positive warnings on GCC.
Josh Gao [Tue, 15 Mar 2016 01:15:15 +0000 (18:15 -0700)]
Silence false positive warnings on GCC.

We still use GCC to build the bionic unit tests into CTS, and it emits a
false positive -Wmissing-field-initializers warning for the C++11 aggregate
initialization syntax `Foo foo = {}`.

Bug: http://b/27656293
Change-Id: I016d8dae6d6cd28afe4bc19250c2a8fba908f8e6

8 years agoFix problem where unknown option is not an error.
Christopher Ferris [Mon, 14 Mar 2016 22:29:46 +0000 (15:29 -0700)]
Fix problem where unknown option is not an error.

If the first option is found, then any unknown options are simply
ignored, but do not produce an error. Fixed this so that each
option found is actually verified to exist.

Bug: 27620263
Change-Id: If58732df3285eeae72188162c505e0e202fada8c

8 years agoMerge "Init functions after debug malloc succeeds."
Christopher Ferris [Sat, 12 Mar 2016 21:15:34 +0000 (21:15 +0000)]
Merge "Init functions after debug malloc succeeds."

8 years agoAdd missing <complex.h> functions.
Elliott Hughes [Fri, 11 Mar 2016 22:49:13 +0000 (14:49 -0800)]
Add missing <complex.h> functions.

FreeBSD doesn't seem interested in having low-quality implementations of
these functions:

  cacoshl, cacosl, casinhl, casinl, catanhl, catanl, ccoshl, ccosl, cexpl,
  clog, clogf, clogl, cpow, cpowf, cpowl, csinhl, csinl, ctanhl, ctanl.

And they still haven't got round to writing good implementations, so for
now let's just take the NetBSD ones so we have the full set.

Bug: http://b/27555792
Change-Id: I6b72003cf749b1043f006377a01fffe5e1d659bc

8 years agoMerge "Update Android.bp with x86 rint optimizations"
Dan Willemsen [Fri, 11 Mar 2016 21:07:49 +0000 (21:07 +0000)]
Merge "Update Android.bp with x86 rint optimizations"

8 years agoUpdate Android.bp with x86 rint optimizations
Dan Willemsen [Fri, 11 Mar 2016 21:01:20 +0000 (13:01 -0800)]
Update Android.bp with x86 rint optimizations

Change-Id: Ie14a40301d6dd601b34b3f2341947daf6294e2cb

8 years agoInit functions after debug malloc succeeds.
Christopher Ferris [Fri, 11 Mar 2016 20:27:02 +0000 (12:27 -0800)]
Init functions after debug malloc succeeds.

Do not initialize all of the global function pointers associated with
debug malloc until the initialization has completed correctly.

Bug: 27600760
Change-Id: I0621b54bc2d9fab63805d7992d384e550d6fed2a

8 years agoRevert "[MIPS] Link .dex or .oat code lacking .MIPS.abiflags segment"
Goran Jakovljevic [Fri, 11 Mar 2016 16:22:08 +0000 (16:22 +0000)]
Revert "[MIPS] Link .dex or .oat code lacking .MIPS.abiflags segment"

This reverts commit 0acb15ead6a554a6879b29fd90726b9ea8fd98c4.

This workaround is not needed any more. Now ART generates
.MIPS.abiflags segments in its files. This is done in
Ie06a3c4e384a23a77db7d04a2508edbf3a6d3933.

Change-Id: I746289eed443a0fdbe8fd0b1199bcc5cd4d024e1

8 years agoMerge changes I3f1c1310,Ia8dc3481,I6b19fd63
Colin Cross [Fri, 11 Mar 2016 01:13:52 +0000 (01:13 +0000)]
Merge changes I3f1c1310,Ia8dc3481,I6b19fd63

* changes:
  malloc_debug: fix multiplication overflow in debug_calloc
  malloc_debug: round 0 byte allocations up to 1 byte
  malloc_debug: iterate: use usable_size

8 years agoMerge "Adjust test to let it pass on libhoudini."
Yabin Cui [Thu, 10 Mar 2016 23:58:32 +0000 (23:58 +0000)]
Merge "Adjust test to let it pass on libhoudini."

8 years agomalloc_debug: fix multiplication overflow in debug_calloc
Colin Cross [Thu, 10 Mar 2016 21:01:27 +0000 (13:01 -0800)]
malloc_debug: fix multiplication overflow in debug_calloc

The over flow check for nmemb * bytes in debug_calloc is incorrect,
use the builtin overflow functions to check for multiplication and
addition overflow.

Change-Id: I3f1c13102621bc5380be1f69caa88dba2118f3cb
(cherry picked from commit 239838608dbe9917acddfe5a51d92350a4c8e135)

8 years agomalloc_debug: round 0 byte allocations up to 1 byte
Colin Cross [Thu, 10 Mar 2016 01:56:14 +0000 (17:56 -0800)]
malloc_debug: round 0 byte allocations up to 1 byte

0 byte allocations can cause problems if they are immediately followed
by another allocation with no header, as both allocations will have the
same address.  Treat 0 byte allocations as 1 byte allocations so that
debug_iterate will return separate addresses for them.

Bug: 27578580
Change-Id: Ia8dc3481fa7062391e9b3ae58a36e8d47e7ee557
(cherry picked from commit 15af478080cfbfa800fb8172fdf70a84075925e3)

8 years agomalloc_debug: iterate: use usable_size
Colin Cross [Thu, 10 Mar 2016 00:33:44 +0000 (16:33 -0800)]
malloc_debug: iterate: use usable_size

malloc_iterate with malloc debug enabled was returning allocation sizes
using the requested size instead of usable size.  If anything wrote
pointers above the requested size but below the usable size, those
pointers would be invisible to libmemunreachable and referenced
allocations could be reported as a leak.

Bug: 27107100
Change-Id: I6b19fd631f68ce93b3aee408cc3d296ec457bd01
(cherry picked from commit b23c6606d2326f8835fc7fc35b23ff7ee5a48f48)

8 years agoAdjust test to let it pass on libhoudini.
Yabin Cui [Tue, 8 Mar 2016 01:44:58 +0000 (17:44 -0800)]
Adjust test to let it pass on libhoudini.

When using libhoudini to run arm code on x86 platforms, we can't
assume the main thread allocates local variables at the stack
declared by kernel.

Change-Id: Id9457f47fc338a3103fdee25a7a6e622915e7090

8 years agoMerge "Improve and fix the stack-protector tests."
Elliott Hughes [Thu, 10 Mar 2016 16:12:26 +0000 (16:12 +0000)]
Merge "Improve and fix the stack-protector tests."

8 years agoMerge "debuggerd: rethrow the full signal we receive, always."
Josh Gao [Thu, 10 Mar 2016 00:00:54 +0000 (00:00 +0000)]
Merge "debuggerd: rethrow the full signal we receive, always."

8 years agodebuggerd: rethrow the full signal we receive, always.
Josh Gao [Tue, 8 Mar 2016 23:27:15 +0000 (15:27 -0800)]
debuggerd: rethrow the full signal we receive, always.

The previous code assumed that returning would be sufficient to rethrow
signals like SIGSEGV. This is not true, for example,  in the case where a
SIGSEGV is sent via kill(2). We were previously only sending the signal
to ourselves in some cases, because using kill(2) would lose information
in the siginfo_t argument. Use rt_tgsigqueueinfo(2) instead to preserve
its contents.

Bug: http://b/27367422
Change-Id: I1be822818d5905461979c7e12dc4e9c25049273b

8 years agoImprove and fix the stack-protector tests.
Elliott Hughes [Fri, 4 Mar 2016 19:53:09 +0000 (11:53 -0800)]
Improve and fix the stack-protector tests.

Bug: http://b/26888853
Change-Id: I505dbf7d5934f7247fb639f55dd6a9341df3947b

8 years agoMerge "Switch bionic over to google-benchmark."
Elliott Hughes [Wed, 9 Mar 2016 20:36:52 +0000 (20:36 +0000)]
Merge "Switch bionic over to google-benchmark."

8 years agoMerge "Don't leak sockets if setsockopt() or fchown() fail."
Erik Kline [Wed, 9 Mar 2016 04:18:22 +0000 (04:18 +0000)]
Merge "Don't leak sockets if setsockopt() or fchown() fail."

8 years agoDon't leak sockets if setsockopt() or fchown() fail.
Erik Kline [Fri, 4 Mar 2016 08:16:55 +0000 (17:16 +0900)]
Don't leak sockets if setsockopt() or fchown() fail.

Change-Id: Idcf8c08ff50d21c3a04b7ef80c4044f3f9762f2b

8 years agoMerge "Add x86 optimization of rint functions and tests"
Elliott Hughes [Tue, 8 Mar 2016 22:01:07 +0000 (22:01 +0000)]
Merge "Add x86 optimization of rint functions and tests"

8 years agoAdd x86 optimization of rint functions and tests
jzha136 [Fri, 12 Jun 2015 16:15:02 +0000 (09:15 -0700)]
Add x86 optimization of rint functions and tests

Change-Id: I5e7696ff9bcb1efc2625100ef8565b68dca2326c
Signed-off-by: Jingwei Zhang <jingwei.zhang@intel.com>
8 years agoSwitch bionic over to google-benchmark.
Elliott Hughes [Wed, 17 Feb 2016 18:23:52 +0000 (10:23 -0800)]
Switch bionic over to google-benchmark.

Also removes the old benchmarking library.

Change-Id: I4791ae69fa5dea03644d3d411c60b7c6d1fceae3