OSDN Git Service

android-x86/bionic.git
9 years agoRegenerate "services.h" from /etc/services.
Elliott Hughes [Wed, 20 Aug 2014 19:11:31 +0000 (12:11 -0700)]
Regenerate "services.h" from /etc/services.

Change-Id: Iec118f9a342b5c1f6ce6d48965798b12a7159ad3

10 years agoMerge "Clean up some of our python scripts."
Elliott Hughes [Wed, 20 Aug 2014 19:07:51 +0000 (19:07 +0000)]
Merge "Clean up some of our python scripts."

9 years agoClean up some of our python scripts.
Elliott Hughes [Wed, 20 Aug 2014 18:16:11 +0000 (11:16 -0700)]
Clean up some of our python scripts.

Change-Id: Ifa75345db43434298cfb6113fbe2f7a33b88c79d

10 years agoMerge "Add <stdio_ext.h> for elfutils."
Elliott Hughes [Wed, 20 Aug 2014 17:41:08 +0000 (17:41 +0000)]
Merge "Add <stdio_ext.h> for elfutils."

9 years agoAdd <stdio_ext.h> for elfutils.
Elliott Hughes [Wed, 20 Aug 2014 00:00:33 +0000 (17:00 -0700)]
Add <stdio_ext.h> for elfutils.

Bug: 17139679
Change-Id: I1605ac382dbb6f23b2d874dbb9769f3cde4a6a99

10 years agoMerge "Work around atomic_load(const T*) issues."
Hans Boehm [Tue, 19 Aug 2014 22:34:00 +0000 (22:34 +0000)]
Merge "Work around atomic_load(const T*) issues."

10 years agoWork around atomic_load(const T*) issues.
Hans Boehm [Tue, 19 Aug 2014 21:07:55 +0000 (14:07 -0700)]
Work around atomic_load(const T*) issues.

Bug:17067219
Change-Id: I78e753bcf03464f5f05c3f37e394f2727d282589

10 years agoMerge "Add in_port_t and move it and in_addr_t to the correct header file."
Elliott Hughes [Tue, 19 Aug 2014 20:11:53 +0000 (20:11 +0000)]
Merge "Add in_port_t and move it and in_addr_t to the correct header file."

10 years agoAdd in_port_t and move it and in_addr_t to the correct header file.
Elliott Hughes [Tue, 19 Aug 2014 19:43:50 +0000 (12:43 -0700)]
Add in_port_t and move it and in_addr_t to the correct header file.

No one's reported this, but I saw it in an Android port of fuser(1).

We still have lots of problems in our network headers because we
get most of the structs direct from the kernel, and it doesn't use
types like this (which is why we've got away without this one for
so long). One day we should probably look at cleaning that up, but
doing so can wait.

Change-Id: If15edf0cfc32716fa312d7ed97c48321b760d979

10 years agoMerge "Implement the GNU basename(3) in addition to the POSIX one."
Elliott Hughes [Tue, 19 Aug 2014 22:04:58 +0000 (22:04 +0000)]
Merge "Implement the GNU basename(3) in addition to the POSIX one."

10 years agoImplement the GNU basename(3) in addition to the POSIX one.
Elliott Hughes [Tue, 19 Aug 2014 21:30:30 +0000 (14:30 -0700)]
Implement the GNU basename(3) in addition to the POSIX one.

Code like perf(1) needs this.

Bug: 11860789
Change-Id: I907eb448052a7b165e4012d74303330d32328cb2

10 years agoMerge "Move the meat of <features.h> into <sys/cdefs.h>."
Elliott Hughes [Tue, 19 Aug 2014 18:55:17 +0000 (18:55 +0000)]
Merge "Move the meat of <features.h> into <sys/cdefs.h>."

10 years agoMove the meat of <features.h> into <sys/cdefs.h>.
Elliott Hughes [Tue, 19 Aug 2014 18:16:41 +0000 (11:16 -0700)]
Move the meat of <features.h> into <sys/cdefs.h>.

This way it's a lot harder for us to screw up (since we should always
be including <sys/cdefs.h> anyway).

Bug: 14659579
Change-Id: I23070fff3296b0d1c683bb5e3a6e214146327d53

10 years agoMerge "Remove unused defines from <features.h>."
Elliott Hughes [Tue, 19 Aug 2014 17:39:21 +0000 (17:39 +0000)]
Merge "Remove unused defines from <features.h>."

10 years agoRemove unused defines from <features.h>.
Elliott Hughes [Tue, 19 Aug 2014 17:07:00 +0000 (10:07 -0700)]
Remove unused defines from <features.h>.

Bug: 14659579
Change-Id: I2ab02b13cafe3faad31248b843d39ab2cdbfeb91

10 years agoMerge "Fix _BSD_SOURCE/__USE_BSD."
Elliott Hughes [Tue, 19 Aug 2014 16:48:43 +0000 (16:48 +0000)]
Merge "Fix _BSD_SOURCE/__USE_BSD."

