From 771c60ca859f10e64489ec3aa18e4543436ba688 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Tue, 10 Jan 2006 02:03:25 +0000 Subject: more fixes by Thomas Chou in Bug 618 --- libc/sysdeps/linux/nios/__longjmp.S | 1 + libc/sysdeps/linux/nios/clone.S | 4 ++-- libc/sysdeps/linux/nios/setjmp.S | 1 + libc/sysdeps/linux/nios/vfork.S | 34 +++++++++++++++------------------- 4 files changed, 19 insertions(+), 21 deletions(-) (limited to 'libc') diff --git a/libc/sysdeps/linux/nios/__longjmp.S b/libc/sysdeps/linux/nios/__longjmp.S index c2b1979cc..1b4fa6a56 100644 --- a/libc/sysdeps/linux/nios/__longjmp.S +++ b/libc/sysdeps/linux/nios/__longjmp.S @@ -16,6 +16,7 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include #define _ASM #define _SETJMP_H #include diff --git a/libc/sysdeps/linux/nios/clone.S b/libc/sysdeps/linux/nios/clone.S index a3098f5f8..c4799c5b2 100644 --- a/libc/sysdeps/linux/nios/clone.S +++ b/libc/sysdeps/linux/nios/clone.S @@ -21,7 +21,7 @@ and invokes a function in the right context after its all over. */ #include -#include +#include #include "NM_Macros.S" /* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg); */ @@ -87,5 +87,5 @@ __thread_start: .size __thread_start, .-__thread_start -.globl clone; +.weak clone clone = __clone diff --git a/libc/sysdeps/linux/nios/setjmp.S b/libc/sysdeps/linux/nios/setjmp.S index 70bd75c5d..c2851461c 100644 --- a/libc/sysdeps/linux/nios/setjmp.S +++ b/libc/sysdeps/linux/nios/setjmp.S @@ -16,6 +16,7 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#include #define _ASM #define _SETJMP_H #include diff --git a/libc/sysdeps/linux/nios/vfork.S b/libc/sysdeps/linux/nios/vfork.S index 22b3c30cd..cf95c5a34 100644 --- a/libc/sysdeps/linux/nios/vfork.S +++ b/libc/sysdeps/linux/nios/vfork.S @@ -9,7 +9,11 @@ * * Written by Wentao Xu */ -#include + +#include + +#include +#include #include "NM_Macros.S" #ifndef __NR_vfork @@ -18,15 +22,11 @@ .text .align 2 - .globl errno - .globl vfork - .globl __libc_vfork + .globl __vfork #if defined __HAVE_ELF__ - .type vfork,@function - .type __libc_vfork,@function + .type __vfork,@function #endif -vfork: -__libc_vfork: +__vfork: MOVIP %g1, __NR_vfork trap 63 @@ -34,25 +34,21 @@ __libc_vfork: not %g1 /* (unsigned long) -4096 */ cmp %o0, %g1 skps cc_hi - jmp %o7 - nop - + jmp %o7 + nop + fix_errno: neg %o0 save %sp, -16 MOVIA %g1, __errno_location@h call %g1 - nop + nop st [%o0], %i0 /* store errno */ xor %i0, %i0 subi %i0, 1 /* retval=-1 */ ret - restore - - - - - - + restore +.size __vfork,.-__vfork +strong_alias(__vfork,vfork) -- cgit v1.2.3