Commit graph

7897 commits

Author SHA1 Message Date
Christopher Ferris
738b0cc5e9 Fix overflow testing in sbrk.
Modify the overflow testing for sbrk.

Bug: 15188366

Change-Id: Ia83f85f7c1789454d872279bd41f38f1ce6b8a34
2014-05-29 10:51:22 -07:00
Elliott Hughes
1ee46520ca Return the actual success result from __futex.
futex(2) can return non-zero successes.

Bug: 15195455
Change-Id: I7818bc922a5a2df31228ff72c169320b5e69a544
2014-05-29 10:27:55 -07:00
Elliott Hughes
ad73e2f58c am ef023873: Merge "Minor style cleanup of some code I had to look at."
* commit 'ef023873e2bbd83f4fde69fd427e04ef1eb6e769':
  Minor style cleanup of some code I had to look at.
2014-05-29 16:15:52 +00:00
Elliott Hughes
c3930812df am 0bdd668f: Merge "Upgrade to tzdata2014d."
* commit '0bdd668f05b22b44547a2b9f05e506166b22f02a':
  Upgrade to tzdata2014d.
2014-05-29 16:15:51 +00:00
Elliott Hughes
ef023873e2 Merge "Minor style cleanup of some code I had to look at." 2014-05-29 16:12:02 +00:00
Elliott Hughes
0bdd668f05 Merge "Upgrade to tzdata2014d." 2014-05-29 16:09:40 +00:00
Elliott Hughes
b7f136a01f Upgrade to tzdata2014d.
There are no substantive changes to the data in this release. I'm applying
this just for completeness.

