@@ -233,7 +233,7 @@ _dl_do_reloc (struct elf_resolve *tpnt, struct r_scope_elem *scope,
else
#endif
{
- td->arg = symbol_addr + tls_tpnt->l_tls_offset;
+ td->arg = (void*)(symbol_addr + tls_tpnt->l_tls_offset);
td->entry = _dl_tlsdesc_return;
}
@@ -69,7 +69,8 @@ thread_start:
blr x10
/* We are done, pass the return value through x0. */
- b HIDDEN_JUMPTARGET(_exit)
+ mov x8, #SYS_ify(exit)
+ svc 0x0
cfi_endproc
.size thread_start, .-thread_start
@@ -23,7 +23,7 @@
replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
and the process ID of the new process to the old process. */
-ENTRY (vfork)
+ENTRY (__vfork)
mov x0, #0x4111 /* CLONE_VM | CLONE_VFORK | SIGCHLD */
mov x1, sp
@@ -33,5 +33,7 @@ ENTRY (vfork)
b.cs .Lsyscall_error
RET
-PSEUDO_END (vfork)
-libc_hidden_def (vfork)
+PSEUDO_END (__vfork)
+libc_hidden_def(vfork)
+
+weak_alias (__vfork, vfork)