10 years agoFix _BSD_SOURCE/__USE_BSD.
Elliott Hughes [Tue, 19 Aug 2014 16:18:03 +0000 (09:18 -0700)]
Fix _BSD_SOURCE/__USE_BSD.

Bug: 14659579
Change-Id: I80ec9584f054c02d1078828f6bca759c42bc1d4c

10 years agoMerge "Revert "Add support for protected local symbol lookup.""
Dmitriy Ivanov [Tue, 19 Aug 2014 16:45:34 +0000 (16:45 +0000)]
Merge "Revert "Add support for protected local symbol lookup.""

10 years agoRevert "Add support for protected local symbol lookup."
Dmitriy Ivanov [Mon, 18 Aug 2014 22:08:51 +0000 (15:08 -0700)]
Revert "Add support for protected local symbol lookup."

This reverts commit d97e9f546ea195686a78e539315b273393609b9e.

Bug: 17107521
(cherry picked from commit 9419420919ea846bbad5510850c7aaec95021648)

Change-Id: I1a6df946ac8075699e77d68ffa6ac4a21b88e4bf

10 years agoMerge "Missing #include <sys/cdefs.h>."
Dan Albert [Tue, 19 Aug 2014 18:29:31 +0000 (18:29 +0000)]
Merge "Missing #include <sys/cdefs.h>."

10 years agoMissing #include <sys/cdefs.h>.
Dan Albert [Tue, 19 Aug 2014 18:06:33 +0000 (11:06 -0700)]
Missing #include <sys/cdefs.h>.

Needed for __BEGIN_DECLS/__END_DECLS. Currently fine because it's being
included after other files that do this.

Change-Id: I1f12368fc461f6ef5ca90992cf19f317f0b5d7af

10 years agoMerge "Expose android_set_abort_message()."
Dan Albert [Tue, 19 Aug 2014 17:18:19 +0000 (17:18 +0000)]
Merge "Expose android_set_abort_message()."

10 years agoExpose android_set_abort_message().
Dan Albert [Mon, 18 Aug 2014 21:37:42 +0000 (14:37 -0700)]
Expose android_set_abort_message().

Removes the leading underscores from __android_set_abort_message() and
moves its declaration into a public header file.

Bug: 17059126
Change-Id: I470c79db47ec783ea7a54b800f8b78ecbe7479ab

10 years agoMerge "Fix leak_realloc, copy entire allocation."
Christopher Ferris [Mon, 18 Aug 2014 20:12:59 +0000 (20:12 +0000)]
Merge "Fix leak_realloc, copy entire allocation."

10 years agoFix leak_realloc, copy entire allocation.
Christopher Ferris [Sat, 16 Aug 2014 01:42:58 +0000 (18:42 -0700)]
Fix leak_realloc, copy entire allocation.

Bug: 16874447

(cherry picked from commit 5df0839cea98bd8c37d8dba5b94b98e99c681a94)

Change-Id: I9280505c0c1c3b5da24ba590448dcd6e7a230406

10 years agomalloc_usable_size returns the original size.
Christopher Ferris [Thu, 14 Aug 2014 19:48:04 +0000 (12:48 -0700)]
malloc_usable_size returns the original size.

Bug: 16874447

(cherry picked from commit 59c1ee44d0a560a754513fab12641c8a57a20d9e)

Change-Id: I70839632974367c8b9893fb1f9c5ee4364608470

10 years agoMerge "malloc_usable_size returns the original size."
Christopher Ferris [Mon, 18 Aug 2014 20:12:54 +0000 (20:12 +0000)]
Merge "malloc_usable_size returns the original size."

10 years agoMerge "Hide C++ stuff in libc. Put it back in libstdc++."
Dan Albert [Mon, 18 Aug 2014 19:56:41 +0000 (19:56 +0000)]
Merge "Hide C++ stuff in libc. Put it back in libstdc++."

10 years agoHide C++ stuff in libc. Put it back in libstdc++.
Dan Albert [Fri, 15 Aug 2014 21:20:04 +0000 (14:20 -0700)]
Hide C++ stuff in libc. Put it back in libstdc++.

Bug: 17062445
Change-Id: I027b186719654c2865b08c3fa83f90fa00c1e838

10 years agoMerge "Fix <features.h> (_BSD_SOURCE and _GNU_SOURCE)."
Elliott Hughes [Tue, 19 Aug 2014 00:27:01 +0000 (00:27 +0000)]
Merge "Fix <features.h> (_BSD_SOURCE and _GNU_SOURCE)."

10 years agoFix <features.h> (_BSD_SOURCE and _GNU_SOURCE).
Elliott Hughes [Mon, 18 Aug 2014 23:04:03 +0000 (16:04 -0700)]
Fix <features.h> (_BSD_SOURCE and _GNU_SOURCE).

