OSDN Git Service

android-x86/bionic.git
11 years agoApply upstream commit 943a6621866e9d6e654f5cfe1494378c1fb8957a.
Elliott Hughes [Thu, 22 Aug 2013 21:13:50 +0000 (14:13 -0700)]
Apply upstream commit 943a6621866e9d6e654f5cfe1494378c1fb8957a.

Author: Paul Eggert <eggert@cs.ucla.edu>
Date:   Thu Aug 22 12:47:51 2013 -0700

    * localtime.c: Fix another integer overflow bug in mktime.

    (time2sub): Avoid undefined behavior on time_t overflow.
    Reported by Elliott Hughes in
    <http://mm.icann.org/pipermail/tz/2013-August/019580.html>.

Bug: 10310929
Change-Id: I3bf26f1f91371552e0a3828457d27e22af55acb2

11 years agoMerge "Work around tzcode's reliance on signed overflow."
Elliott Hughes [Thu, 22 Aug 2013 19:22:16 +0000 (19:22 +0000)]
Merge "Work around tzcode's reliance on signed overflow."

11 years agoWork around tzcode's reliance on signed overflow.
Elliott Hughes [Thu, 22 Aug 2013 18:37:32 +0000 (11:37 -0700)]
Work around tzcode's reliance on signed overflow.

I've mailed the tz list about this, and will switch to whatever upstream
fix comes along as soon as it's available.

Bug: 10310929
Change-Id: I36bf3fcf11f5ac9b88137597bac3487a7bb81b0f

11 years agoMerge "Make mips_relocate_got tolerate a missing got"
Brian Carlstrom [Wed, 21 Aug 2013 17:25:48 +0000 (17:25 +0000)]
Merge "Make mips_relocate_got tolerate a missing got"

11 years agoMake mips_relocate_got tolerate a missing got
Brian Carlstrom [Wed, 21 Aug 2013 04:05:44 +0000 (21:05 -0700)]
Make mips_relocate_got tolerate a missing got

Bug: 10094803

(cherry picked from commit 7ee26878065abb494600595349ce58b2b2db3709)

Change-Id: Ib15bccecaee421dc463d46a3956b054051708759

11 years agoMerge "Change hard-coded temporary directory."
Christopher Ferris [Fri, 16 Aug 2013 03:13:42 +0000 (03:13 +0000)]
Merge "Change hard-coded temporary directory."

11 years agoMerge "Fix pthread_getcpuclockid."
Elliott Hughes [Thu, 15 Aug 2013 22:34:58 +0000 (22:34 +0000)]
Merge "Fix pthread_getcpuclockid."

11 years agoFix pthread_getcpuclockid.
Jeff Hao [Thu, 15 Aug 2013 21:51:16 +0000 (14:51 -0700)]
Fix pthread_getcpuclockid.

clock_gettime was returning EINVAL for the values
produced by pthread_getcpuclockid.

Bug: 10346183
Change-Id: Iabe643d7d46110bb311a0367aa0fc737f653208e

11 years agoMerge "Create optimized __strcpy_chk/__strcat_chk."
Christopher Ferris [Thu, 15 Aug 2013 20:02:59 +0000 (20:02 +0000)]
Merge "Create optimized __strcpy_chk/__strcat_chk."

11 years agoChange hard-coded temporary directory.
Christopher Ferris [Thu, 15 Aug 2013 19:54:40 +0000 (12:54 -0700)]
Change hard-coded temporary directory.

The properties tests creates a temporary directory in /data/nativetest,
but this directory might not exist in all circumstances.
Change this to create the temporary directory in /data/local/tmp.

Change-Id: I812d3e24fcd084c5d74055c9faa95b1656f255bc

11 years agoCreate optimized __strcpy_chk/__strcat_chk.
Christopher Ferris [Wed, 7 Aug 2013 20:09:51 +0000 (13:09 -0700)]
Create optimized __strcpy_chk/__strcat_chk.

This change pulls the memcpy code out into a new file so that the
__strcpy_chk and __strcat_chk can use it with an include.

The new versions of the two chk functions uses assembly versions
of strlen and memcpy to implement this check. This allows near
parity with the assembly versions of strcpy/strcat. It also means that
as memcpy implementations get faster, so do the chk functions.

Other included changes:
- Change all of the assembly labels to local labels. The other labels
  confuse gdb and mess up backtracing.
- Add .cfi_startproc and .cfi_endproc directives so that gdb is not
  confused when falling through from one function to another.
- Change all functions to use cfi directives since they are more powerful.
- Move the memcpy_chk fail code outside of the memcpy function definition
  so that backtraces work properly.
- Preserve lr before the calls to __fortify_chk_fail so that the backtrace
  actually works.

Testing:

- Ran the bionic unit tests. Verified all error messages in logs are set
  correctly.
- Ran libc_test, replacing strcpy with __strcpy_chk and replacing
  strcat with __strcat_chk.
- Ran the debugger on nexus10, nexus4, and old nexus7. Verified that the
  backtrace is correct for all fortify check failures. Also verify that
  when falling through from __memcpy_chk to memcpy that the backtrace is
  still correct. Also verified the same for __memset_chk and bzero.
  Verified the two different paths in the cortex-a9 memset routine that
  save variables to the stack still show the backtrace properly.

