include/asm/unistd.h:397: warning: conflicting types for built-in function '_exit' Just remove the dang thing - nobody uses _exit(). Except for the vmware stub, which breaks. So I kindly exported do_exit() to kernel modules, just for vmware... --- include/asm-i386/unistd.h | 2 -- kernel/exit.c | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff -puN include/asm-i386/unistd.h~gcc-35-exit-fix include/asm-i386/unistd.h --- 25/include/asm-i386/unistd.h~gcc-35-exit-fix 2004-02-02 22:42:12.000000000 -0800 +++ 25-akpm/include/asm-i386/unistd.h 2004-02-02 22:42:12.000000000 -0800 @@ -385,7 +385,6 @@ __syscall_return(type,__res); \ * won't be any messing with the stack from main(), but we define * some others too. */ -#define __NR__exit __NR_exit static inline _syscall0(pid_t,setsid) static inline _syscall3(int,write,int,fd,const char *,buf,off_t,count) static inline _syscall3(int,read,int,fd,char *,buf,off_t,count) @@ -394,7 +393,6 @@ static inline _syscall1(int,dup,int,fd) static inline _syscall3(int,execve,const char *,file,char **,argv,char **,envp) static inline _syscall3(int,open,const char *,file,int,flag,int,mode) static inline _syscall1(int,close,int,fd) -static inline _syscall1(void,_exit,int,exitcode) static inline _syscall3(pid_t,waitpid,pid_t,pid,int *,wait_stat,int,options) #endif diff -puN kernel/exit.c~gcc-35-exit-fix kernel/exit.c --- 25/kernel/exit.c~gcc-35-exit-fix 2004-02-02 22:42:12.000000000 -0800 +++ 25-akpm/kernel/exit.c 2004-02-02 22:42:12.000000000 -0800 @@ -794,6 +794,7 @@ NORET_TYPE void do_exit(long code) /* Avoid "noreturn function does return". */ for (;;) ; } +EXPORT_SYMBOL(do_exit); NORET_TYPE void complete_and_exit(struct completion *comp, long code) { _