Commit Graph

16577 Commits

Author SHA1 Message Date
Elliott Hughes 204990cc83 Fix x86 __memset_chk.
The stack offsets assumed we'd pushed %ebx. Unlike x86-64 we can't fall
through, but we can avoid repeating work we've already done.

Change-Id: I7e5f9be50983ed6178dd0c0534042da7ea30ad0c
2016-03-24 22:34:47 -07:00
Elliott Hughes e725dc1640 Merge "Remove the __USE_GNU guard from pthread_setname_np again." 2016-03-24 03:28:30 +00:00
Elliott Hughes cc78b252d1 Remove the __USE_GNU guard from pthread_setname_np again.
Caused build breakage, but not spotted by TreeHugger:

  external/libnfc-nxp/Linux_x86/phDal4Nfc.c:737:5: error: implicit declaration of function 'pthread_setname_np' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    pthread_setname_np(pthread_self(), "reader");
    ^

Nice file name.

Change-Id: I102e55718babf4e4f2f2c64066c6a83ed3ac86d3
2016-03-23 20:26:35 -07:00
Elliott Hughes 63322aa555 Merge "Add pthread_getname_np." 2016-03-24 02:47:10 +00:00
Elliott Hughes 725b2a96a7 Add pthread_getname_np.
Also guard both these GNU extensions with _GNU_SOURCE.

Also improve the tests to test each case on both the current thread and
another thread, since the code paths are totally different.

Bug: http://b/27810459
Change-Id: I72b05bca5c5b6ca8ba4585b8edfb716a1c252f92
2016-03-23 17:40:25 -07:00
Greg Hackmann 3c410c855c Merge "genversion-scripts: fix script name in autogenerated comment" 2016-03-24 00:32:35 +00:00
Greg Hackmann e5c872ffb7 genversion-scripts: fix script name in autogenerated comment
Change-Id: I2a304818cfc54d08a08d2e621e4cf74e7ce465dd
Signed-off-by: Greg Hackmann <ghackmann@google.com>
2016-03-23 16:25:42 -07:00
Elliott Hughes 506456c5d1 Merge "Move relocation_packer off libnativehelper." 2016-03-23 18:22:17 +00:00
Elliott Hughes 7de1ff2ad6 Move relocation_packer off libnativehelper.
Also remove other bits of makefile cruft.

Change-Id: I8b69822200959368003a8af9d1595bea9182d6d8
2016-03-22 20:27:39 -07:00
Yabin Cui 68a2f12304 Merge "Fix pthread.pthread_barrier_smoke test." 2016-03-23 02:32:41 +00:00
Yabin Cui 6d1665c207 Merge "CloseArchive() to free memory when OpenArchive fails." 2016-03-23 02:32:30 +00:00
Yabin Cui 722072d65a CloseArchive() to free memory when OpenArchive fails.
Bug: 26962895
Change-Id: I42418eee320ddae857b42572690316c53f638e85
2016-03-22 16:43:24 -07:00
Yabin Cui 81d2797e33 Fix pthread.pthread_barrier_smoke test.
pthread_barrier_smoke test uses WaitUntilThreadSleep() to wait until
BarrierTestHelper threads sleep in pthread_barrier_wait(). But this
is flaky as there a two futex_wait places in pthread_barrier_wait.
This patch modifies this test to avoid using WaitUntilThreadSleep().

Bug: 27780937
Change-Id: I4c36b82cce9345d5088f8854b289dc5bf7a08e8c
2016-03-22 13:45:55 -07:00
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