svn commit: trunk/uClibc/libc/sysdeps/linux/nios2

vapier at uclibc.org vapier at uclibc.org
Tue Jan 10 02:06:39 UTC 2006


Author: vapier
Date: 2006-01-09 18:06:25 -0800 (Mon, 09 Jan 2006)
New Revision: 13210

Log:
more fixes by Thomas Chou in Bug 618

Modified:
   trunk/uClibc/libc/sysdeps/linux/nios2/__longjmp.S
   trunk/uClibc/libc/sysdeps/linux/nios2/clone.S
   trunk/uClibc/libc/sysdeps/linux/nios2/crt1.S
   trunk/uClibc/libc/sysdeps/linux/nios2/setjmp.S
   trunk/uClibc/libc/sysdeps/linux/nios2/vfork.S


Changeset:
Modified: trunk/uClibc/libc/sysdeps/linux/nios2/__longjmp.S
===================================================================
--- trunk/uClibc/libc/sysdeps/linux/nios2/__longjmp.S	2006-01-10 02:03:25 UTC (rev 13209)
+++ trunk/uClibc/libc/sysdeps/linux/nios2/__longjmp.S	2006-01-10 02:06:25 UTC (rev 13210)
@@ -11,6 +11,7 @@
  * 
  */
 
+#include <features.h>
 #define _ASM
 #define _SETJMP_H
 #include <bits/setjmp.h>
@@ -45,4 +46,4 @@
   /* return to saved RA */    
     ret
 
-
+.size __longjmp,.-__longjmp

Modified: trunk/uClibc/libc/sysdeps/linux/nios2/clone.S
===================================================================
--- trunk/uClibc/libc/sysdeps/linux/nios2/clone.S	2006-01-10 02:03:25 UTC (rev 13209)
+++ trunk/uClibc/libc/sysdeps/linux/nios2/clone.S	2006-01-10 02:06:25 UTC (rev 13210)
@@ -9,18 +9,18 @@
  * 
  * Written by Wentao Xu <wentao at microtronix.com>
  */
-#include <asm/errno.h>
-#include <asm/unistd.h>
 
+#define _ERRNO_H
+#include <bits/errno.h>
+#include <sys/syscall.h>
+
+#ifdef __NR_clone
 /* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg); */
 
 .text
-.balign 4
-.type	clone, at function
-.globl	clone;
-clone:
-.type	__clone, at function
-.globl	__clone;
+.global __clone
+.type __clone,%function
+.align 4
 __clone:
 	addi    sp,sp,-8
 	mov     r8,r4
@@ -64,3 +64,10 @@
 	ldw     r16,0(sp)
 	addi    sp,sp,8
 	ret
+
+.size __clone,.-__clone
+
+.weak clone
+	clone = __clone
+
+#endif

Modified: trunk/uClibc/libc/sysdeps/linux/nios2/crt1.S
===================================================================
--- trunk/uClibc/libc/sysdeps/linux/nios2/crt1.S	2006-01-10 02:03:25 UTC (rev 13209)
+++ trunk/uClibc/libc/sysdeps/linux/nios2/crt1.S	2006-01-10 02:06:25 UTC (rev 13210)
@@ -47,7 +47,9 @@
     movhi r7, %hi(_init)
     ori  r7, r7, %lo(_init)
 
-    /* reuse the argc stack slot for the 5th arg */
+    /* Allocate space on the stack for 6-7th arg, reuse 5th space */
+    addi sp,sp,-8
+    /* push 5-7th args on stack */
     movhi r8, %hi(_fini)
     ori  r8, r8, %lo(_fini)
     stw  r8, 0(sp)

Modified: trunk/uClibc/libc/sysdeps/linux/nios2/setjmp.S
===================================================================
--- trunk/uClibc/libc/sysdeps/linux/nios2/setjmp.S	2006-01-10 02:03:25 UTC (rev 13209)
+++ trunk/uClibc/libc/sysdeps/linux/nios2/setjmp.S	2006-01-10 02:06:25 UTC (rev 13210)
@@ -11,6 +11,7 @@
  * 
  */
 
+#include <features.h>
 #define _ASM
 #define _SETJMP_H
 #include <bits/setjmp.h>
@@ -47,5 +48,4 @@
     jmp r8
 #endif
 
-
-
+.size __sigsetjmp,.-__sigsetjmp

Modified: trunk/uClibc/libc/sysdeps/linux/nios2/vfork.S
===================================================================
--- trunk/uClibc/libc/sysdeps/linux/nios2/vfork.S	2006-01-10 02:03:25 UTC (rev 13209)
+++ trunk/uClibc/libc/sysdeps/linux/nios2/vfork.S	2006-01-10 02:06:25 UTC (rev 13210)
@@ -9,23 +9,20 @@
  * 
  * Written by Wentao Xu <wentao at microtronix.com>
  */
-#include <asm/unistd.h>
 
-#ifndef __NR_vfork
-#define __NR_vfork __NR_fork /* uClinux-2.0 only has fork which is vfork */
-#endif
+#include <features.h>
 
-   .text
-   .balign 4
-   .globl errno
-   .globl vfork
-   .globl __libc_vfork
-#if defined __HAVE_ELF__
-   .type    vfork, at function
-   .type    __libc_vfork, at function
-#endif
-vfork:
-__libc_vfork:
+#define _ERRNO_H
+#include <bits/errno.h>
+#include <sys/syscall.h>
+
+#ifdef __NR_fork
+.text
+.global	__vfork
+.hidden	__vfork
+.type	__vfork,%function
+.align 4
+
     movui   r2, TRAP_ID_SYSCALL
     movui   r3, __NR_vfork
     trap
@@ -51,3 +48,6 @@
     addi  sp, sp, 8
     ret
 
+.size __vfork,.-__vfork
+strong_alias(__vfork,vfork)
+#endif




More information about the uClibc-cvs mailing list