OSDN Git Service
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
Elliott Hughes [Thu, 22 Aug 2013 19:22:16 +0000 (19:22 +0000)]
Merge "Work 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
Brian Carlstrom [Wed, 21 Aug 2013 17:25:48 +0000 (17:25 +0000)]
Merge "Make 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
Christopher Ferris [Fri, 16 Aug 2013 03:13:42 +0000 (03:13 +0000)]
Merge "Change hard-coded temporary directory."
Elliott Hughes [Thu, 15 Aug 2013 22:34:58 +0000 (22:34 +0000)]
Merge "Fix 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
Christopher Ferris [Thu, 15 Aug 2013 20:02:59 +0000 (20:02 +0000)]
Merge "Create optimized __strcpy_chk/__strcat_chk."
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
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
Christopher Ferris [Thu, 15 Aug 2013 18:11:02 +0000 (18:11 +0000)]
Merge "Optimize __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
Brian Carlstrom [Wed, 14 Aug 2013 22:51:47 +0000 (22:51 +0000)]
Merge "Add 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
Michael Wright [Wed, 14 Aug 2013 20:45:19 +0000 (20:45 +0000)]
Merge "Update 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
Elliott Hughes [Tue, 13 Aug 2013 21:40:13 +0000 (21:40 +0000)]
Merge "Make 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
Elliott Hughes [Mon, 12 Aug 2013 20:23:34 +0000 (20:23 +0000)]
Merge "Fix 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
Elliott Hughes [Fri, 9 Aug 2013 00:37:32 +0000 (00:37 +0000)]
Merge "Add futimens."
Elliott Hughes [Fri, 9 Aug 2013 00:13:33 +0000 (17:13 -0700)]
Add futimens.
Bug:
10239370
Change-Id: I518340084103dc339ef8a065d4837d6258a1381d
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"
Christopher Ferris [Thu, 8 Aug 2013 19:12:00 +0000 (19:12 +0000)]
Merge "Optimize strcat/strcpy, small tweaks to strlen. 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
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
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"
Elliott Hughes [Mon, 5 Aug 2013 20:41:50 +0000 (20:41 +0000)]
Merge "syslog needs a valid socket path for _PATH_LOG"
Robert Greenwalt [Mon, 5 Aug 2013 18:45:03 +0000 (18:45 +0000)]
Merge "Fix 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
Elliott Hughes [Sat, 3 Aug 2013 00:58:46 +0000 (00:58 +0000)]
Merge "Add 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>
Ben Cheng [Fri, 2 Aug 2013 23:06:10 +0000 (23:06 +0000)]
Merge "Update 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
Elliott Hughes [Fri, 2 Aug 2013 22:39:08 +0000 (22:39 +0000)]
Merge "libgcc_compat: Introduce __aeabi_lasr for cortex-a9 and higher"
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>
Robert Greenwalt [Thu, 1 Aug 2013 00:47:28 +0000 (00:47 +0000)]
Merge "Tell 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
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."
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
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
Elliott Hughes [Thu, 25 Jul 2013 21:51:05 +0000 (21:51 +0000)]
Merge "Bump 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
Elliott Hughes [Thu, 25 Jul 2013 17:28:59 +0000 (17:28 +0000)]
Merge "Avoid 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
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.
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."
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
Rom Lemarchand [Tue, 23 Jul 2013 20:49:46 +0000 (20:49 +0000)]
Merge "Restore 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>
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>
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.
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."
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
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.
Elliott Hughes [Fri, 19 Jul 2013 23:35:29 +0000 (23:35 +0000)]
Merge "Upgrade 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
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.
Elliott Hughes [Thu, 18 Jul 2013 00:39:35 +0000 (00:39 +0000)]
Merge "Remove 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
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.
Elliott Hughes [Thu, 18 Jul 2013 00:34:22 +0000 (00:34 +0000)]
Merge "[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>
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).
Elliott Hughes [Wed, 17 Jul 2013 20:48:25 +0000 (20:48 +0000)]
Merge "Improve 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
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.
Elliott Hughes [Wed, 17 Jul 2013 20:20:41 +0000 (20:20 +0000)]
Merge "Prevent 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
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
Elliott Hughes [Wed, 17 Jul 2013 20:02:11 +0000 (20:02 +0000)]
Merge "mmap: 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
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."
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."
Guang Zhu [Wed, 17 Jul 2013 03:17:19 +0000 (03:17 +0000)]
Merge "Revert "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
Guang Zhu [Wed, 17 Jul 2013 03:16:51 +0000 (03:16 +0000)]
Merge "Revert "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
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.
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.
Christopher Ferris [Wed, 17 Jul 2013 00:19:42 +0000 (00:19 +0000)]
Merge "Fix assembler errors in generic arm strlen.c."
Christopher Ferris [Wed, 17 Jul 2013 00:19:29 +0000 (00:19 +0000)]
Merge "Add new optimized strlen for arm."
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
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
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.
Elliott Hughes [Tue, 16 Jul 2013 22:47:41 +0000 (22:47 +0000)]
Merge "Clean up our alternate signal stacks."
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.
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.
Elliott Hughes [Tue, 16 Jul 2013 22:31:39 +0000 (15:31 -0700)]
am
f152e386: Merge "EABI syscall cleanup."
* commit '
f152e386fcf477f3f5de9dc020c3660d4f9c4b81':
EABI syscall cleanup.
Elliott Hughes [Tue, 16 Jul 2013 21:32:47 +0000 (14:32 -0700)]
Clean up our alternate signal stacks.
Bug:
8557703
Change-Id: Ie93901dd1c29e9d3bf795b0f0400616d9ef08f75
Elliott Hughes [Tue, 16 Jul 2013 20:38:55 +0000 (20:38 +0000)]
Merge "Improve 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
Elliott Hughes [Tue, 16 Jul 2013 19:52:30 +0000 (19:52 +0000)]
Merge "Clean 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
Elliott Hughes [Tue, 16 Jul 2013 19:35:57 +0000 (19:35 +0000)]
Merge "EABI 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
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.
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."
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