<features.h> is supposed to take user-settable stuff like _GNU_SOURCE
and _BSD_SOURCE and turn them into __USE_GNU and __USE_BSD for use in
the C library headers. Instead, bionic used to unconditionally define
_BSD_SOURCE and _GNU_SOURCE, and then test _GNU_SOURCE in the header
files (which makes no sense whatsoever).

Bug: 14659579
Change-Id: Ice4cf21a364ea2e559071dc8329e995277d5b987

10 years agoMerge "Improve <sys/cdefs.h>."
Elliott Hughes [Mon, 18 Aug 2014 22:11:55 +0000 (22:11 +0000)]
Merge "Improve <sys/cdefs.h>."

10 years agoImprove <sys/cdefs.h>.
Elliott Hughes [Mon, 18 Aug 2014 21:45:42 +0000 (14:45 -0700)]
Improve <sys/cdefs.h>.

Fix and use __RENAME (and lose ___RENAME --- two underscores should be
enough for anybody). This was the point of this change, because I want
to use __RENAME to support the two basename variants and the two
strerror_r variants.

Lose a bunch of macros that weren't being used.

Lose three dead files from the DNS code.

Change-Id: I3ef645c566b16a52217bc2e68c7d54b37c7c9522

10 years agoMerge "Add atexit test for attributed c-tor/d-tor"
Dmitriy Ivanov [Fri, 15 Aug 2014 22:57:37 +0000 (22:57 +0000)]
Merge "Add atexit test for attributed c-tor/d-tor"

10 years agoAdd atexit test for attributed c-tor/d-tor
Dmitriy Ivanov [Fri, 15 Aug 2014 21:22:07 +0000 (14:22 -0700)]
Add atexit test for attributed c-tor/d-tor

 1. Add test for __attribute__((constructor/destructor))
    and static constructor

 2. Compile C++ testlibs with -std=gnu++11

Change-Id: I67f9308144a0c638a51f111fcba8e1933fe0ba41

10 years agoMerge "Have stdatomic.h punt to C++ atomic when possible"
Hans Boehm [Fri, 15 Aug 2014 18:19:34 +0000 (18:19 +0000)]
Merge "Have stdatomic.h punt to C++ atomic when possible"

10 years agoHave stdatomic.h punt to C++ atomic when possible
Hans Boehm [Thu, 14 Aug 2014 22:26:03 +0000 (15:26 -0700)]
Have stdatomic.h punt to C++ atomic when possible

This is an alternate, somewhat simpler, fix that makes it safe to
include both <atomic> and <stdatomic.h> from C++ code in either order.
It means that C code consistently uses one implementation of atomics
and C++ another.  We still have to make sure that those two
implementations interoperate correctly at runtime; in particular,
any flavor of atomic object needs to be represented exactly like the
underlying type, with the proper alignment constraint.

Bug:17007799
Change-Id: Iffcfc5220d8fa150f89dd083a121b24d23f268fc

10 years agoMerge "Move mtctxres.c to libc_dns.a."
Dan Albert [Thu, 14 Aug 2014 23:17:17 +0000 (23:17 +0000)]
Merge "Move mtctxres.c to libc_dns.a."

10 years agoMove mtctxres.c to libc_dns.a.
Dan Albert [Thu, 14 Aug 2014 22:43:25 +0000 (15:43 -0700)]
Move mtctxres.c to libc_dns.a.

Has the effect of making ___mtctxres hidden.

Bug: 17007799
Change-Id: I5aa5f49344ad5ecb33f48737430561b329bcbb0d

10 years agoMerge "Keep symbols for linker"
Dmitriy Ivanov [Thu, 14 Aug 2014 22:50:52 +0000 (22:50 +0000)]
Merge "Keep symbols for linker"

10 years agoKeep symbols for linker
Dmitriy Ivanov [Thu, 14 Aug 2014 22:46:36 +0000 (15:46 -0700)]
Keep symbols for linker

Bug: 17011146
Change-Id: I314e72a1ac9325bf5ea84d52e3d5bc51d8ea00cf

10 years agoMerge "Change name of MB_CUR_MAX implementation function."
Dan Albert [Thu, 14 Aug 2014 21:19:11 +0000 (21:19 +0000)]
Merge "Change name of MB_CUR_MAX implementation function."

10 years agoChange name of MB_CUR_MAX implementation function.
Dan Albert [Thu, 14 Aug 2014 20:56:51 +0000 (13:56 -0700)]
Change name of MB_CUR_MAX implementation function.

Glibc calls theirs __ctype_get_mb_cur_max. Make ours match to cut down
on differences between bionic and glibc.

Bug: 11156955
Change-Id: Ib7231f01aa9676dff30aea0af25d597bfe07bc73

10 years agoMerge "Add more functionality to glibc symbol checker."
Dan Albert [Thu, 14 Aug 2014 21:18:49 +0000 (21:18 +0000)]
Merge "Add more functionality to glibc symbol checker."

