On Thu, 2008-10-23 at 02:08 +0900, Atsushi Nemoto wrote: Hello Atsushi,
> diff -u uClibc-0.9.30-rc2/libc/sysdeps/linux/mips/syscall.S > uClibc/libc/sysdeps/linux/mips/syscall.S > --- uClibc-0.9.30-rc2/libc/sysdeps/linux/mips/syscall.S 2007-09-15 > 16:25:54.000000000 +0900 > +++ uClibc/libc/sysdeps/linux/mips/syscall.S 2008-10-23 01:53:28.000000000 > +0900 > @@ -32,7 +32,6 @@ > #ifdef __PIC__ > SETUP_GP > #endif > - .set noreorder > move v0, a0 /* Load system call number from first arg. */ > move a0, a1 /* Move the next three args up a register. */ > move a1, a2 > @@ -59,12 +58,12 @@ > lw v0,7*4(sp) /* for system call restarts */ > #endif > syscall /* Do the system call. */ > - bnez a3, 1f > #ifdef __mips64 > daddiu sp,sp,16 > #else > addiu sp,sp,32 > #endif > + bnez a3, 1f > j ra /* Return to caller. */ > 1: > move a0,v0 /* Pass return val to C function. */ Thanks, it works for me (mips1), generated code: 00000000 <syscall>: 0: 3c1c0000 lui gp,0x0 0: R_MIPS_HI16 _gp_disp 4: 279c0000 addiu gp,gp,0 4: R_MIPS_LO16 _gp_disp 8: 0399e021 addu gp,gp,t9 c: 00801021 move v0,a0 10: 00a02021 move a0,a1 14: 00c02821 move a1,a2 18: 00e03021 move a2,a3 1c: 8fa70010 lw a3,16(sp) 20: 8fa80014 lw t0,20(sp) 24: 8fa90018 lw t1,24(sp) 28: 8faa001c lw t2,28(sp) 2c: 27bdffe0 addiu sp,sp,-32 30: afa80010 sw t0,16(sp) 34: afa90014 sw t1,20(sp) 38: afaa0018 sw t2,24(sp) 3c: afa2001c sw v0,28(sp) 40: 8fa2001c lw v0,28(sp) 44: 0000000c syscall 48: 14e00003 bnez a3,58 <syscall+0x58> 4c: 27bd0020 addiu sp,sp,32 50: 03e00008 jr ra 54: 00000000 nop 58: 00402021 move a0,v0 5c: 8f990000 lw t9,0(gp) 5c: R_MIPS_CALL16 __syscall_error 60: 00000000 nop 64: 03200008 jr t9 68: 00000000 nop 6c: 00000000 nop -- Maxime _______________________________________________ uClibc mailing list uClibc@uclibc.org http://busybox.net/cgi-bin/mailman/listinfo/uclibc