[roland/tls-init] Tile: Define TLS_DEFINE_INIT_TP
Commit Message
On 6/11/2014 3:29 PM, Roland McGrath wrote:
> Your nptl/ removal all looks good, but I would encourage you to also remove
> the vfork/pt-vfork distinction as we've done for most other machines now.
Something like this?
2014-06-11 Chris Metcalf <cmetcalf@tilera.com>
* sysdeps/unix/sysv/linux/tile/pt-vfork.c: New file.
* sysdeps/unix/sysv/linux/tile/pt-vfork.S: Remove file.
* sysdeps/unix/sysv/linux/tile/vfork.S (__vfork): Make PT_VFORK
conditional code always true.
(__libc_vfork): New alias.
Comments
> Something like this?
Assuming C tail calls to PLT functions really don't ever touch the stack on
Tile machines (as on AArch64), then that looks perfect.
On 6/11/2014 4:53 PM, Roland McGrath wrote:
>> Something like this?
> Assuming C tail calls to PLT functions really don't ever touch the stack on
> Tile machines (as on AArch64), then that looks perfect.
Yes, the pthread __vfork function is just a single jump to __libc_vfork via the PLT.
deleted file mode 100644
@@ -1,2 +0,0 @@
-#define PT_VFORK 1 /* pid is never zero */
-#include "vfork.S"
new file mode 100644
@@ -0,0 +1 @@
+#include <sysdeps/unix/sysv/linux/aarch64/pt-vfork.c>
@@ -38,9 +38,7 @@ ENTRY (__vfork)
shli r13, r13, 31 /* Build 0x80000000. */
}
sub r12, zero, r12 /* Negate it. */
-#ifndef PT_VFORK
CMOVEQZ r12, r12, r13 /* Replace zero pids. */
-#endif
ST4 r11, r12 /* Store the temporary PID. */
{
@@ -67,9 +65,7 @@ ENTRY (__vfork)
CMPEQ r13, r12, r12 /* Test for that value. */
sub r12, zero, r12 /* Re-negate it. */
}
-#ifndef PT_VFORK
CMOVNEZ r12, r13, zero /* Replace zero pids. */
-#endif
ST4 r11, r12 /* Restore the PID. */
1:
BNEZ r1, 0f
@@ -78,3 +74,4 @@ PSEUDO_END (__vfork)
libc_hidden_def (__vfork)
weak_alias (__vfork, vfork)
+strong_alias (__vfork, __libc_vfork)