Change-Id: Ibe953969cb16db4d8d1ddb7dd3c943316e6e46b4
2014-05-28 20:33:33 -07:00
Elliott Hughes
624996026b Minor style cleanup of some code I had to look at.
(It turns out that this is the only place we're saying __inline in C++.)

Change-Id: I8095e67a385087817c47caab9a621f82f8e0cfc8
2014-05-28 20:30:40 -07:00
Elliott Hughes
3388c7be52 am fae42a83: Merge "Revert "Revert "Lose the hand-written futex assembler."""
* commit 'fae42a837ae7f880de9561c7b3c2b18e4a531e90':
  Revert "Revert "Lose the hand-written futex assembler.""
2014-05-29 03:16:18 +00:00
Elliott Hughes
fae42a837a Merge "Revert "Revert "Lose the hand-written futex assembler.""" 2014-05-29 03:13:23 +00:00
Elliott Hughes
b30aff405a Revert "Revert "Lose the hand-written futex assembler.""
The problem with the original patch was that using syscall(3) means that
errno can be set, but pthread_create(3) was abusing the TLS errno slot as
a pthread_mutex_t for the thread startup handshake.

There was also a mistake in the check for syscall failures --- it should
have checked against -1 instead of 0 (not just because that's the default
idiom, but also here because futex(2) can legitimately return values > 0).

This patch stops abusing the TLS errno slot and adds a pthread_mutex_t to
pthread_internal_t instead. (Note that for LP64 sizeof(pthread_mutex_t) >
sizeof(uintptr_t), so we could potentially clobber other TLS slots too.)

I've also rewritten the LP32 compatibility stubs to directly reuse the
code from the .h file.

This reverts commit 75c55ff84e.

Bug: 15195455
Change-Id: I6ffb13e5cf6a35d8f59f692d94192aae9ab4593d
2014-05-28 18:31:15 -07:00
Dan Albert
c8d59fae72 am 32c8ae9d: Merge "Fixes stdatomic.h test to match C11 spec"
* commit '32c8ae9de0e51ac64efcfd2e5da34382deee959e':
  Fixes stdatomic.h test to match C11 spec
2014-05-29 00:52:18 +00:00
Dan Albert
32c8ae9de0 Merge "Fixes stdatomic.h test to match C11 spec" 2014-05-29 00:50:26 +00:00
Dan Albert
6b3beb23d6 Fixes stdatomic.h test to match C11 spec
C11 defines the expected value to atomic_compare_exchange_* as being non-atomic
types. Using an atomic type is a syntax error in clang.

http://en.cppreference.com/w/c/atomic/atomic_compare_exchange

Change-Id: I74de1061fa1fc50d835451792d902000f368200e
2014-05-28 16:53:08 -07:00
Dan Albert
c51e92086a am dc3fb119: Merge "Updated ambiguous comment in pthread_mutex_lock."
* commit 'dc3fb119497382fc8d9c3b87c5ef8321141330dc':
  Updated ambiguous comment in pthread_mutex_lock.
2014-05-28 22:10:22 +00:00
Dan Albert
dc3fb11949 Merge "Updated ambiguous comment in pthread_mutex_lock." 2014-05-28 22:00:50 +00:00
Christopher Ferris
fa204cf030 am 8a405b02: Merge "Add optimized AArch64 versions of bcopy and wmemmove based on memmove"
* commit '8a405b027a9c8b3a614016f4824a03fa252e9e1e':
  Add optimized AArch64 versions of bcopy and wmemmove based on memmove
2014-05-28 21:38:01 +00:00
Christopher Ferris
8a405b027a Merge "Add optimized AArch64 versions of bcopy and wmemmove based on memmove" 2014-05-28 21:35:04 +00:00
Brigid Smith
ff03a7aaad Updated ambiguous comment in pthread_mutex_lock.
The comment used the phrase "normal case" when it more specifically refers to the "recursive case," so I changed it to that.

Change-Id: I8335cce4dee933c6a463aee653b28bd986b5b5e4
2014-05-28 11:48:49 -07:00
Narayan Kamath
784254f28e am 52f74322: Merge "Revert "Lose the hand-written futex assembler.""
* commit '52f74322b1d72d57146107f32ee2c76c421bf4b1':
  Revert "Lose the hand-written futex assembler."
2014-05-28 18:06:05 +00:00
Narayan Kamath
52f74322b1 Merge "Revert "Lose the hand-written futex assembler."" 2014-05-28 18:04:26 +00:00
Narayan Kamath
75c55ff84e Revert "Lose the hand-written futex assembler."
This reverts commit ced906c849.

Causes issues on art / dalvik due to a broken return value
check and other undiagnosed issues.

bug: 15195455

Change-Id: I5d6bbb389ecefb0e33a5237421a9d56d32a9317c
2014-05-28 18:03:01 +00:00
Calin Juravle
7ca4d73644 am 53e70fe3: Merge "Remove unnecessary padding in ucontext_t"
* commit '53e70fe30646453a5deba0730337cb9674cd6fc8':
  Remove unnecessary padding in ucontext_t
2014-05-28 17:50:43 +00:00
Calin Juravle
53e70fe306 Merge "Remove unnecessary padding in ucontext_t" 2014-05-28 17:48:06 +00:00
Calin Juravle
bdca3802c9 Remove unnecessary padding in ucontext_t
- removed extra padding from ucontex_t on x86, x86_64 and mips
- force ucontext_t struct to use 64 bits for the sigmask on all arches
(previsouly wrong since sigset_t on arm and x86 is only 32 bits)
- arm and arm64 continue to use padding to match glibc sigset_t

This brings Bionic on par with the kernel w.r.t ucontext padding.

Bug: 12828904
Change-Id: Ia8915ace694ecb4695603a334e697985f4c3e7aa
2014-05-28 17:24:28 +01:00
Elliott Hughes
ab4c46863d am 7fdde4a5: Merge "Expose __srefill for LP64 until we can fix the NDK."
* commit '7fdde4a58b304a7c4f87987f3fde16bdded63a76':
  Expose __srefill for LP64 until we can fix the NDK.
2014-05-28 05:22:38 +00:00
Elliott Hughes
7fdde4a58b Merge "Expose __srefill for LP64 until we can fix the NDK." 2014-05-28 05:19:45 +00:00
Elliott Hughes
f6d2ca2696 Expose __srefill for LP64 until we can fix the NDK.
The LP64 has a duplicate copy of part of stdio, and relies
on bionic supplying this part. We should remove the hack from
the NDK, at least for LP64, and then revert this.

Bug: 15291317
Change-Id: I75e06e130188ca0aeb9d50dfe3a3e48a1d3968b7
2014-05-27 21:23:36 -07:00
Elliott Hughes
9e3a0356f4 am 1454ff25: Merge "Clear the return address register in __bionic_clone."
* commit '1454ff2574f0bee9fb3646c9c6dd30443e0dbd38':
  Clear the return address register in __bionic_clone.
2014-05-27 22:55:34 +00:00
Elliott Hughes
1454ff2574 Merge "Clear the return address register in __bionic_clone." 2014-05-27 22:53:52 +00:00
Elliott Hughes
e7dccdf683 Clear the return address register in __bionic_clone.
The unwinder will end up on the parent thread's stack if the return
address register is not cleared.

Bug: 14270816
Bug: 15195760
Change-Id: Iebcdf5cc881cad245643bb193760de35eb7f8b19
2014-05-27 15:49:51 -07:00
Dan Albert
4a542fc519 am 134911d7: Merge "Use __typeof__() instead of typeof()"
* commit '134911d75deab2b5babc175c894c002e875dfed6':
  Use __typeof__() instead of typeof()
2014-05-27 21:59:33 +00:00
Dan Albert
134911d75d Merge "Use __typeof__() instead of typeof()" 2014-05-27 21:57:24 +00:00
Dan Albert
a7821b7121 Use __typeof__() instead of typeof()
typeof() is a gcc builtin and is not always available (such as clang when
-std=c*). Both gcc and clang always expose __typeof__(), so just use that.

Change-Id: I75e2a990acc35f6f39b2c353f6548100ec03c67f
2014-05-27 12:47:54 -07:00
Elliott Hughes
946bc9528d am 8e85b4f0: Merge "Restore __srefill for LP32."
* commit '8e85b4f00e8816f22bf5b5f20b1f978432f2ae08':
  Restore __srefill for LP32.
2014-05-27 18:41:52 +00:00
Elliott Hughes
8e85b4f00e Merge "Restore __srefill for LP32." 2014-05-27 18:38:56 +00:00
Elliott Hughes
aa50585d96 Restore __srefill for LP32.
The NDK apparently includes an android_support.a library that
refers to __srefill in its copy of the vsnprintf implementation.

Bug: 15249361
Change-Id: Ic2cf6f21290b3146c42fbe0624f5e4d54f6194b4
2014-05-27 11:22:39 -07:00
Elliott Hughes
50c52f7424 am b3c75a1e: Merge "Restore __srget and __swbuf for LP32."
* commit 'b3c75a1e8ffbf575c2a425b34fd67ff8077da299':
  Restore __srget and __swbuf for LP32.
2014-05-26 05:10:46 +00:00
Elliott Hughes
b3c75a1e8f Merge "Restore __srget and __swbuf for LP32." 2014-05-26 05:07:20 +00:00
Elliott Hughes
21296dfe53 am bc904896: Merge "Add C11 <stdatomic.h>."
* commit 'bc904896a6f846e2648922d46324ea626ae9e1d1':
  Add C11 <stdatomic.h>.
2014-05-25 17:51:05 +00:00
Elliott Hughes
bc904896a6 Merge "Add C11 <stdatomic.h>." 2014-05-25 17:48:19 +00:00
Elliott Hughes
35d90bb6ec Restore __srget and __swbuf for LP32.
Anthony King <anthonydking@slimroms.net> reports that for Grouper the
Nvidia GL blobs need access to __swbuf. This is because the old <stdio.h>
had inline getc and putc implementations that directly referred to these
symbols.

Change-Id: I11a7b5550018ecc93d8f195c99857759669b2906
2014-05-25 10:38:25 -07:00
Elliott Hughes
06c9662a2f am 255789e4: Merge "Restore tkill for LP32."
* commit '255789e4d12d95dbb8e34cfae7fdc58514843ba5':
  Restore tkill for LP32.
2014-05-25 03:18:14 +00:00
Elliott Hughes
255789e4d1 Merge "Restore tkill for LP32." 2014-05-25 03:14:39 +00:00
Anthony King
001707363d Restore tkill for LP32.
libmono from Unity still requires tkill(2).

Change-Id: I37a1994b08086c7fedb5c78ea0dadf2d72bc1463
Signed-off-by: Anthony King <anthonydking@slimroms.net>
2014-05-24 20:13:13 -07:00
Elliott Hughes
85df714f91 am d4f37110: Merge "Restore __futex_wake and __futex_wait for LP32."
* commit 'd4f37110ce4b8439dd30540565f7c73e00cfe2fb':
  Restore __futex_wake and __futex_wait for LP32.
2014-05-25 03:11:02 +00:00
Elliott Hughes
d4f37110ce Merge "Restore __futex_wake and __futex_wait for LP32." 2014-05-25 03:09:00 +00:00
Elliott Hughes
bd3a98c6b9 Restore __futex_wake and __futex_wait for LP32.
Should fix Skype:

  java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "__futex_wake" referenced by "libsliq.so"...

Bug: 15196718
Change-Id: I8a18e18d830f0436e820cbde577121bd92710803
2014-05-24 17:19:36 -07:00
Elliott Hughes
e6c57fcb05 Add C11 <stdatomic.h>.
Bug: 14903517
Change-Id: I631dbfdaa698cf7fea8e3b5e18a32586383e62a5
2014-05-23 20:06:03 -07:00
Bernhard Rosenkraenzer
6f2bde3441 Add optimized AArch64 versions of bcopy and wmemmove based on memmove
Add optimized versions of bcopy and wmemmove for AArch64 based on the
memmove implementation

Change-Id: I82fbe8a7221ce224c567ffcfed7a94a53640fca8
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
2014-05-23 18:49:57 -07:00