Bug: 9293744

(cherry-picked from 2be91915dcecc956d14ff281db0c7d216ca98af2)

Change-Id: Ia407b74d3287d0b6af0139a90b6eb3bfaebf2155

11 years agoMerge "Optimize __memset_chk, __memcpy_chk. DO NOT MERGE."
Christopher Ferris [Thu, 15 Aug 2013 18:11:02 +0000 (18:11 +0000)]
Merge "Optimize __memset_chk, __memcpy_chk. DO NOT MERGE."

11 years agoOptimize __memset_chk, __memcpy_chk. DO NOT MERGE.
Christopher Ferris [Thu, 1 Aug 2013 20:13:33 +0000 (13:13 -0700)]
Optimize __memset_chk, __memcpy_chk. DO NOT MERGE.

This change creates assembler versions of __memcpy_chk/__memset_chk
that is implemented in the memcpy/memset assembler code. This change
avoids an extra call to memcpy/memset, instead allowing a simple fall
through to occur from the chk code into the body of the real
implementation.

Testing:

- Ran the libc_test on __memcpy_chk/__memset_chk on all nexus devices.
- Wrote a small test executable that has three calls to __memcpy_chk and
  three calls to __memset_chk. First call dest_len is length + 1. Second
  call dest_len is length. Third call dest_len is length - 1.
  Verified that the first two calls pass, and the third fails. Examined
  the logcat output on all nexus devices to verify that the fortify
  error message was sent properly.
- I benchmarked the new __memcpy_chk and __memset_chk on all systems. For
  __memcpy_chk and large copies, the savings is relatively small (about 1%).
  For small copies, the savings is large on cortex-a15/krait devices
  (between 5% to 30%).
  For cortex-a9 and small copies, the speed up is present, but relatively
  small (about 3% to 5%).
  For __memset_chk and large copies, the savings is also small (about 1%).
  However, all processors show larger speed-ups on small copies (about 30% to
  100%).

Bug: 9293744

Merge from internal master.

(cherry-picked from 7c860db0747f6276a6e43984d43f8fa5181ea936)

Change-Id: I916ad305e4001269460ca6ebd38aaa0be8ac7f52

11 years agoMerge "Add more information to error due to truncated Elf32_Ehdr"
Brian Carlstrom [Wed, 14 Aug 2013 22:51:47 +0000 (22:51 +0000)]
Merge "Add more information to error due to truncated Elf32_Ehdr"

11 years agoAdd more information to error due to truncated Elf32_Ehdr
Brian Carlstrom [Wed, 14 Aug 2013 08:04:19 +0000 (01:04 -0700)]
Add more information to error due to truncated Elf32_Ehdr

Change-Id: I24f30bd0c1120bcf85d77f5c4e69f0fefe9a2478

11 years agoMerge "Update kernel input headers"
Michael Wright [Wed, 14 Aug 2013 20:45:19 +0000 (20:45 +0000)]
Merge "Update kernel input headers"

11 years agoUpdate kernel input headers
Michael Wright [Wed, 14 Aug 2013 15:50:02 +0000 (08:50 -0700)]
Update kernel input headers

To upstream SHA e1c85813f3832b909d1c4309b213bb0a52c79ba5

Change-Id: I72ee3d59c105bc0252b5ca0c49c569d12ec685d1

11 years agoMerge "Make ctype.h a little less unhygienic."
Elliott Hughes [Tue, 13 Aug 2013 21:40:13 +0000 (21:40 +0000)]
Merge "Make ctype.h a little less unhygienic."

11 years agoMake ctype.h a little less unhygienic.
Elliott Hughes [Tue, 13 Aug 2013 21:30:59 +0000 (14:30 -0700)]
Make ctype.h a little less unhygienic.

This caused trouble for stlport.

Change-Id: Id40787c5a2b7a3a4e12fb557efe549778a01cbbd

11 years agoMerge "Fix our missing abs/labs/llabs/imaxabs (and imaxdiv) symbols."
Elliott Hughes [Mon, 12 Aug 2013 20:23:34 +0000 (20:23 +0000)]
Merge "Fix our missing abs/labs/llabs/imaxabs (and imaxdiv) symbols."

11 years agoFix our missing abs/labs/llabs/imaxabs (and imaxdiv) symbols.
Elliott Hughes [Mon, 12 Aug 2013 19:07:05 +0000 (12:07 -0700)]
Fix our missing abs/labs/llabs/imaxabs (and imaxdiv) symbols.

Change-Id: I94c411c22634e43184445c82e7388e51fc46a8cc

11 years agoMerge "Add futimens."
Elliott Hughes [Fri, 9 Aug 2013 00:37:32 +0000 (00:37 +0000)]
Merge "Add futimens."

11 years agoAdd futimens.
Elliott Hughes [Fri, 9 Aug 2013 00:13:33 +0000 (17:13 -0700)]
Add futimens.

Bug: 10239370
Change-Id: I518340084103dc339ef8a065d4837d6258a1381d

11 years agoMerge "Fix strcpy.c that should have been strcpy.S. DO NOT MERGE"
Christopher Ferris [Thu, 8 Aug 2013 19:12:20 +0000 (19:12 +0000)]
Merge "Fix strcpy.c that should have been strcpy.S. DO NOT MERGE"

11 years agoMerge "Optimize strcat/strcpy, small tweaks to strlen. DO NOT MERGE"
Christopher Ferris [Thu, 8 Aug 2013 19:12:00 +0000 (19:12 +0000)]
Merge "Optimize strcat/strcpy, small tweaks to strlen. DO NOT MERGE"

11 years agoFix strcpy.c that should have been strcpy.S. DO NOT MERGE
Christopher Ferris [Tue, 6 Aug 2013 00:08:06 +0000 (17:08 -0700)]
Fix strcpy.c that should have been strcpy.S. DO NOT MERGE

Merge from internal master.

(cherry-picked from 1ce665416307628f4bcaced86faa64bdf9c489c3)

Change-Id: I376b831df42248baadde7202a30a68112f752ff7

11 years agoOptimize strcat/strcpy, small tweaks to strlen. DO NOT MERGE
Christopher Ferris [Mon, 15 Jul 2013 19:49:26 +0000 (12:49 -0700)]
Optimize strcat/strcpy, small tweaks to strlen. DO NOT MERGE

Create one version of strcat/strcpy/strlen for cortex-a15/krait and another
version for cortex-a9.

Tested with the libc_test strcat/strcpy/strlen tests.
Including new tests that verify that the src for strcat/strcpy do not
overread across page boundaries.

NOTE: The handling of unaligned strcpy (same code in strcat) could probably
be optimized further such that the src is read 64 bits at a time instead of
the partial reads occurring now.

strlen improves slightly since it was recently optimized.

Performance improvements for strcpy and strcat (using an empty dest string):

cortex-a9
- Small copies vary from about 5% to 20% as the size gets above 10 bytes.
- Copies >= 1024, about a 60% improvement.
- Unaligned copies, from about 40% improvement.

cortex-a15
- Most small copies exhibit a 100% improvement, a few copies only
  improve by 20%.
- Copies >= 1024, about 150% improvement.
- Unaligned copies, about 100% improvement.

krait
- Most small copies vary widely, but on average 20% improvement, then
  the performance gets better, hitting about a 100% improvement when
  copies 64 bytes of data.
- Copies >= 1024, about 100% improvement.
- When coping MBs of data, about 50% improvement.
- Unaligned copies, about 90% improvement.

As strcat destination strings get larger in size:

cortex-a9
- about 40% improvement for small dst strings (>= 32).
- about 250% improvement for dst strings >= 1024.

cortex-a15
- about 200% improvement for small dst strings (>=32).
- about 250% improvement for dst strings >= 1024.

krait
- about 25% improvement for small dst strings (>=32).
- about 100% improvement for dst strings >=1024.

Merge from internal master.

(cherry-picked from d119b7b6f48fe507088cfb98bcafa99b320fd884)

Change-Id: I296463b251ef9fab004ee4dded2793feca5b547a

11 years agoMerge "Fix stdint.h intptr_t/uintptr_t for x86_64/x32"
Elliott Hughes [Mon, 5 Aug 2013 20:55:24 +0000 (20:55 +0000)]
Merge "Fix stdint.h intptr_t/uintptr_t for x86_64/x32"

11 years agoMerge "syslog needs a valid socket path for _PATH_LOG"
Elliott Hughes [Mon, 5 Aug 2013 20:41:50 +0000 (20:41 +0000)]
Merge "syslog needs a valid socket path for _PATH_LOG"

11 years agoMerge "Fix the detection of alt-network in dns resolver."
Robert Greenwalt [Mon, 5 Aug 2013 18:45:03 +0000 (18:45 +0000)]
Merge "Fix the detection of alt-network in dns resolver."

11 years agoFix the detection of alt-network in dns resolver.
Robert Greenwalt [Fri, 2 Aug 2013 22:24:45 +0000 (15:24 -0700)]
Fix the detection of alt-network in dns resolver.

Used to determine proper A/AAAA record request.

bug:10132565
Change-Id: I7229f6672e879920a6fae58672cddd72db78546c

11 years agoMerge "Add ssse3 implementation of __memcmp16."
Elliott Hughes [Sat, 3 Aug 2013 00:58:46 +0000 (00:58 +0000)]
Merge "Add ssse3 implementation of __memcmp16."

11 years agoAdd ssse3 implementation of __memcmp16.
Alexander Ivchenko [Thu, 27 Jun 2013 08:55:46 +0000 (12:55 +0400)]
Add ssse3 implementation of __memcmp16.

__memcmp16 was missing in x86. Also added C-version for backward
compatibility. Added bionic test for __memcmp16 and for wmemcmp.

Change-Id: I33718441e7ee343cdb021d91dbeaf9ce2d4d7eb4
Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
11 years agoMerge "Update the comments to reflect the current status."
Ben Cheng [Fri, 2 Aug 2013 23:06:10 +0000 (23:06 +0000)]
Merge "Update the comments to reflect the current status."

11 years agoUpdate the comments to reflect the current status.
Ben Cheng [Fri, 2 Aug 2013 22:33:27 +0000 (15:33 -0700)]
Update the comments to reflect the current status.

Change-Id: I3a6348b568230fe8b21d121e5b8d30561a9703c2

