If you take a look at scall64-n32.S, you'll find that there's no hole after sendfile64. But in <asm/unistd.h> there is. So glibc gets built with the wrong number for clock_gettime and confusion ensues... Index: unistd.h =================================================================== RCS file: /home/cvs/linux/include/asm-mips/unistd.h,v retrieving revision 1.55 diff -u -p -r1.55 unistd.h --- unistd.h 9 Oct 2003 15:43:22 -0000 1.55 +++ unistd.h 23 Dec 2003 17:56:25 -0000 @@ -769,17 +769,17 @@ #define __NR_statfs64 (__NR_Linux + 217) #define __NR_fstatfs64 (__NR_Linux + 218) #define __NR_sendfile64 (__NR_Linux + 219) -#define __NR_timer_create (__NR_Linux + 221) -#define __NR_timer_settime (__NR_Linux + 222) -#define __NR_timer_gettime (__NR_Linux + 223) -#define __NR_timer_getoverrun (__NR_Linux + 224) -#define __NR_timer_delete (__NR_Linux + 225) -#define __NR_clock_settime (__NR_Linux + 226) -#define __NR_clock_gettime (__NR_Linux + 227) -#define __NR_clock_getres (__NR_Linux + 228) -#define __NR_clock_nanosleep (__NR_Linux + 229) -#define __NR_tgkill (__NR_Linux + 230) -#define __NR_utimes (__NR_Linux + 231) +#define __NR_timer_create (__NR_Linux + 220) +#define __NR_timer_settime (__NR_Linux + 221) +#define __NR_timer_gettime (__NR_Linux + 222) +#define __NR_timer_getoverrun (__NR_Linux + 223) +#define __NR_timer_delete (__NR_Linux + 224) +#define __NR_clock_settime (__NR_Linux + 225) +#define __NR_clock_gettime (__NR_Linux + 226) +#define __NR_clock_getres (__NR_Linux + 227) +#define __NR_clock_nanosleep (__NR_Linux + 228) +#define __NR_tgkill (__NR_Linux + 229) +#define __NR_utimes (__NR_Linux + 230) /* * Offset of the last N32 flavoured syscall -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer