summaryrefslogtreecommitdiffstats
path: root/libc/sysdeps/linux/sparc
diff options
context:
space:
mode:
author"Steven J. Hill" <sjhill@realitydiluted.com>2006-01-07 02:32:27 +0000
committer"Steven J. Hill" <sjhill@realitydiluted.com>2006-01-07 02:32:27 +0000
commite523bd15353350c3480b8a1820a0944b0fa8212e (patch)
tree60485116f9c62c306bb753f12f9d4eb79d16aa4e /libc/sysdeps/linux/sparc
parent3b3434516a3415d7e0f4e1d50c553876dcb337b2 (diff)
downloaduClibc-alpine-e523bd15353350c3480b8a1820a0944b0fa8212e.tar.bz2
uClibc-alpine-e523bd15353350c3480b8a1820a0944b0fa8212e.tar.xz
Big fricking merge from trunk.
Diffstat (limited to 'libc/sysdeps/linux/sparc')
-rw-r--r--libc/sysdeps/linux/sparc/brk.c3
-rw-r--r--libc/sysdeps/linux/sparc/clone.S2
-rw-r--r--libc/sysdeps/linux/sparc/fork.S15
-rw-r--r--libc/sysdeps/linux/sparc/vfork.S15
4 files changed, 18 insertions, 17 deletions
diff --git a/libc/sysdeps/linux/sparc/brk.c b/libc/sysdeps/linux/sparc/brk.c
index 82d6147ca..9e178e34f 100644
--- a/libc/sysdeps/linux/sparc/brk.c
+++ b/libc/sysdeps/linux/sparc/brk.c
@@ -26,7 +26,7 @@
void *__curbrk = 0;
-int brk (void *addr)
+int attribute_hidden __brk (void *addr)
{
void *newbrk;
@@ -47,3 +47,4 @@ int brk (void *addr)
return 0;
}
+strong_alias(__brk,brk)
diff --git a/libc/sysdeps/linux/sparc/clone.S b/libc/sysdeps/linux/sparc/clone.S
index 7421ef672..e9e6b17dd 100644
--- a/libc/sysdeps/linux/sparc/clone.S
+++ b/libc/sysdeps/linux/sparc/clone.S
@@ -59,7 +59,7 @@ __error:
__thread_start:
call %i0
mov %i3,%o0
- call _exit,0
+ call _exit_internal,0
nop
.size __thread_start,.-__thread_start
diff --git a/libc/sysdeps/linux/sparc/fork.S b/libc/sysdeps/linux/sparc/fork.S
index c382f4b4e..dfa109dcd 100644
--- a/libc/sysdeps/linux/sparc/fork.S
+++ b/libc/sysdeps/linux/sparc/fork.S
@@ -19,14 +19,16 @@
/* Code taken from glibc2.2.2/sysdeps/unix/sysv/linux/sparc/vfork.S */
+#include <features.h>
#include <sys/syscall.h>
.text
-.global __libc_fork
-.type __libc_fork,%function
+.global __fork
+.hidden __fork
+.type __fork,%function
.align 4
-__libc_fork:
+__fork:
mov __NR_fork, %g1
ta 0x10
bcc,a 9000f
@@ -43,7 +45,6 @@ __libc_fork:
retl
and %o0, %o1, %o0
-.size __libc_fork,.-__libc_fork
-
-.weak fork
- fork = __libc_fork
+.size __fork,.-__fork
+strong_alias(__fork,fork)
+weak_alias(fork,__libc_fork)
diff --git a/libc/sysdeps/linux/sparc/vfork.S b/libc/sysdeps/linux/sparc/vfork.S
index 854b66182..9b7092c98 100644
--- a/libc/sysdeps/linux/sparc/vfork.S
+++ b/libc/sysdeps/linux/sparc/vfork.S
@@ -23,14 +23,16 @@
#ifndef __NR_vfork
/* No vfork so use fork instead */
-.weak vfork
- vfork = __libc_fork
+
+hidden_strong_alias(__fork,__vfork)
+weak_alias(vfork,__libc_fork)
#else
.text
-.global vfork
-.type vfork,%function
+.global __vfork
+.hidden __vfork
+.type __vfork,%function
.align 4
__vfork:
@@ -51,8 +53,5 @@ __vfork:
and %o0, %o1, %o0
.size __vfork,.-__vfork
-
-.weak vfork
- vfork = __vfork
-
#endif /* __NR_vfork */
+strong_alias(__vfork,vfork)