11 years agoMerge "libgcc_compat: Introduce __aeabi_lasr for cortex-a9 and higher"
Elliott Hughes [Fri, 2 Aug 2013 22:39:08 +0000 (22:39 +0000)]
Merge "libgcc_compat: Introduce __aeabi_lasr for cortex-a9 and higher"

11 years agoFix stdint.h intptr_t/uintptr_t for x86_64/x32
Pavel Chupin [Tue, 18 Dec 2012 13:25:01 +0000 (17:25 +0400)]
Fix stdint.h intptr_t/uintptr_t for x86_64/x32

Patch is required in NDK headers as well to be able to build multilib
GCC with libgomp support.
It's here: https://android-review.googlesource.com/#/c/62982

Change-Id: I2bec25d8cbca0e5ef1a0857008ececd92f4911be
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
11 years agoMerge "Tell the dns resolver about our domains."
Robert Greenwalt [Thu, 1 Aug 2013 00:47:28 +0000 (00:47 +0000)]
Merge "Tell the dns resolver about our domains."

11 years agoTell the dns resolver about our domains.
Robert Greenwalt [Wed, 31 Jul 2013 23:53:46 +0000 (16:53 -0700)]
Tell the dns resolver about our domains.

A refactor caused us to not tell the resolver about search domains
until after it had done the domain fanout.

bug:6799630
Change-Id: Ibabd8fa5bcc69b1490fc5e329e62eb0f2d1a5e63

11 years agoMerge "Define PTHREAD_KEYS_MAX and _POSIX_THREAD_KEYS_MAX in a POSIX-compliant way."
Elliott Hughes [Tue, 30 Jul 2013 00:29:58 +0000 (00:29 +0000)]
Merge "Define PTHREAD_KEYS_MAX and _POSIX_THREAD_KEYS_MAX in a POSIX-compliant way."

11 years agoDefine PTHREAD_KEYS_MAX and _POSIX_THREAD_KEYS_MAX in a POSIX-compliant way.
Elliott Hughes [Mon, 29 Jul 2013 23:51:45 +0000 (16:51 -0700)]
Define PTHREAD_KEYS_MAX and _POSIX_THREAD_KEYS_MAX in a POSIX-compliant way.

Also make sysconf use PTHREAD_STACK_MIN rather than redefining its
own, different, constant.

Bug: 9997352
Change-Id: I9a8e7d2b18e691439abfb45533e82c36eee9e81d

11 years agolibgcc_compat: Introduce __aeabi_lasr for cortex-a9 and higher
synergydev [Sun, 28 Jul 2013 21:43:00 +0000 (21:43 +0000)]
libgcc_compat: Introduce __aeabi_lasr for cortex-a9 and higher

This is needed when passing -mcpu=cortex-a9 or higher on a modern
toolchain for prebuilt library compatibility

Change-Id: I73eb2393377914ae26216a8c2828ad973d1c1225

11 years agoMerge "Bump the number of TLS slots to 128."
Elliott Hughes [Thu, 25 Jul 2013 21:51:05 +0000 (21:51 +0000)]
Merge "Bump the number of TLS slots to 128."

11 years agoBump the number of TLS slots to 128.
Elliott Hughes [Thu, 25 Jul 2013 21:14:22 +0000 (14:14 -0700)]
Bump the number of TLS slots to 128.

Bug: 9997352
Change-Id: I7bde7228d803e9d4bb83309c5891d54a07e3b025

11 years agoMerge "Avoid sign extension of the mmap offset."
Elliott Hughes [Thu, 25 Jul 2013 17:28:59 +0000 (17:28 +0000)]
Merge "Avoid sign extension of the mmap offset."

11 years agoAvoid sign extension of the mmap offset.
Elliott Hughes [Thu, 25 Jul 2013 17:15:07 +0000 (10:15 -0700)]
Avoid sign extension of the mmap offset.

off_t is signed to support seeking backwards, but that's a liability
when using off_t to represent a subset of a file.

Change-Id: I2a3615166eb16212347eb47f1242e3bfb93c2022

11 years agoam a8d06766: Merge "[MIPS] __dso_handle.S and __dso_handle_so.S not needed."
Elliott Hughes [Wed, 24 Jul 2013 01:07:12 +0000 (18:07 -0700)]
am a8d06766: Merge "[MIPS] __dso_handle.S and __dso_handle_so.S not needed."

* commit 'a8d06766c7674bbfde852e8bfee4200e75ad8f24':
  [MIPS] __dso_handle.S and __dso_handle_so.S not needed.

11 years agoMerge "[MIPS] __dso_handle.S and __dso_handle_so.S not needed."
Elliott Hughes [Wed, 24 Jul 2013 01:05:18 +0000 (01:05 +0000)]
Merge "[MIPS] __dso_handle.S and __dso_handle_so.S not needed."

11 years agoam 061246b6: Merge "Restore dlmalloc mmap threshold to 64k"
Rom Lemarchand [Tue, 23 Jul 2013 20:52:29 +0000 (13:52 -0700)]
am 061246b6: Merge "Restore dlmalloc mmap threshold to 64k"

* commit '061246b600c16a80b246804221b9e3fa65e507d9':
  Restore dlmalloc mmap threshold to 64k