10 years agoAdd more functionality to glibc symbol checker.
Dan Albert [Wed, 13 Aug 2014 20:04:28 +0000 (13:04 -0700)]
Add more functionality to glibc symbol checker.

Also scan NDK's unwanted symbols list (to show the things that we're
exporting but the NDK isn't. Symbols hidden in the NDK will be marked
with a *.

Add a -u (--unwanted) flag to disable the first two printed groups
(all symbols in bionic, all symbols in glibc). This is helpful when
wanting to grep in the list of unwanted symbols.

Finally, update the list of known differences between us and glibc.

Change-Id: I6fdb4126823098430454763c391bd8cd369a75bb

10 years agoMerge "Hide __libc_init_vdso()."
Dan Albert [Wed, 13 Aug 2014 21:07:11 +0000 (21:07 +0000)]
Merge "Hide __libc_init_vdso()."

10 years agoHide __libc_init_vdso().
Dan Albert [Wed, 13 Aug 2014 20:11:58 +0000 (13:11 -0700)]
Hide __libc_init_vdso().

Bug: 11156955
Change-Id: I7ee31e1ee2ce479c5746b374a239637d582815fe

10 years agoMerge "Add memory ordering constraint, convert to C11 atomics"
Hans Boehm [Thu, 14 Aug 2014 01:03:09 +0000 (01:03 +0000)]
Merge "Add memory ordering constraint, convert to C11 atomics"

10 years agoMerge "Hide ScopedTrace."
Dan Albert [Wed, 13 Aug 2014 20:07:44 +0000 (20:07 +0000)]
Merge "Hide ScopedTrace."

10 years agoHide ScopedTrace.
Dan Albert [Wed, 13 Aug 2014 18:25:01 +0000 (11:25 -0700)]
Hide ScopedTrace.

Bug: 11156955
Change-Id: I6cddc868d1c6503e30f1ffcf460f45670631d64a

10 years agoMerge "Optimize symbol lookup"
Dmitriy Ivanov [Wed, 13 Aug 2014 16:28:06 +0000 (16:28 +0000)]
Merge "Optimize symbol lookup"

10 years agoOptimize symbol lookup
Dmitriy Ivanov [Wed, 13 Aug 2014 04:02:13 +0000 (21:02 -0700)]
Optimize symbol lookup

 Do not run symbol lookup on already visited soinfos
 Not taking into account already visited libraries
 dramatically slows down dlsym in cases when there
 are multiple occurrences of a large library in
 dependency tree.

Bug: 16977077
Change-Id: I1379f30ed8b06758dd1cc76b80833ac8589afa50

10 years agoMerge "Hide __libc_malloc_dispatch."
Dan Albert [Tue, 12 Aug 2014 23:55:17 +0000 (23:55 +0000)]
Merge "Hide __libc_malloc_dispatch."

10 years agoHide __libc_malloc_dispatch.
Dan Albert [Tue, 12 Aug 2014 23:21:26 +0000 (16:21 -0700)]
Hide __libc_malloc_dispatch.

Now that -Bsymbolic is fixed, we can hide __libc_malloc_dispatch without
breaking ASAN.

Bug: 11156955
Change-Id: Ia2fc9b046a74e666b33aa6c6c5435f70a63b8021

10 years agoMerge "Added test for ifunc support in dynamic linker."
Dmitriy Ivanov [Thu, 14 Aug 2014 00:29:28 +0000 (00:29 +0000)]
Merge "Added test for ifunc support in dynamic linker."

10 years agoMerge "Label pages mapped by linker_allocator"
Dmitriy Ivanov [Mon, 11 Aug 2014 16:36:33 +0000 (16:36 +0000)]
Merge "Label pages mapped by linker_allocator"

10 years agoLabel pages mapped by linker_allocator
Dmitriy Ivanov [Fri, 8 Aug 2014 23:57:15 +0000 (16:57 -0700)]
Label pages mapped by linker_allocator

Change-Id: I7e0bf29bc1a480e9be0d1ae573ca1063d90d82ff

10 years agoMerge "Fix our x86 PIC_PROLOGUE."
Elliott Hughes [Sun, 10 Aug 2014 05:19:22 +0000 (05:19 +0000)]
Merge "Fix our x86 PIC_PROLOGUE."

10 years agoFix our x86 PIC_PROLOGUE.
Elliott Hughes [Sun, 10 Aug 2014 01:45:55 +0000 (18:45 -0700)]
Fix our x86 PIC_PROLOGUE.

The old definition only worked for functions that didn't use numbered
local labels. Upstream uses '666' not only as some kind of BSD in-joke,
but also because there's little likelihood of any function having
labels that high.

There's a wider question about whether we actually want to go via the
PLT at all in this code, but that's a question for another day.

(cherry-pick of 72d7e667c7e926cb120c4edb53cbf74c652ab915.)

