beb879662470fb01f8062c173d9e6fc1b76988ee |
|
27-Oct-2016 |
Elliott Hughes <enh@google.com> |
Use ENTRY_PRIVATE in __bionic_clone assembler. Bug: N/A Test: bionic tests Change-Id: Ic651d628be009487a36d0b2e5bcf900b981b1ef9
|
011e111d299284b65af07add523a9dccac356244 |
|
09-Sep-2014 |
Elliott Hughes <enh@google.com> |
Ensure __set_errno is still visible on LP32. The use of the .hidden directive to avoid going via the PLT for __set_errno had the side-effect of actually making __set_errno hidden (which is odd because assembler directives don't usually affect symbols defined in a different file --- you can't even create a weak reference to a symbol that's defined in a different file). This change switches the system call stubs over to a new always-hidden __set_errno_internal and has a visible __set_errno on LP32 just for binary compatibility with old NDK apps. (cherry-pick of 7efad83d430f4d824f2aaa75edea5106f6ff8aae.) Bug: 17423135 Change-Id: I6b6d7a05dda85f923d22e5ffd169a91e23499b7b
|
7efad83d430f4d824f2aaa75edea5106f6ff8aae |
|
09-Sep-2014 |
Elliott Hughes <enh@google.com> |
Ensure __set_errno is still visible on LP32. The use of the .hidden directive to avoid going via the PLT for __set_errno had the side-effect of actually making __set_errno hidden (which is odd because assembler directives don't usually affect symbols defined in a different file --- you can't even create a weak reference to a symbol that's defined in a different file). This change switches the system call stubs over to a new always-hidden __set_errno_internal and has a visible __set_errno on LP32 just for binary compatibility with old NDK apps. Bug: 17423135 Change-Id: I6b6d7a05dda85f923d22e5ffd169a91e23499b7b
|
ebc8cd117a562f387c52ed4e1aeba0fb21f33194 |
|
07-Jun-2014 |
Elliott Hughes <enh@google.com> |
Rename __bionic_clone_entry to __start_thread. This seems a bit less obscure. Change-Id: I7dc528c253b73c861694f67556ad8f919bf92136
|
bd7a892c300a2c257bd7422f56325c575765b09a |
|
05-Jun-2014 |
Elliott Hughes <enh@google.com> |
Fix unwinding through x86-64 __bionic_clone. x86-64 needs these CFI directives to stop unwinding here. I've also cleaned up the assembler a little, and made x86 and x86-64 a little more alike. Bug: 15195760 (cherry picked from commit aeb3016f8132689d1b49d30056005b667e3d2d0e) Change-Id: I511fe238b1ef1a1c16aef735f93bbee9accb0689
|
15a0456d0b7618554ed3d49287e77b6d43a2812a |
|
06-Jun-2014 |
Elliott Hughes <enh@google.com> |
Remove unnecessary instructions from x86/x86_64 syscalls. __set_errno returns -1 exactly so that callers don't need to bother. The other architectures were already taking advantage of this, but no one had ever fixed x86 and x86_64. Change-Id: Ie131494be664f6c4a1bbf8c61bbbed58eac56122
|
aeb3016f8132689d1b49d30056005b667e3d2d0e |
|
05-Jun-2014 |
Elliott Hughes <enh@google.com> |
Fix unwinding through x86-64 __bionic_clone. x86-64 needs these CFI directives to stop unwinding here. I've also cleaned up the assembler a little, and made x86 and x86-64 a little more alike. Bug: 15195760 Change-Id: I40f92c007843c29c933bb6876fe2b4611e1b946b
|
0d236aa3f1e6d31b0c729448ae9d3ed1cad23fb4 |
|
09-May-2014 |
Elliott Hughes <enh@google.com> |
Align the child stack in clone(2). Also let clone(2) set the TLS for x86. Also ensure we initialize the TLS before we clone(2) for all architectures. Change-Id: Ie5fa4466e1c9ee116a281dfedef574c5ba60c0b5
|
fff3c0fdcf2a6f4301a238628fbf8182780a1612 |
|
09-May-2014 |
Elliott Hughes <enh@google.com> |
Align arm64 stacks to 16 bytes in __bionic_clone. Also ensure that arm64/x86-64/x86 assembler uses local labels. (There are are so many non-local labels in arm that fixing them seems out of scope.) Also synchronize the __bionic_clone.S comments. Change-Id: I03b4f84780d996b54d6637a074638196bbb01cd4
|
954cf0d4e2669f91194b45f484152e47efa4f6c7 |
|
09-May-2014 |
Elliott Hughes <enh@google.com> |
Hide the __bionic_clone and __bionic_clone_entry implementation details. clone(2) is the public symbol. Also switch a test from __bionic_clone to clone; testing public API means the test now works on glibc too. Change-Id: If59def26a00c3afadb8a6cf9442094c35a59ffde
|
851e68a2402fa414544e66650e09dfdaac813e51 |
|
20-Feb-2014 |
Elliott Hughes <enh@google.com> |
Unify our assembler macros. Our <machine/asm.h> files were modified from upstream, to the extent that no architecture was actually using the upstream ENTRY or END macros, assuming that architecture even had such a macro upstream. This patch moves everyone to the same macros, with just a few tweaks remaining in the <machine/asm.h> files, which no one should now use directly. I've removed most of the unused cruft from the <machine/asm.h> files, though there's still rather a lot in the mips/mips64 ones. Bug: 12229603 Change-Id: I2fff287dc571ac1087abe9070362fb9420d85d6d
|
507cfe2e10a6c4ad61b9638820ba10bfe881a18c |
|
19-Nov-2013 |
Christopher Ferris <cferris@google.com> |
Add .cfi_startproc/.cfi_endproc to ENTRY/END. Bug: 10414953 Change-Id: I711718098b9f3cc0ba8277778df64557e9c7b2a0
|
36d6188f8cd8b948fb797f11d9620d63d0c2215a |
|
19-Nov-2013 |
Elliott Hughes <enh@google.com> |
Clean up forking and cloning. The kernel now maintains the pthread_internal_t::tid field for us, and __clone was only used in one place so let's inline it so we don't have to leave such a dangerous function lying around. Also rename files to match their content and remove some useless #includes. Change-Id: I24299fb4a940e394de75f864ee36fdabbd9438f9
|