Get rid of the last remaining use of the syscall macros (for _exit());
Optimize the ppc64 syscall stubs slightly

diff --git a/klibc/SYSCALLS.def b/klibc/SYSCALLS.def
index 220e563..7cc0b97 100644
--- a/klibc/SYSCALLS.def
+++ b/klibc/SYSCALLS.def
@@ -15,6 +15,7 @@
 ;
 ; Process-related syscalls
 ;
+<!i386,x86_64> void _exit,exit::_exit(int)
 <?!ia64> pid_t clone::__clone(unsigned long, void *)
 <?ia64> pid_t clone::__clone2(unsigned long, void *, void *)
 <?!sparc> pid_t fork()
@@ -126,7 +127,8 @@
 int dup(int)
 int dup2(int, int)
 <i386> int fcntl64@varadic::fcntl(int, int, unsigned long)
-<!i386> int fcntl64,fcntl::fcntl(int, int, unsigned long)
+<ppc64> int fcntl(int, int, unsigned long)
+<!i386,ppc64> int fcntl64,fcntl::fcntl(int, int, unsigned long)
 int ioctl(int, int, void *)
 int flock(int, int)
 int _newselect,select::select(int, fd_set *, fd_set *, fd_set *, struct timeval *)
diff --git a/klibc/arch/ppc64/sysstub.ph b/klibc/arch/ppc64/sysstub.ph
index 1469cc6..0a37915 100644
--- a/klibc/arch/ppc64/sysstub.ph
+++ b/klibc/arch/ppc64/sysstub.ph
@@ -16,16 +16,13 @@
     print OUT "\t.align 3\n";
     print OUT "${fname}:\n";
     print OUT "\t.quad .${fname},.TOC.\@tocbase,0\n";
-    print OUT "\t.size ${fname},24\n";
     print OUT "\t.text\n";
     print OUT "\t.type .${fname},\@function\n";
     print OUT "\t.globl .${fname}\n";
     print OUT ".${fname}:\n";
     print OUT "\tli 0,__NR_${sname}\n";
     print OUT "\tsc\n";
-    print OUT "\tmfcr 0\n";
-    print OUT "\trldicl. 9,0,36,63\n";
-    print OUT "\tbeqlr- 0\n";
+    print OUT "\tbnslr\n";
     print OUT "\tb .__syscall_error\n";
     print OUT "\t.size .${fname},.-.${fname}\n";
     close(OUT);
diff --git a/klibc/exitc.c b/klibc/exitc.c
index 6e5d789..8819737 100644
--- a/klibc/exitc.c
+++ b/klibc/exitc.c
@@ -1,9 +1,7 @@
 /*
  * exit.c
  *
- * Note: all programs need exit(), since it's invoked from
- * crt0.o.  Therefore there is no point in breaking apart
- * exit() and _exit().
+ * Implement exit()
  */
 
 #include <stdlib.h>
@@ -14,11 +12,6 @@
 
 #if !defined(__i386__) && !defined(__x86_64__)
 
-#define __NR___exit __NR_exit
-
-/* Syscalls can't return void... */
-static inline _syscall1(int,__exit,int,rv);
-
 /* This allows atexit/on_exit to install a hook */
 __noreturn (*__exit_handler)(int) = _exit;
 
@@ -27,10 +20,4 @@
   __exit_handler(rv);
 }
 
-__noreturn _exit(int rv)
-{
-  __exit(rv);
-  for(;;);
-}
-
 #endif