Bug: 16906712
Change-Id: I3cd8ecc448b33f942bb6e783931808ef39091489

10 years agoAdd memory ordering constraint, convert to C11 atomics
Hans Boehm [Thu, 31 Jul 2014 22:53:22 +0000 (15:53 -0700)]
Add memory ordering constraint, convert to C11 atomics

Add an ordering constraint/fence to __system_property_serial.
This slows down a read on a Nexus 5 from about 50 to about 70 ns,
but avoids the possibility of seeing an inconsistent property value.
Use C11 atomic operations where easy and appropriate.
This code remains not fully C++11 memory model conformant, but
I would now expect the generated code to now be correct with current compilers.

Bug:14970171
Change-Id: I0891ff1d0f914ae5c3857e3d76b6a7c8a4a07d83

10 years agoAdded test for ifunc support in dynamic linker.
Brigid Smith [Wed, 23 Jul 2014 18:22:25 +0000 (11:22 -0700)]
Added test for ifunc support in dynamic linker.

ifuncs now work in i386 and x86_64 when called in the same library as
well as in a different library.

Bug:6657325
Change-Id: Ic0c48b1b0a76cb90f36c20c79f68294cc3fd44a1

10 years agoMerge "Make __set_errno hidden in asm."
Dan Albert [Fri, 8 Aug 2014 22:36:57 +0000 (22:36 +0000)]
Merge "Make __set_errno hidden in asm."

10 years agoMake __set_errno hidden in asm.
Dan Albert [Fri, 8 Aug 2014 22:19:20 +0000 (15:19 -0700)]
Make __set_errno hidden in asm.

This fixes the build after the -Bsymbolic change.

Bug: 16853291
Change-Id: I989c9fec3c32e0289ea257a3bd2b7fd2709b6ce2

10 years agoMerge "Revert "Fix incorrect relocations for x86.""
Dan Albert [Fri, 8 Aug 2014 22:35:00 +0000 (22:35 +0000)]
Merge "Revert "Fix incorrect relocations for x86.""

10 years agoRevert "Fix incorrect relocations for x86."
Dan Albert [Fri, 8 Aug 2014 22:15:29 +0000 (15:15 -0700)]
Revert "Fix incorrect relocations for x86."

Bug: 16853291
This reverts commit 512bc5232689bec9c763c8247b59de970096ff87.

10 years agoMerge "Add a way to disable backtracing in malloc debug."
Christopher Ferris [Fri, 8 Aug 2014 16:46:18 +0000 (16:46 +0000)]
Merge "Add a way to disable backtracing in malloc debug."

10 years agoAdd a way to disable backtracing in malloc debug.
Christopher Ferris [Thu, 7 Aug 2014 23:21:21 +0000 (16:21 -0700)]
Add a way to disable backtracing in malloc debug.

The property libc.debug.malloc.nobacktrace set to non-zero disables
getting backtracing when using mode 1 or mode 10.

Bug: 16874447

(cherry picked from 49de01a5be7bfb07baaea7415647d838383e1b59)

Change-Id: I6bbefe5420b14991fe84c2f849222dcd7cb592bf

10 years agoMerge "Remove misleading arm/arm64 PIC_SYM."
Elliott Hughes [Fri, 8 Aug 2014 16:16:48 +0000 (16:16 +0000)]
Merge "Remove misleading arm/arm64 PIC_SYM."

10 years agoRemove misleading arm/arm64 PIC_SYM.
Elliott Hughes [Thu, 7 Aug 2014 18:52:38 +0000 (11:52 -0700)]
Remove misleading arm/arm64 PIC_SYM.

Bug: 16823325
Change-Id: Ic8ff3a628bb4cd71361e3a1c2cfde4b3d39c50b1

10 years agoMerge "Create a distinct temp directory for each run."
Christopher Ferris [Fri, 8 Aug 2014 07:07:48 +0000 (07:07 +0000)]
Merge "Create a distinct temp directory for each run."

10 years agoCreate a distinct temp directory for each run.
Christopher Ferris [Tue, 5 Aug 2014 19:19:27 +0000 (12:19 -0700)]
Create a distinct temp directory for each run.

Modify make__NR_name so that only __ARM_NR_ is exempted from the
__NR_ being prepended. This avoids a case where using a name starting
with __ but is not a valid syscall name in SYSCALLS.TXT does not generate
code that will compile but references the function itself and causes
link errors.

Fix all of the directory references from dir_part1 + dir_part2 to
use os.path.join() instead.

Change-Id: Ib9527eba6f25f26a30c5cb0ad431f3f88a7683cf

10 years agoMerge "Android is all-PIC/PIE."
Elliott Hughes [Thu, 7 Aug 2014 18:25:35 +0000 (18:25 +0000)]
Merge "Android is all-PIC/PIE."

