Commit graph

16564 commits

Author SHA1 Message Date
Elliott Hughes
6212e5dfad Merge "Add a CTS test to ensure AT_HWCAP2 is reported." 2016-03-21 18:20:02 +00:00
Elliott Hughes
ebb4895c68 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
2016-03-21 11:13:16 -07:00
Christopher Ferris
5f1de52eca Merge "Fix race in malloc debug option free_track." 2016-03-17 17:52:55 +00:00
Christopher Ferris
d057f449a0 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." 2016-03-17 01:01:27 +00:00
Christopher Ferris
d0919623a2 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
2016-03-16 17:38:08 -07:00
Douglas Leung
f3b9c89d3a 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
2016-03-16 17:02:17 -07:00
Dan Willemsen
18576fea69 Merge "Android.bp: Add missing <complex.h> functions." 2016-03-16 22:52:58 +00:00
Dan Willemsen
fc1fb955b3 Android.bp: Add missing <complex.h> functions.
Android.bp port of https://android-review.googlesource.com/207658

Change-Id: I4bedd193a20f7dfb97d0a8bbb67c8472e727be87
2016-03-16 15:46:35 -07:00
Elliott Hughes
8d0af0bf80 Merge "Add missing <complex.h> functions." 2016-03-16 18:12:34 +00:00
Elliott Hughes
b31d2705d5 Merge "Fix PTHREAD_THREADS_MAX." 2016-03-16 17:07:49 +00:00
Elliott Hughes
545afa16bb 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
2016-03-15 17:23:12 -07:00
Christopher Ferris
bca25411b8 Merge "Fix problem where unknown option is not an error." 2016-03-15 17:47:02 +00:00
Josh Gao
3f36834fe8 Merge "Silence false positive warnings on GCC." 2016-03-15 02:43:10 +00:00
Josh Gao
d7878529b8 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
2016-03-14 18:28:14 -07:00
Christopher Ferris
a4b1425275 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
2016-03-14 15:34:22 -07:00
Christopher Ferris
0e00c168ce Merge "Init functions after debug malloc succeeds." 2016-03-12 21:15:34 +00:00
Elliott Hughes
9ee6adb003 Add missing <complex.h> functions.
FreeBSD doesn't seem interested in having low-quality implementations of
these functions:

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

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

Bug: http://b/27555792
Change-Id: I6b72003cf749b1043f006377a01fffe5e1d659bc
2016-03-11 15:03:25 -08:00
Dan Willemsen
470de8f4d7 Merge "Update Android.bp with x86 rint optimizations" 2016-03-11 21:07:49 +00:00
Dan Willemsen
603acbf9ca Update Android.bp with x86 rint optimizations
Change-Id: Ie14a40301d6dd601b34b3f2341947daf6294e2cb
2016-03-11 13:01:20 -08:00
Christopher Ferris
20f2c1ebd5 Init functions after debug malloc succeeds.
Do not initialize all of the global function pointers associated with
debug malloc until the initialization has completed correctly.

Bug: 27600760
Change-Id: I0621b54bc2d9fab63805d7992d384e550d6fed2a
2016-03-11 12:27:02 -08:00
Colin Cross
6a20add813 Merge changes I3f1c1310,Ia8dc3481,I6b19fd63
* changes:
  malloc_debug: fix multiplication overflow in debug_calloc
  malloc_debug: round 0 byte allocations up to 1 byte
  malloc_debug: iterate: use usable_size
2016-03-11 01:13:52 +00:00
Yabin Cui
7c66b17547 Merge "Adjust test to let it pass on libhoudini." 2016-03-10 23:58:32 +00:00
Colin Cross
7877df66c2 malloc_debug: fix multiplication overflow in debug_calloc
The over flow check for nmemb * bytes in debug_calloc is incorrect,
use the builtin overflow functions to check for multiplication and
addition overflow.

