OSDN Git Service

android-x86/bionic.git
8 years agoAdd sync_file_range to <fcntl.h>.
Elliott Hughes [Tue, 5 Apr 2016 18:56:03 +0000 (11:56 -0700)]
Add sync_file_range to <fcntl.h>.

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

8 years agoMerge "Add missing prototype for readahead in <fcntl.h>."
Elliott Hughes [Tue, 5 Apr 2016 18:50:09 +0000 (18:50 +0000)]
Merge "Add missing prototype for readahead in <fcntl.h>."

8 years agoAdd missing prototype for readahead in <fcntl.h>.
Elliott Hughes [Tue, 5 Apr 2016 18:06:02 +0000 (11:06 -0700)]
Add missing prototype for readahead in <fcntl.h>.

Change-Id: Icfe85e9cf95c657b495c4e9cd10dec50b0b8f6db

8 years agoMerge "Add POSIX getsubopt(3)."
Elliott Hughes [Tue, 5 Apr 2016 18:03:56 +0000 (18:03 +0000)]
Merge "Add POSIX getsubopt(3)."

8 years agoMerge "Add SysV signal handling"
Elliott Hughes [Tue, 5 Apr 2016 17:01:23 +0000 (17:01 +0000)]
Merge "Add SysV signal handling"

8 years agoMerge "Fix off-by-one error in res_cache.c"
Pierre Imai [Tue, 5 Apr 2016 07:35:46 +0000 (07:35 +0000)]
Merge "Fix off-by-one error in res_cache.c"

8 years agoFix off-by-one error in res_cache.c
Pierre Imai [Tue, 5 Apr 2016 06:49:08 +0000 (15:49 +0900)]
Fix off-by-one error in res_cache.c

Change-Id: I58264902c123b3bc0d392d17837aa537ca0a3ca2

8 years agoMerge "Ignore unreliable DNS servers."
Pierre Imai [Tue, 5 Apr 2016 03:44:35 +0000 (03:44 +0000)]
Merge "Ignore unreliable DNS servers."

8 years agoIgnore unreliable DNS servers.
Pierre Imai [Mon, 22 Feb 2016 08:50:41 +0000 (17:50 +0900)]
Ignore unreliable DNS servers.

Collect statistics about DNS query success state and delay. Ignore
servers that have been tried at least five times and have a success rate
of < 0.25. Retry these servers once every 180s.

Bug: 25731675
Change-Id: I78e24f43e388dca82fb81835e1796f4c7dce8da3

8 years agoMerge "Make it harder to use a broken legacy function by accident."
Elliott Hughes [Tue, 5 Apr 2016 00:36:08 +0000 (00:36 +0000)]
Merge "Make it harder to use a broken legacy function by accident."

8 years agoAdd POSIX getsubopt(3).
Elliott Hughes [Tue, 5 Apr 2016 00:34:04 +0000 (17:34 -0700)]
Add POSIX getsubopt(3).

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

8 years agoMerge "Format code to calculate thread stack and signal stack."
Yabin Cui [Tue, 5 Apr 2016 00:08:05 +0000 (00:08 +0000)]
Merge "Format code to calculate thread stack and signal stack."

8 years agoAdd SysV signal handling
Greg Hackmann [Mon, 29 Feb 2016 20:35:33 +0000 (12:35 -0800)]
Add SysV signal handling

Implement the legacy SysV signal handling functions sighold(),
sigignore(), sigpause(), sigrelse(), and sigset() in terms of the newer
POSIX signal APIs.  As of POSIX 2013 the SysV signal APIs are deprecated
but still required.

Change-Id: I4ca40e3d706605a7d1a30dc76c78b2b24586387d
Signed-off-by: Greg Hackmann <ghackmann@google.com>
8 years agoFormat code to calculate thread stack and signal stack.
Yabin Cui [Thu, 31 Mar 2016 00:48:50 +0000 (17:48 -0700)]
Format code to calculate thread stack and signal stack.

The code to calculate thread stack and signal stack looks weird:
the thread stack size and signal stack size are related with
each other on 32-bit mode, but not on 64-bit mode. So change the
code to make the logic more resonable. This doesn't change anything
as we have defined SIGSTKSZ to 16K on arm64.

Bug: 28005110

Change-Id: I04d2488cfb96ee7e2d894d062c66cef950fec418

8 years agoMake it harder to use a broken legacy function by accident.
Elliott Hughes [Mon, 4 Apr 2016 23:15:37 +0000 (16:15 -0700)]
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

8 years agoMerge "Update Android.bp with recent Android.mk changes"
Dan Willemsen [Mon, 4 Apr 2016 21:14:01 +0000 (21:14 +0000)]
Merge "Update Android.bp with recent Android.mk changes"

8 years agoMerge "Enable ifunc test for arm"
Dimitry Ivanov [Mon, 4 Apr 2016 20:25:21 +0000 (20:25 +0000)]
Merge "Enable ifunc test for arm"

8 years agoUpdate Android.bp with recent Android.mk changes
Dan Willemsen [Mon, 4 Apr 2016 20:18:46 +0000 (13:18 -0700)]
Update Android.bp with recent Android.mk changes

This ports Idb3d445e053c44180773f59774df19b324f6817f to Android.bp

Change-Id: Id5cdb450330792810b8eb61b3cab115ef046e55d

8 years agoMerge "Remove a workaround from stack_protector_test that's not needed in master."
Elliott Hughes [Mon, 4 Apr 2016 19:46:18 +0000 (19:46 +0000)]
Merge "Remove a workaround from stack_protector_test that's not needed in "

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 agoEnable ifunc test for arm
Dimitry Ivanov [Wed, 30 Mar 2016 23:44:48 +0000 (16:44 -0700)]
Enable ifunc test for arm

Bug: http://b/27930475
Change-Id: I1f9e7c5b9ffabfd77ae6ebd534938aef39ec7987

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 agoRemove a workaround from stack_protector_test that's not needed in master.
Elliott Hughes [Sat, 2 Apr 2016 04:02:25 +0000 (21:02 -0700)]
Remove a workaround from stack_protector_test that's not needed in 

The compiler in master doesn't leave a gap between the buffer and the stack
guard canary.

Bug: http://b/27815668
Change-Id: Iae6681683881055c2719d661a2179f5305c23135

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."