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
213524ad06
am 1875a51c
: am c8d59fae
: am 32c8ae9d
: Merge "Fixes stdatomic.h test to match C11 spec"
...
* commit '1875a51c51517c559dde901d61d5dd4f00e80c14':
Fixes stdatomic.h test to match C11 spec
2014-05-29 00:59:25 +00:00
Dan Albert
1875a51c51
am c8d59fae
: am 32c8ae9d
: Merge "Fixes stdatomic.h test to match C11 spec"
...
* commit 'c8d59fae72fb95fd7034ccf42664711849ed497f':
Fixes stdatomic.h test to match C11 spec
2014-05-29 00:55:47 +00: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
cd4e99048a
am e4f5ae5d
: am c51e9208
: am dc3fb119
: Merge "Updated ambiguous comment in pthread_mutex_lock."
...
* commit 'e4f5ae5d54865d6f61a32eeba6af846550d2a254':
Updated ambiguous comment in pthread_mutex_lock.
2014-05-28 22:18:10 +00:00
Christopher Ferris
48c544f1c2
am 02d1cfb3
: am fa204cf0
: am 8a405b02
: Merge "Add optimized AArch64 versions of bcopy and wmemmove based on memmove"
...
* commit '02d1cfb366b461d4c64cc87fc0f48bc3eae5fd92':
Add optimized AArch64 versions of bcopy and wmemmove based on memmove
2014-05-28 22:17:56 +00:00
Dan Albert
e4f5ae5d54
am c51e9208
: am dc3fb119
: Merge "Updated ambiguous comment in pthread_mutex_lock."
...
* commit 'c51e92086a574c7209b8310925212f06eaa6ba20':
Updated ambiguous comment in pthread_mutex_lock.
2014-05-28 22:13:22 +00: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
02d1cfb366
am fa204cf0
: am 8a405b02
: Merge "Add optimized AArch64 versions of bcopy and wmemmove based on memmove"
...
* commit 'fa204cf030d79e65851cdd13ff5c073e5b5fd2ac':
Add optimized AArch64 versions of bcopy and wmemmove based on memmove
2014-05-28 21:41:40 +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
dc3178707d
am adb1ec50
: am 784254f2
: am 52f74322
: Merge "Revert "Lose the hand-written futex assembler.""
...
* commit 'adb1ec509e4866eab1f0a7fb8b99dd31e5d8e23f':
Revert "Lose the hand-written futex assembler."
2014-05-28 18:14:34 +00:00
Calin Juravle
15627c1016
am c3f22810
: am 7ca4d736
: am 53e70fe3
: Merge "Remove unnecessary padding in ucontext_t"
...
* commit 'c3f228103f0ff855214e0d15d51a26da7723d3b6':
Remove unnecessary padding in ucontext_t
2014-05-28 18:10:34 +00:00
Narayan Kamath
adb1ec509e
am 784254f2
: am 52f74322
: Merge "Revert "Lose the hand-written futex assembler.""
...
* commit '784254f28ed3e3b40889d060ccbc176361d70dc9':
Revert "Lose the hand-written futex assembler."
2014-05-28 18:08:39 +00: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
Elliott Hughes
0ba998b3c3
am 44445f2d
: am ab4c4686
: am 7fdde4a5
: Merge "Expose __srefill for LP64 until we can fix the NDK."
...
* commit '44445f2d51e946f6ba14101058a1cc6157f2e185':
Expose __srefill for LP64 until we can fix the NDK.
2014-05-28 18:02:08 +00:00
Calin Juravle
c3f228103f
am 7ca4d736
: am 53e70fe3
: Merge "Remove unnecessary padding in ucontext_t"
...
* commit '7ca4d73644284a7ffce83ba62923e46c0a29ab64':
Remove unnecessary padding in ucontext_t
2014-05-28 17:54:08 +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
44445f2d51
am ab4c4686
: am 7fdde4a5
: Merge "Expose __srefill for LP64 until we can fix the NDK."
...
* commit 'ab4c46863d32daf6ed5c98a101317c0108071c1d':
Expose __srefill for LP64 until we can fix the NDK.
2014-05-28 09:15:56 +00: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
0f1a221b3a
am faf071df
: am 9e3a0356
: am 1454ff25
: Merge "Clear the return address register in __bionic_clone."
...
* commit 'faf071dfcb2f6811727dfdfc70574552639b937c':
Clear the return address register in __bionic_clone.
2014-05-27 23:01:16 +00:00
Elliott Hughes
faf071dfcb
am 9e3a0356
: am 1454ff25
: Merge "Clear the return address register in __bionic_clone."
...
* commit '9e3a0356f4f04f4adac31206876ed41db091c808':
Clear the return address register in __bionic_clone.
2014-05-27 22:57:19 +00: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
493b5cb6ac
am 923619f6
: am 4a542fc5
: am 134911d7
: Merge "Use __typeof__() instead of typeof()"
...
* commit '923619f6e22cc76db598c7e0331ce3d1a470943d':
Use __typeof__() instead of typeof()
2014-05-27 22:03:37 +00:00
Dan Albert
923619f6e2
am 4a542fc5
: am 134911d7
: Merge "Use __typeof__() instead of typeof()"
...
* commit '4a542fc5193152d64de23add0c4ee27b8486cdf9':
Use __typeof__() instead of typeof()
2014-05-27 22:01:25 +00: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
0ad4b21658
am 5264518f
: am 946bc952
: am 8e85b4f0
: Merge "Restore __srefill for LP32."
...
* commit '5264518f61f506bb025b17520ae5e0f0bba9cb85':
Restore __srefill for LP32.
2014-05-27 18:48:41 +00:00
Elliott Hughes
5264518f61
am 946bc952
: am 8e85b4f0
: Merge "Restore __srefill for LP32."
...
* commit '946bc9528df170d32033ec5794073896d2406301':
Restore __srefill for LP32.
2014-05-27 18:44:59 +00: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
06b3711de3
am ab4064bc
: am 50c52f74
: am b3c75a1e
: Merge "Restore __srget and __swbuf for LP32."
...
* commit 'ab4064bc9308dca7880ecca6ee52242642dfa2a7':
Restore __srget and __swbuf for LP32.
2014-05-26 08:49:00 +00:00
Elliott Hughes
ab4064bc93
am 50c52f74
: am b3c75a1e
: Merge "Restore __srget and __swbuf for LP32."
...
* commit '50c52f7424c2ef6fdc8fae1635a1c646c28a96a9':
Restore __srget and __swbuf for LP32.
2014-05-26 08:07:13 +00: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