11 years agoMerge "Restore dlmalloc mmap threshold to 64k"
Rom Lemarchand [Tue, 23 Jul 2013 20:49:46 +0000 (20:49 +0000)]
Merge "Restore dlmalloc mmap threshold to 64k"

11 years agoRestore dlmalloc mmap threshold to 64k
Rom Lemarchand [Tue, 23 Jul 2013 18:30:52 +0000 (11:30 -0700)]
Restore dlmalloc mmap threshold to 64k

Restoring DEFAULT_MMAP_THRESHOLD to 64k, the way it was before
999089181ef60bb67e1a49f2cf6f4ec608a7caf8.

This forces allocations in the 64k-256k range to be mmaped.

Change-Id: Iace55ed638edd272b3e94fa6cd2ddd349042be84
Signed-off-by: Rom Lemarchand <romlem@google.com>
11 years ago[MIPS] __dso_handle.S and __dso_handle_so.S not needed.
Pete Delaney [Tue, 23 Jul 2013 04:54:46 +0000 (21:54 -0700)]
[MIPS] __dso_handle.S and __dso_handle_so.S not needed.

Global hidden variable __dso_handle is now declared in:
       bionic/libc/private/__dso_handle.h

Change-Id: I8e951a8d7c65877bafc1be23a7fff6d44d3a2846
Signed-off-by: Pete Delaney <piet.delaney@imgtec.com>
Signed-off-by: Chao-Ying Fu <chao-ying.fu@imgtec.com>
11 years agoam 6fe4a58f: Merge "Move stuff only needed by pthread-timers.c into pthread-timers.c."
Elliott Hughes [Sat, 20 Jul 2013 00:13:33 +0000 (17:13 -0700)]
am 6fe4a58f: Merge "Move stuff only needed by pthread-timers.c into pthread-timers.c."

* commit '6fe4a58f84954523f17114f1f7cf060a3573c073':
  Move stuff only needed by pthread-timers.c into pthread-timers.c.

11 years agoMerge "Move stuff only needed by pthread-timers.c into pthread-timers.c."
Elliott Hughes [Sat, 20 Jul 2013 00:10:31 +0000 (00:10 +0000)]
Merge "Move stuff only needed by pthread-timers.c into pthread-timers.c."

11 years agoMove stuff only needed by pthread-timers.c into pthread-timers.c.
Elliott Hughes [Fri, 19 Jul 2013 23:42:27 +0000 (16:42 -0700)]
Move stuff only needed by pthread-timers.c into pthread-timers.c.

Change-Id: I4915b3fff9c4f5a36b4f51027fb22019c11607b0

11 years agoam e8bd8c2e: Merge "Upgrade mktemp.c to the current upstream version."
Elliott Hughes [Fri, 19 Jul 2013 23:37:52 +0000 (16:37 -0700)]
am e8bd8c2e: Merge "Upgrade mktemp.c to the current upstream version."

* commit 'e8bd8c2ed9c71c73682f29020456934c55f260e3':
  Upgrade mktemp.c to the current upstream version.

11 years agoMerge "Upgrade mktemp.c to the current upstream version."
Elliott Hughes [Fri, 19 Jul 2013 23:35:29 +0000 (23:35 +0000)]
Merge "Upgrade mktemp.c to the current upstream version."

11 years agoUpgrade mktemp.c to the current upstream version.
Elliott Hughes [Fri, 19 Jul 2013 22:20:31 +0000 (15:20 -0700)]
Upgrade mktemp.c to the current upstream version.

Yet another archaic relic containing bugs that had been fixed years before the
Android project even started...

Bug: 9935113
Change-Id: I3c9d019a216efd609ee568cf8c70bc360f357403

11 years agoam f8a66bb3: Merge "Remove some non-unused makefile generality."
Elliott Hughes [Thu, 18 Jul 2013 00:41:43 +0000 (17:41 -0700)]
am f8a66bb3: Merge "Remove some non-unused makefile generality."

* commit 'f8a66bb31204b42f830c1865a795b5f3eb1e0147':
  Remove some non-unused makefile generality.

11 years agoMerge "Remove some non-unused makefile generality."
Elliott Hughes [Thu, 18 Jul 2013 00:39:35 +0000 (00:39 +0000)]
Merge "Remove some non-unused makefile generality."

11 years agoRemove some non-unused makefile generality.
Elliott Hughes [Thu, 18 Jul 2013 00:38:45 +0000 (17:38 -0700)]
Remove some non-unused makefile generality.

MIPS uses .c files like ARM and x86 now.

Change-Id: Ie580647e385121c380316c443ec199dabf657ff8

11 years agoam 8fa9081f: Merge "[MIPS] Rewrite MIPS crtbegin* as C files."
Elliott Hughes [Thu, 18 Jul 2013 00:36:26 +0000 (17:36 -0700)]
am 8fa9081f: Merge "[MIPS] Rewrite MIPS crtbegin* as C files."

* commit '8fa9081f48c4861f83737d59bf2c2c8f21c7da3f':
  [MIPS] Rewrite MIPS crtbegin* as C files.

11 years agoMerge "[MIPS] Rewrite MIPS crtbegin* as C files."
Elliott Hughes [Thu, 18 Jul 2013 00:34:22 +0000 (00:34 +0000)]
Merge "[MIPS] Rewrite MIPS crtbegin* as C files."