Change-Id: I3f1c13102621bc5380be1f69caa88dba2118f3cb
(cherry picked from commit 239838608d)
2016-03-10 14:53:02 -08:00
Colin Cross
9567c7b82c malloc_debug: round 0 byte allocations up to 1 byte
0 byte allocations can cause problems if they are immediately followed
by another allocation with no header, as both allocations will have the
same address.  Treat 0 byte allocations as 1 byte allocations so that
debug_iterate will return separate addresses for them.

Bug: 27578580
Change-Id: Ia8dc3481fa7062391e9b3ae58a36e8d47e7ee557
(cherry picked from commit 15af478080)
2016-03-10 14:53:02 -08:00
Colin Cross
baa7c6f307 malloc_debug: iterate: use usable_size
malloc_iterate with malloc debug enabled was returning allocation sizes
using the requested size instead of usable size.  If anything wrote
pointers above the requested size but below the usable size, those
pointers would be invisible to libmemunreachable and referenced
allocations could be reported as a leak.

Bug: 27107100
Change-Id: I6b19fd631f68ce93b3aee408cc3d296ec457bd01
(cherry picked from commit b23c6606d2)
2016-03-10 14:53:02 -08:00
Yabin Cui
61e4d461e5 Adjust test to let it pass on libhoudini.
When using libhoudini to run arm code on x86 platforms, we can't
assume the main thread allocates local variables at the stack
declared by kernel.

Change-Id: Id9457f47fc338a3103fdee25a7a6e622915e7090
2016-03-10 14:28:43 -08:00
Elliott Hughes
ffd19ee64d Merge "Improve and fix the stack-protector tests." 2016-03-10 16:12:27 +00:00
Josh Gao
79c9ff28f9 Merge "debuggerd: rethrow the full signal we receive, always." 2016-03-10 00:00:54 +00:00
Josh Gao
61cf3f3e03 debuggerd: rethrow the full signal we receive, always.
The previous code assumed that returning would be sufficient to rethrow
signals like SIGSEGV. This is not true, for example,  in the case where a
SIGSEGV is sent via kill(2). We were previously only sending the signal
to ourselves in some cases, because using kill(2) would lose information
in the siginfo_t argument. Use rt_tgsigqueueinfo(2) instead to preserve
its contents.

Bug: http://b/27367422
Change-Id: I1be822818d5905461979c7e12dc4e9c25049273b
2016-03-09 14:56:37 -08:00
Elliott Hughes
fc69a8ad5f Improve and fix the stack-protector tests.
Bug: http://b/26888853
Change-Id: I505dbf7d5934f7247fb639f55dd6a9341df3947b
2016-03-09 14:50:03 -08:00
Elliott Hughes
2512310fd4 Merge "Switch bionic over to google-benchmark." 2016-03-09 20:36:52 +00:00
Erik Kline
192539f524 Merge "Don't leak sockets if setsockopt() or fchown() fail." 2016-03-09 04:18:22 +00:00
Erik Kline
7bbb181bf0 Don't leak sockets if setsockopt() or fchown() fail.
Change-Id: Idcf8c08ff50d21c3a04b7ef80c4044f3f9762f2b
2016-03-09 12:11:13 +09:00
Elliott Hughes
55dc0c5eea Merge "Add x86 optimization of rint functions and tests" 2016-03-08 22:01:07 +00:00
jzha136
f3ea093ebb Add x86 optimization of rint functions and tests
Change-Id: I5e7696ff9bcb1efc2625100ef8565b68dca2326c
Signed-off-by: Jingwei Zhang <jingwei.zhang@intel.com>
2016-03-07 18:31:26 -08:00
Elliott Hughes
281e06ba69 Switch bionic over to google-benchmark.
Also removes the old benchmarking library.

Change-Id: I4791ae69fa5dea03644d3d411c60b7c6d1fceae3
2016-03-07 13:50:50 -08:00
Elliott Hughes
59eab81e16 Merge "Minor clock_getcpuclockid optimization."
am: b83bd7bc25