10 years agoAndroid is all-PIC/PIE.
Elliott Hughes [Thu, 7 Aug 2014 17:51:32 +0000 (10:51 -0700)]
Android is all-PIC/PIE.

Clean up the x86/x86_64 assembler. The motivator (other than reducing
confusion) was that asm.h incorrectly checked PIC rather than __PIC__.

Bug: 16823325
Change-Id: Iaa9d45009e93a4b31b719021c93ac221e336479b

10 years agoMerge "Fix incorrect relocations for x86."
Dan Albert [Thu, 7 Aug 2014 23:23:22 +0000 (23:23 +0000)]
Merge "Fix incorrect relocations for x86."

10 years agoFix incorrect relocations for x86.
Dan Albert [Thu, 7 Aug 2014 17:46:42 +0000 (10:46 -0700)]
Fix incorrect relocations for x86.

These calls were not going through the PLT like they should have been.

Bug: 16853291
Change-Id: Id70488b077256a70137c4417f21be2c2d1d4341c

10 years agoMerge "Do a second key cleanup in pthread_exit."
Christopher Ferris [Thu, 7 Aug 2014 01:04:21 +0000 (01:04 +0000)]
Merge "Do a second key cleanup in pthread_exit."

10 years agoDo a second key cleanup in pthread_exit.
Christopher Ferris [Wed, 6 Aug 2014 21:15:01 +0000 (14:15 -0700)]
Do a second key cleanup in pthread_exit.

During pthread_exit, the keys are cleaned. Unfortunately, a call to
free occurs after the cleanup and the memory for some of the keys
is recreated when using jemalloc. The solution is to do the key
cleanup twice.

Also, modify the pthread_detach__leak test to be less flaky
when run on a jemalloc system.

Bug: 16513133

(cherry picked from commit 18d93f2793fad393b6aa6eae6afe1054958339d5)

Change-Id: Idb32e7f9b09e2c088d256ed9eb881df80c81ff8e

10 years agoMerge "Upgrade bionic to tzdata2014f."
Elliott Hughes [Thu, 7 Aug 2014 00:38:29 +0000 (00:38 +0000)]
Merge "Upgrade bionic to tzdata2014f."

10 years agoUpgrade bionic to tzdata2014f.
Elliott Hughes [Wed, 6 Aug 2014 22:26:13 +0000 (15:26 -0700)]
Upgrade bionic to tzdata2014f.

From the release notes:

  Changes affecting future time stamps

    Russia will subtract an hour from most of its time zones on
    2014-10-26 at 02:00 local time.  (Thanks to Alexander Krivenyshev.)
    There are a few exceptions: Magadan Oblast (Asia/Magadan) and
    Zabaykalsky Krai are subtracting two hours; conversely, Chukotka
    Autonomous Okrug (Asia/Anadyr), Kamchatka Krai (Asia/Kamchatka),
    Kemerovo Oblast (Asia/Novokuznetsk), and the Samara Oblast and the
    Udmurt Republic (Europe/Samara) are not changing their clocks.  The
    changed zones are Europe/Kaliningrad, Europe/Moscow,
    Europe/Simferopol, Europe/Volgograd, Asia/Yekaterinburg, Asia/Omsk,
    Asia/Novosibirsk, Asia/Krasnoyarsk, Asia/Irkutsk, Asia/Yakutsk,
    Asia/Vladivostok, Asia/Khandyga, Asia/Sakhalin, and Asia/Ust-Nera;
    Asia/Magadan will have two hours subtracted; and Asia/Novokuznetsk's
    time zone abbreviation is affected, but not its UTC offset.  Two
    zones are added: Asia/Chita (split from Asia/Yakutsk, and also with
    two hours subtracted) and Asia/Srednekolymsk (split from
    Asia/Magadan, but with only one hour subtracted).  (Thanks to Tim
    Parenti for much of the above.)

  Changes affecting past time stamps

    China's five zones have been simplified to two, since the post-1970
    differences in the other three seem to have been imaginary.  The
    zones Asia/Harbin, Asia/Chongqing, and Asia/Kashgar have been
    removed; backwards-compatibility links still work, albeit with
    different behaviors for time stamps before May 1980.  Asia/Urumqi's
    1980 transition to UTC+8 has been removed, so that it is now at
    UTC+6 and not UTC+8.  (Thanks to Luther Ma and to Alois Treindl;
    Treindl sent helpful translations of two papers by Guo Qingsheng.)

    Some zones have been turned into links, when they differed from
    existing zones only for older UTC offsets where the data were likely
    invented.  These changes affect UTC offsets in pre-1970 time stamps
    only.  This is similar to the change in release 2013e, except this
    time for western Africa.  The affected zones are: Africa/Bamako,
    Africa/Banjul, Africa/Conakry, Africa/Dakar, Africa/Freetown,
    Africa/Lome, Africa/Nouakchott, Africa/Ouagadougou, Africa/Sao_Tome,
    and Atlantic/St_Helena.  This also affects the
    backwards-compatibility link Africa/Timbuktu.  (Thanks to Alan
    Barrett, Stephen Colebourne, Tim Parenti, and David Patte for
    reporting problems in earlier versions of this change.)

    Asia/Shanghai's pre-standard-time UT offset has been changed from
    8:05:57 to 8:05:43, the location of Xujiahui Observatory.  Its
    transition to standard time has been changed from 1928 to 1901.

    Asia/Taipei switched to JWST on 1896-01-01, then to JST on
    1937-10-01, then to CST on 1945-09-21 at 01:00, and did not observe
    DST in 1945.  In 1946 it observed DST from 05-15 through 09-30; in
    1947 from 04-15 through 10-31; and in 1979 from 07-01 through 09-30.
    (Thanks to Yu-Cheng Chuang.)

    Asia/Riyadh's transition to standard time is now 1947-03-14, not
    1950.

    Europe/Helsinki's 1942 fall-back transition was 10-04 at 01:00, not
    10-03 at 00:00.  (Thanks to Konstantin Hyppönen.)

    Pacific/Pago_Pago has been changed from UTC-11:30 to UTC-11 for the
    period from 1911 to 1950.

    Pacific/Chatham has been changed to New Zealand standard time plus
    45 minutes for the period before 1957, reflecting a 1956 remark in
    the New Zealand parliament.

    Europe/Budapest has several pre-1946 corrections: in 1918 the
    transition out of DST was on 09-16, not 09-29; in 1919 it was on
    11-24, not 09-15; in 1945 it was on 11-01, not 11-03; in 1941 the
    transition to DST was 04-08 not 04-06 at 02:00; and there was no DST
    in 1920.

    Africa/Accra is now assumed to have observed DST from 1920 through
    1935.

    Time in Russia before 1927 or so has been corrected by a few seconds
    in the following zones: Europe/Moscow, Asia/Irkutsk, Asia/Tbilisi,
    Asia/Tashkent, Asia/Vladivostok, Asia/Yekaterinburg,
    Europe/Helsinki, and Europe/Riga.  Also, Moscow's location has been
    changed to its Kilometer 0 point.  (Thanks to Vladimir Karpinsky for
    the Moscow changes.)