11 years ago[MIPS] Rewrite MIPS crtbegin* as C files.
Pete Delaney [Wed, 17 Jul 2013 21:23:29 +0000 (14:23 -0700)]
[MIPS] Rewrite MIPS crtbegin* as C files.

This updates the MIPS arch to be much more in
sync with the commit Nick Kralevich made last
June; see 9d40326830c2bd407427889c554adeb915ee6b4a.

    Rewrite
     crtbegin.S        -> crtbegin.c
     crtbegin_so.S     -> crtbegin_so.c
     __dso_handle.S    -> __dso_handle.c
     __dso_handle_so.S -> __dso_handle_so.c
     atexit.S          -> atexit.c

Previously __do_global_dtors_aux was in the tasks
__FINI_ARRAY__ linked with crtbegin.S and it now being
removed as there is no need to call a destructor just
before terminating a process.

Shared libraries, on the other hand, are linked with
crtbegin_so.c and have a hidden destructor declared
to allow the bionic linker to call __on_dlclose().

Change-Id: Ieb4da5199b54573de05743990e309db381a11cb8
Signed-off-by: Pete Delaney <piet.delaney@imgtec.com>
Signed-off-by: Chao-Ying Fu <chao-ying.fu@imgtec.com>
Signed-off-by: Chris Dearman <chris.dearman@imgtec.com>
11 years agoam 2be511d4: Merge "Improve stack overflow diagnostics (take 2)."
Elliott Hughes [Wed, 17 Jul 2013 20:50:15 +0000 (13:50 -0700)]
am 2be511d4: Merge "Improve stack overflow diagnostics (take 2)."

* commit '2be511d405d47eccc61a6e3c338d1877bf33b4fa':
  Improve stack overflow diagnostics (take 2).

11 years agoMerge "Improve stack overflow diagnostics (take 2)."
Elliott Hughes [Wed, 17 Jul 2013 20:48:25 +0000 (20:48 +0000)]
Merge "Improve stack overflow diagnostics (take 2)."

11 years agoImprove stack overflow diagnostics (take 2).
Elliott Hughes [Wed, 17 Jul 2013 20:33:19 +0000 (13:33 -0700)]
Improve stack overflow diagnostics (take 2).

This reverts commits eb1b07469f2b5a392dc1bfd8adc211aea8c72bc5 and
d14dc3b87fbf80553f1cafa453816b7f11366627, and fixes the bug where
we were calling mmap (which might cause errno to be set) before
__set_tls (which is required to implement errno).

Bug: 8557703
Change-Id: I2c36d00240c56e156e1bb430d8c22a73a068b70c

11 years agoam 40e7a878: Merge "Prevent the madvise(MADV_MERGEABLE) mmap hack from affecting...
Elliott Hughes [Wed, 17 Jul 2013 20:22:39 +0000 (13:22 -0700)]
am 40e7a878: Merge "Prevent the madvise(MADV_MERGEABLE) mmap hack from affecting errno."

* commit '40e7a87864fee75f7af2caf8e1972d0d764135cd':
  Prevent the madvise(MADV_MERGEABLE) mmap hack from affecting errno.

11 years agoMerge "Prevent the madvise(MADV_MERGEABLE) mmap hack from affecting errno."
Elliott Hughes [Wed, 17 Jul 2013 20:20:41 +0000 (20:20 +0000)]
Merge "Prevent the madvise(MADV_MERGEABLE) mmap hack from affecting errno."

11 years agoPrevent the madvise(MADV_MERGEABLE) mmap hack from affecting errno.
Elliott Hughes [Wed, 17 Jul 2013 20:12:26 +0000 (13:12 -0700)]
Prevent the madvise(MADV_MERGEABLE) mmap hack from affecting errno.

Bug: 9889616
Change-Id: I4a7323e0ae5aeb5cbe0da1b2bc7501d83b3a2aa4

11 years agoam b7b36b81: Merge "mmap: Reinstate passing MADV_MERGEABLE on private anonymous maps"
Elliott Hughes [Wed, 17 Jul 2013 20:05:13 +0000 (13:05 -0700)]
am b7b36b81: Merge "mmap: Reinstate passing MADV_MERGEABLE on private anonymous maps"

* commit 'b7b36b819e8029a152859f3204ba2da38a0e2879':
  mmap: Reinstate passing MADV_MERGEABLE on private anonymous maps

11 years agoMerge "mmap: Reinstate passing MADV_MERGEABLE on private anonymous maps"
Elliott Hughes [Wed, 17 Jul 2013 20:02:11 +0000 (20:02 +0000)]
Merge "mmap: Reinstate passing MADV_MERGEABLE on private anonymous maps"

11 years agommap: Reinstate passing MADV_MERGEABLE on private anonymous maps
Rom Lemarchand [Sat, 18 May 2013 00:08:41 +0000 (17:08 -0700)]
mmap: Reinstate passing MADV_MERGEABLE on private anonymous maps

Reinstate mmap calling madvise(MADV_MERGEABLE) removed in
635df850e5037be5093f64a87ec2e0a23bf7a50b

(cherry-pick of c702a904679a36511bead29c51eeac15d81f4fd2.)

Change-Id: I18803fb54701b2b3d8186dff5c678211ee3efa1f

