Tux changes sys_write() declaration, but not on every architecture. Sparc needs this fix to build. --- ./arch/sparc/kernel/sys_sunos.c.orig 2004-08-22 15:04:29.000000000 +0200 +++ ./arch/sparc/kernel/sys_sunos.c 2004-08-22 15:04:53.000000000 +0200 @@ -1064,8 +1064,8 @@ return ret; } -extern asmlinkage ssize_t sys_read(unsigned int fd,char *buf,int count); -extern asmlinkage ssize_t sys_write(unsigned int fd,char *buf,int count); +extern asmlinkage ssize_t sys_read(unsigned int fd, char *buf, int count); +extern asmlinkage ssize_t sys_write(unsigned int fd, const char *buf, int count); extern asmlinkage int sys_recv(int fd, void * ubuf, int size, unsigned flags); extern asmlinkage int sys_send(int fd, void * buff, int len, unsigned flags); extern asmlinkage int sys_accept(int fd, struct sockaddr *sa, int *addrlen); --- ./arch/sparc64/kernel/sys_sunos32.c.orig 2004-08-22 13:47:29.000000000 +0200 +++ ./arch/sparc64/kernel/sys_sunos32.c 2004-08-22 15:06:09.000000000 +0200 @@ -1214,7 +1214,7 @@ } extern asmlinkage ssize_t sys_read(unsigned int fd, char *buf, unsigned long count); -extern asmlinkage ssize_t sys_write(unsigned int fd, char *buf, unsigned long count); +extern asmlinkage ssize_t sys_write(unsigned int fd, const char *buf, unsigned long count); extern asmlinkage int sys_recv(int fd, void *ubuf, size_t size, unsigned flags); extern asmlinkage int sys_send(int fd, void *buff, size_t len, unsigned flags); extern asmlinkage int sys_accept(int fd, struct sockaddr *sa, int *addrlen);