(cherry-pick of 0dc2c1db6fc84b4526f2a5f8d73e1187500f2300.)

Bug: 16168653
Change-Id: I23827254bcf50dd07a2192ed34b02224d73e07a0

10 years agoMerge "Fix the tzdata update tools."
Elliott Hughes [Thu, 7 Aug 2014 00:34:37 +0000 (00:34 +0000)]
Merge "Fix the tzdata update tools."

10 years agoFix the tzdata update tools.
Elliott Hughes [Wed, 6 Aug 2014 22:23:11 +0000 (15:23 -0700)]
Fix the tzdata update tools.

The recent libcore ZoneInfo changes mean that we can no longer
compile libcore's ZoneInfo against the RI. Luckily, the field in
our data file that we needed ZoneInfo for isn't actually used.
This change removes our dependence on libcore.

I've left the field in to avoid a file format change. We can remove
the field if/when we next have a real need to bump the file format.

(cherry-pick of 90cb5ffb85a9bc2e725824b3ca8db932d02c45db.)

Bug: 16168653
Change-Id: Iedad2252c2b49f4d8bb2c7d9078b39b622444ca7

10 years agoMerge "Revert "Add a hack to <stdlib.h> until we can fix libvpx.""
Elliott Hughes [Wed, 6 Aug 2014 20:23:26 +0000 (20:23 +0000)]
Merge "Revert "Add a hack to <stdlib.h> until we can fix libvpx.""

10 years agoRevert "Add a hack to <stdlib.h> until we can fix libvpx."
Elliott Hughes [Mon, 28 Jul 2014 23:16:38 +0000 (16:16 -0700)]
Revert "Add a hack to <stdlib.h> until we can fix libvpx."

This reverts commit 3fb5097a7eec40404760c304b36c8b657b374cab.
libvpx is now fixed.

(cherry-pick of 2be1be47aa9b63568fe6ce1e0a4029b37d90764d.)

Bug: 15598056
Change-Id: Icca974e667f92206505f484bd291726eb0150f68

10 years agoMerge "Workaround b/16818336 which fails build under aggressive inlining."
Elliott Hughes [Wed, 6 Aug 2014 18:46:24 +0000 (18:46 +0000)]
Merge "Workaround b/16818336 which fails build under aggressive inlining."

10 years agoWorkaround b/16818336 which fails build under aggressive inlining.
Dehao Chen [Tue, 5 Aug 2014 22:23:00 +0000 (15:23 -0700)]
Workaround b/16818336 which fails build under aggressive inlining.

(cherry-pick of 7aa27e1c1a53afe28f6180fd1fc50d096cabea7b.)

Change-Id: Ifcd596714c427a2ec39502b9c0af9082ded91884