11 years agoam 2cf5a6f6: Merge "Revert "Improve stack overflow diagnostics.""
Guang Zhu [Wed, 17 Jul 2013 03:18:57 +0000 (20:18 -0700)]
am 2cf5a6f6: Merge "Revert "Improve stack overflow diagnostics.""

* commit '2cf5a6f6627549842c0c840ff3615ae942a90ea3':
  Revert "Improve stack overflow diagnostics."

11 years agoam 8c1b9668: Merge "Revert "Clean up our alternate signal stacks.""
Guang Zhu [Wed, 17 Jul 2013 03:18:57 +0000 (20:18 -0700)]
am 8c1b9668: Merge "Revert "Clean up our alternate signal stacks.""

* commit '8c1b96681af91fda86a5493e7f7e4381ce489648':
  Revert "Clean up our alternate signal stacks."

11 years agoMerge "Revert "Improve stack overflow diagnostics.""
Guang Zhu [Wed, 17 Jul 2013 03:17:19 +0000 (03:17 +0000)]
Merge "Revert "Improve stack overflow diagnostics.""

11 years agoRevert "Improve stack overflow diagnostics."
Guang Zhu [Wed, 17 Jul 2013 03:17:05 +0000 (03:17 +0000)]
Revert "Improve stack overflow diagnostics."

This reverts commit aa754dca90487356cabf07ade0e8d88c2630b784.

Change-Id: Ifa76eee31f7f44075eb3a48554315b2693062f44

11 years agoMerge "Revert "Clean up our alternate signal stacks.""
Guang Zhu [Wed, 17 Jul 2013 03:16:51 +0000 (03:16 +0000)]
Merge "Revert "Clean up our alternate signal stacks.""

11 years agoRevert "Clean up our alternate signal stacks."
Guang Zhu [Wed, 17 Jul 2013 03:16:04 +0000 (03:16 +0000)]
Revert "Clean up our alternate signal stacks."

This reverts commit 5cf87951abd23b0b3ebf159e8aa06b02e39527ca.

Change-Id: Idd6ca7d80a018755da3bd315d91193723ce7f3bf

11 years agoam f63c28f0: Merge "Fix assembler errors in generic arm strlen.c."
Christopher Ferris [Wed, 17 Jul 2013 00:22:05 +0000 (17:22 -0700)]
am f63c28f0: Merge "Fix assembler errors in generic arm strlen.c."

* commit 'f63c28f0338fd647e88f1f9300b2220093af1aae':
  Fix assembler errors in generic arm strlen.c.

11 years agoam 6f4fed74: Merge "Add new optimized strlen for arm."
Christopher Ferris [Wed, 17 Jul 2013 00:21:55 +0000 (17:21 -0700)]
am 6f4fed74: Merge "Add new optimized strlen for arm."

* commit '6f4fed74cb9405c0f5322307085d15afed6be764':
  Add new optimized strlen for arm.

11 years agoMerge "Fix assembler errors in generic arm strlen.c."
Christopher Ferris [Wed, 17 Jul 2013 00:19:42 +0000 (00:19 +0000)]
Merge "Fix assembler errors in generic arm strlen.c."

11 years agoMerge "Add new optimized strlen for arm."
Christopher Ferris [Wed, 17 Jul 2013 00:19:29 +0000 (00:19 +0000)]
Merge "Add new optimized strlen for arm."

11 years agoFix assembler errors in generic arm strlen.c.
Christopher Ferris [Mon, 15 Jul 2013 20:55:45 +0000 (13:55 -0700)]
Fix assembler errors in generic arm strlen.c.

Tested using a static version of the strlen libc_test program
on a nexus7 that uses the generic code.

Merge from internal master.

(cherry-picked from d8d10a8994472e40d19301b7087806630877b4d5)

Change-Id: I88f7dc01dc5b5c3ac2d5580d92153bc1bc36c564

11 years agoAdd new optimized strlen for arm.
Christopher Ferris [Wed, 10 Jul 2013 21:31:03 +0000 (14:31 -0700)]
Add new optimized strlen for arm.

This optimized version is primarily targeted at cortex-a15.

Tested on all nexus devices using the system/extras/libc_test strlen test.
Tested alignments from 1 to 32 that are powers of 2.
Tested that strlen does not cross page boundaries at all alignments.

Speed improvements listed below:

cortex-a15
- Sizes >= 32 bytes, ~75% improvement.
- Sizes >= 1024 bytes, ~250% improvement.

cortex-a9
- Sizes >= 32 bytes, ~75% improvement.
- Sizes >= 1024 bytes, ~85% improvement.

krait
- Sizes >= 32 bytes, ~95% improvement.
- Sizes >= 1024 bytes, ~160% improvement.

Merge from internal master.

(cherry-picked from 2fc071797743b88a9a47427d46baed7c7b24f4d2)

Change-Id: I1ceceb4e745fd68e9d946f96d1d42e0cdaff6ccf

11 years agoam f35e0c14: Merge "Clean up our alternate signal stacks."
Elliott Hughes [Tue, 16 Jul 2013 22:50:18 +0000 (15:50 -0700)]
am f35e0c14: Merge "Clean up our alternate signal stacks."

* commit 'f35e0c149f1a6801a5af7c339f84d81ae05c3adf':
  Clean up our alternate signal stacks.

11 years agoMerge "Clean up our alternate signal stacks."
Elliott Hughes [Tue, 16 Jul 2013 22:47:41 +0000 (22:47 +0000)]
Merge "Clean up our alternate signal stacks."

11 years agoam 026867c7: Merge "Improve stack overflow diagnostics."
Elliott Hughes [Tue, 16 Jul 2013 22:31:40 +0000 (15:31 -0700)]
am 026867c7: Merge "Improve stack overflow diagnostics."

* commit '026867c7dcce7828212dcd4a61806146908e9039':
  Improve stack overflow diagnostics.

11 years agoam 9562d38d: Merge "Clean up __builtin_expect usage."
Elliott Hughes [Tue, 16 Jul 2013 22:31:39 +0000 (15:31 -0700)]
am 9562d38d: Merge "Clean up __builtin_expect usage."

* commit '9562d38df1e4aba941b3433cfd0922fee5ea258b':
  Clean up __builtin_expect usage.

11 years agoam f152e386: Merge "EABI syscall cleanup."
Elliott Hughes [Tue, 16 Jul 2013 22:31:39 +0000 (15:31 -0700)]
am f152e386: Merge "EABI syscall cleanup."

* commit 'f152e386fcf477f3f5de9dc020c3660d4f9c4b81':
  EABI syscall cleanup.

11 years agoClean up our alternate signal stacks.
Elliott Hughes [Tue, 16 Jul 2013 21:32:47 +0000 (14:32 -0700)]
Clean up our alternate signal stacks.

Bug: 8557703
Change-Id: Ie93901dd1c29e9d3bf795b0f0400616d9ef08f75

11 years agoMerge "Improve stack overflow diagnostics."
Elliott Hughes [Tue, 16 Jul 2013 20:38:55 +0000 (20:38 +0000)]
Merge "Improve stack overflow diagnostics."

11 years agoImprove stack overflow diagnostics.
Elliott Hughes [Tue, 16 Jul 2013 20:14:24 +0000 (13:14 -0700)]
Improve stack overflow diagnostics.

We notify debuggerd of problems by installing signal handlers. That's
fine except for when the signal is caused by us running off the end of
a thread's stack and into the guard page.

Bug: 8557703
Change-Id: I1ef65b4bb3bbca7e9a9743056177094921e60ed3

11 years agoMerge "Clean up __builtin_expect usage."
Elliott Hughes [Tue, 16 Jul 2013 19:52:30 +0000 (19:52 +0000)]
Merge "Clean up __builtin_expect usage."

11 years agoClean up __builtin_expect usage.
Elliott Hughes [Tue, 16 Jul 2013 19:45:46 +0000 (12:45 -0700)]
Clean up __builtin_expect usage.

Also remove some dead code; our malloc debugging doesn't use this
any more.

Change-Id: Id69cf182371f5f37d40b5bbd08f2744ade286e66

11 years agoMerge "EABI syscall cleanup."
Elliott Hughes [Tue, 16 Jul 2013 19:35:57 +0000 (19:35 +0000)]
Merge "EABI syscall cleanup."

11 years agoEABI syscall cleanup.
Elliott Hughes [Tue, 16 Jul 2013 18:52:24 +0000 (11:52 -0700)]
EABI syscall cleanup.

We cleaned up the auto-generated ones a while back to not touch
the stack unnecessarily if they have <= 4 arguments. This patch
cleans up some hand-crafted ones.

Also improve comments in clone.S.

Change-Id: I8850bf98f2b26829385315304472a760e6880ed8

11 years agoam 67750c85: Merge "Fix pthread_getattr_np, pthread_attr_setguardsize, and pthread_at...
Elliott Hughes [Mon, 15 Jul 2013 23:42:34 +0000 (16:42 -0700)]
am 67750c85: Merge "Fix pthread_getattr_np, pthread_attr_setguardsize, and pthread_attr_setstacksize."

* commit '67750c8515573cba294b2f3840249dd7f7d817d5':
  Fix pthread_getattr_np, pthread_attr_setguardsize, and pthread_attr_setstacksize.

11 years agoMerge "Fix pthread_getattr_np, pthread_attr_setguardsize, and pthread_attr_setstacksize."
Elliott Hughes [Mon, 15 Jul 2013 23:39:38 +0000 (23:39 +0000)]
Merge "Fix pthread_getattr_np, pthread_attr_setguardsize, and pthread_attr_setstacksize."

11 years agoFix pthread_getattr_np, pthread_attr_setguardsize, and pthread_attr_setstacksize.
Elliott Hughes [Mon, 15 Jul 2013 21:51:07 +0000 (14:51 -0700)]
Fix pthread_getattr_np, pthread_attr_setguardsize, and pthread_attr_setstacksize.

pthread_getattr_np was reporting the values supplied to us, not the values we
actually used, which is kinda the whole point of pthread_getattr_np.

pthread_attr_setguardsize and pthread_attr_setstacksize were reporting EINVAL
for any size that wasn't a multiple of the system page size. This is
unnecessary. We can just round like POSIX suggests and glibc already does.

Also improve the error reporting for pthread_create failures.

Change-Id: I7ebc518628a8a1161ec72e111def911d500bba71