* commit 'b83bd7bc256d5121ec3ff1babc3bc08d7f04eea2':
  Minor clock_getcpuclockid optimization.
2016-03-07 21:17:00 +00:00
Elliott Hughes
b83bd7bc25 Merge "Minor clock_getcpuclockid optimization." 2016-03-07 21:08:53 +00:00
Elliott Hughes
2bf5332f23 Minor clock_getcpuclockid optimization.
Don't ask the kernel to copy data to userspace if we don't need it.
(Noticed while cleaning up sysconf to not call clock_getres.)

Change-Id: Icc0f7559775b8a2dcefe638ce831d06b75d67122
2016-03-07 11:54:02 -08:00
Josh Gao
8598f1fd66 Merge "forkpty: set the output fd to -1 on the slave side."
am: ba2232d013

* commit 'ba2232d0132274433a269eeccbbbd3be7f8f4384':
  forkpty: set the output fd to -1 on the slave side.
2016-03-05 03:08:52 +00:00
Josh Gao
ba2232d013 Merge "forkpty: set the output fd to -1 on the slave side." 2016-03-05 03:04:37 +00:00
Elliott Hughes
a990df3b7f Merge "Don\'t call clock_getres in sysconf."
am: a703498f0c

* commit 'a703498f0c416f58fdfdf3cdb208fffee60c9bb8':
  Don't call clock_getres in sysconf.
2016-03-05 02:36:55 +00:00
Elliott Hughes
a703498f0c Merge "Don't call clock_getres in sysconf." 2016-03-05 02:31:08 +00:00
Elliott Hughes
d2b8de2cd1 Don't call clock_getres in sysconf.
There are a hundred other reasons why we can't run on kernels old enough
to not have all the clocks covered by sysconf.

This was causing trouble for jemalloc 4.1.0 in a seccomp-constrained process
because jemalloc 4.1.0 introduced a call to sysconf that caused us to make
clock_getres syscalls for the first time, leading to SIGSYS.

Bug: http://b/27408522
Change-Id: I2eb6986d871bc03cbef278e5617734409c39e057
2016-03-04 18:28:53 -08:00
Josh Gao
6d7c1ee9ff forkpty: set the output fd to -1 on the slave side.
glibc, FreeBSD, OpenBSD, and Darwin all just leave the fd unchanged and
possibly uninitialized. Setting it to -1 seems friendlier, though.

Bug: http://b/27506278
Change-Id: I7acdc8eecbea4404d5fb4ba0b4d572245a323886
2016-03-04 18:04:41 -08:00
Douglas Leung
5bfd3ffd36 Merge "Add __memset_chk assembler for mips32 and mips64."
am: c4d2bede15

* commit 'c4d2bede1592dd82dce9bfc6ebecdc414a79490b':
  Add __memset_chk assembler for mips32 and mips64.
2016-03-05 01:11:43 +00:00
Elliott Hughes
c4d2bede15 Merge "Add __memset_chk assembler for mips32 and mips64." 2016-03-05 01:07:10 +00:00
Douglas Leung
29d4b71426 Add __memset_chk assembler for mips32 and mips64.
Change-Id: I365b1f345c695850c30ccb1a9f56f254ce182000
2016-03-04 15:15:00 -08:00
Dimitry Ivanov
b4e083ed05 Merge "libm: rename LIBC_PRIVATE to LIBC_DEPRECATED"
am: 015f2e803a

* commit '015f2e803abd9403808a1829e40c2609e3cd4fde':
  libm: rename LIBC_PRIVATE to LIBC_DEPRECATED
2016-03-04 21:32:14 +00:00
Chih-Hung Hsieh
91c9943c95 Merge "Enable test with clang aarch64."
am: cb9e4530a8

* commit 'cb9e4530a8fbf6eb078476610b71e4ca41988cb2':
  Enable test with clang aarch64.
2016-03-04 21:32:07 +00:00