10 years agoMerge "Explain how wcswcs ended up in ndk_cruft.cpp."
Elliott Hughes [Wed, 6 Aug 2014 17:55:27 +0000 (17:55 +0000)]
Merge "Explain how wcswcs ended up in ndk_cruft.cpp."

10 years agoExplain how wcswcs ended up in ndk_cruft.cpp.
Elliott Hughes [Wed, 6 Aug 2014 17:47:33 +0000 (10:47 -0700)]
Explain how wcswcs ended up in ndk_cruft.cpp.

Change-Id: Ie45148095b2d5c3896c0df623d5d06a700c33c70

10 years agoMerge "Add an obvious comment to <stdio.h> for fixincludes."
Elliott Hughes [Wed, 6 Aug 2014 16:04:48 +0000 (16:04 +0000)]
Merge "Add an obvious comment to <stdio.h> for fixincludes."

10 years agoAdd an obvious comment to <stdio.h> for fixincludes.
Elliott Hughes [Wed, 6 Aug 2014 00:07:46 +0000 (17:07 -0700)]
Add an obvious comment to <stdio.h> for fixincludes.

We don't want GCC's fixincludes to touch our <stdio.h> because we
want to support multiple platform versions with one toolchain. Give
them a nice easy unambiguous string to look for.

Bug: http://code.google.com/p/android/issues/detail?id=73728
Change-Id: I15cb9a2c9eb0a44b0965dc2139f224f2b6e68ea1

10 years agoMerge "Fixes build."
Dan Albert [Tue, 5 Aug 2014 21:47:45 +0000 (21:47 +0000)]
Merge "Fixes build."

10 years agoFixes build.
Dan Albert [Tue, 5 Aug 2014 21:46:03 +0000 (14:46 -0700)]
Fixes build.

This change somehow went missing from the vfork change.

Change-Id: I807a2072080eac20601c694e85ba5723220289d8

10 years agoMerge "Revert "Replaces vfork() implementation with fork()""
Dan Albert [Tue, 5 Aug 2014 21:29:41 +0000 (21:29 +0000)]
Merge "Revert "Replaces vfork() implementation with fork()""

10 years agoRevert "Replaces vfork() implementation with fork()"
Dan Albert [Tue, 5 Aug 2014 20:53:31 +0000 (20:53 +0000)]
Revert "Replaces vfork() implementation with fork()"

We're getting cold feet on this one... let's put it back.

This reverts commit 210331d9762037afb9b5ed8413079c6f65872df9.

Change-Id: I6b0d3c2b1dbf7f1dc9566979a91b7504c2189269

10 years agoMerge "Fix mbsrtowcs(3) src param for finished string."
Dan Albert [Thu, 31 Jul 2014 20:52:19 +0000 (20:52 +0000)]
Merge "Fix mbsrtowcs(3) src param for finished string."

10 years agoFix mbsrtowcs(3) src param for finished string.
Dan Albert [Thu, 31 Jul 2014 18:31:03 +0000 (11:31 -0700)]
Fix mbsrtowcs(3) src param for finished string.

A mistake I made while cleaning this up the first time through.
mbstrtowcs(3) sets the src param to null if it finishes the string.

Change-Id: I6263646e25d9537043b7025fd1dd6ae195f365e2

10 years agoMerge "Proper MB_CUR_MAX."
Dan Albert [Thu, 31 Jul 2014 00:14:42 +0000 (00:14 +0000)]
Merge "Proper MB_CUR_MAX."

10 years agoProper MB_CUR_MAX.
Dan Albert [Wed, 30 Jul 2014 17:53:48 +0000 (10:53 -0700)]
Proper MB_CUR_MAX.

Previously this was hard coded to 4. This is only the case for UTF-8
locales.

As a side effect, this properly reports C.UTF-8 as the default locale
instead of C.

Change-Id: I7c73cc8fe6ffac61d211cd5f75287e36de06f4fc

10 years agoMerge "Fix memchr with a zero length."
Christopher Ferris [Wed, 30 Jul 2014 23:25:50 +0000 (23:25 +0000)]
Merge "Fix memchr with a zero length."

10 years agoFix memchr with a zero length.
Christopher Ferris [Wed, 30 Jul 2014 23:06:56 +0000 (16:06 -0700)]
Fix memchr with a zero length.

The memchr implementation for 64 bit fails if these conditions occur:

- The buffer is 32 byte aligned.
- The buffer contains the character in the first byte.
- The count sent in is zero.

The function should return NULL, but it's not.

Bug: 16676625
Change-Id: Iab33cc7a8b79920350c72f054dff0e0a3cde69ce

10 years agoMerge "Use libunwindbacktrace for debug malloc code."
Christopher Ferris [Wed, 30 Jul 2014 02:16:16 +0000 (02:16 +0000)]
Merge "Use libunwindbacktrace for debug malloc code."