Merge "Fix the exit syscall stub's name."
diff --git a/libc/SYSCALLS.TXT b/libc/SYSCALLS.TXT
index 8dc2b8a..ca1784f 100644
--- a/libc/SYSCALLS.TXT
+++ b/libc/SYSCALLS.TXT
@@ -24,13 +24,6 @@
 #
 # This file is processed by a python script named gensyscalls.py.
 
-# process management
-void    _exit:exit_group(int)      all
-void    _exit_thread:exit(int)     all
-
-pid_t wait4(pid_t, int*, int, struct rusage*)  all
-int __waitid:waitid(int, pid_t, struct siginfo_t*, int, void*)  all
-
 int     execve(const char*, char* const*, char* const*)  all
 
 uid_t   getuid:getuid32()         arm,x86
@@ -289,6 +282,9 @@
 
 int eventfd:eventfd2(unsigned int, int)  all
 
+void _exit:exit_group(int)  all
+void __exit:exit(int)  all
+
 int futex(void*, int, int, void*, void*, int)  all
 
 int inotify_init1(int)  all
@@ -298,6 +294,9 @@
 int __pselect6:pselect6(int, fd_set*, fd_set*, fd_set*, timespec*, void*)  all
 int __ppoll:ppoll(pollfd*, unsigned int, timespec*, const sigset_t*, size_t)  all
 
+pid_t wait4(pid_t, int*, int, struct rusage*)  all
+int __waitid:waitid(int, pid_t, struct siginfo_t*, int, void*)  all
+
 # ARM-specific
 int     __set_tls:__ARM_NR_set_tls(void*)                                 arm
 int     cacheflush:__ARM_NR_cacheflush(long start, long end, long flags)  arm
diff --git a/libc/arch-arm/syscalls.mk b/libc/arch-arm/syscalls.mk
index e8b6759..9d24a1d 100644
--- a/libc/arch-arm/syscalls.mk
+++ b/libc/arch-arm/syscalls.mk
@@ -3,6 +3,7 @@
 syscall_src += arch-arm/syscalls/__brk.S
 syscall_src += arch-arm/syscalls/__clone.S
 syscall_src += arch-arm/syscalls/__epoll_pwait.S
+syscall_src += arch-arm/syscalls/__exit.S
 syscall_src += arch-arm/syscalls/__fcntl.S
 syscall_src += arch-arm/syscalls/__fcntl64.S
 syscall_src += arch-arm/syscalls/__fstatfs64.S
@@ -34,7 +35,6 @@
 syscall_src += arch-arm/syscalls/__timer_settime.S
 syscall_src += arch-arm/syscalls/__waitid.S
 syscall_src += arch-arm/syscalls/_exit.S
-syscall_src += arch-arm/syscalls/_exit_thread.S
 syscall_src += arch-arm/syscalls/accept.S
 syscall_src += arch-arm/syscalls/acct.S
 syscall_src += arch-arm/syscalls/bind.S
diff --git a/libc/arch-arm/syscalls/_exit_thread.S b/libc/arch-arm/syscalls/__exit.S
similarity index 88%
rename from libc/arch-arm/syscalls/_exit_thread.S
rename to libc/arch-arm/syscalls/__exit.S
index 29f335d..8cdd0fa 100644
--- a/libc/arch-arm/syscalls/_exit_thread.S
+++ b/libc/arch-arm/syscalls/__exit.S
@@ -4,7 +4,7 @@
 #include <linux/err.h>
 #include <machine/asm.h>
 
-ENTRY(_exit_thread)
+ENTRY(__exit)
     mov     ip, r7
     ldr     r7, =__NR_exit
     swi     #0
@@ -13,4 +13,4 @@
     bxls    lr
     neg     r0, r0
     b       __set_errno
-END(_exit_thread)
+END(__exit)
diff --git a/libc/arch-mips/syscalls.mk b/libc/arch-mips/syscalls.mk
index e1c106c..6882877 100644
--- a/libc/arch-mips/syscalls.mk
+++ b/libc/arch-mips/syscalls.mk
@@ -3,6 +3,7 @@
 syscall_src += arch-mips/syscalls/__brk.S
 syscall_src += arch-mips/syscalls/__clone.S
 syscall_src += arch-mips/syscalls/__epoll_pwait.S
+syscall_src += arch-mips/syscalls/__exit.S
 syscall_src += arch-mips/syscalls/__fcntl.S
 syscall_src += arch-mips/syscalls/__fcntl64.S
 syscall_src += arch-mips/syscalls/__fstatfs64.S
@@ -34,7 +35,6 @@
 syscall_src += arch-mips/syscalls/__timer_settime.S
 syscall_src += arch-mips/syscalls/__waitid.S
 syscall_src += arch-mips/syscalls/_exit.S
-syscall_src += arch-mips/syscalls/_exit_thread.S
 syscall_src += arch-mips/syscalls/_flush_cache.S
 syscall_src += arch-mips/syscalls/accept.S
 syscall_src += arch-mips/syscalls/acct.S
diff --git a/libc/arch-mips/syscalls/_exit_thread.S b/libc/arch-mips/syscalls/__exit.S
similarity index 77%
rename from libc/arch-mips/syscalls/_exit_thread.S
rename to libc/arch-mips/syscalls/__exit.S
index 1ed8ffc3..529e49c 100644
--- a/libc/arch-mips/syscalls/_exit_thread.S
+++ b/libc/arch-mips/syscalls/__exit.S
@@ -2,11 +2,11 @@
 
 #include <asm/unistd.h>
     .text
-    .globl _exit_thread
+    .globl __exit
     .align 4
-    .ent _exit_thread
+    .ent __exit
 
-_exit_thread:
+__exit:
     .set noreorder
     .cpload $t9
     li $v0, __NR_exit
@@ -20,4 +20,4 @@
     j $t9
     nop
     .set reorder
-    .end _exit_thread
+    .end __exit
diff --git a/libc/arch-x86/syscalls.mk b/libc/arch-x86/syscalls.mk
index 3b8586b..ade6d55 100644
--- a/libc/arch-x86/syscalls.mk
+++ b/libc/arch-x86/syscalls.mk
@@ -3,6 +3,7 @@
 syscall_src += arch-x86/syscalls/__brk.S
 syscall_src += arch-x86/syscalls/__clone.S
 syscall_src += arch-x86/syscalls/__epoll_pwait.S
+syscall_src += arch-x86/syscalls/__exit.S
 syscall_src += arch-x86/syscalls/__fcntl.S
 syscall_src += arch-x86/syscalls/__fcntl64.S
 syscall_src += arch-x86/syscalls/__fstatfs64.S
@@ -34,7 +35,6 @@
 syscall_src += arch-x86/syscalls/__timer_settime.S
 syscall_src += arch-x86/syscalls/__waitid.S
 syscall_src += arch-x86/syscalls/_exit.S
-syscall_src += arch-x86/syscalls/_exit_thread.S
 syscall_src += arch-x86/syscalls/accept.S
 syscall_src += arch-x86/syscalls/acct.S
 syscall_src += arch-x86/syscalls/bind.S
diff --git a/libc/arch-x86/syscalls/_exit_thread.S b/libc/arch-x86/syscalls/__exit.S
similarity index 90%
rename from libc/arch-x86/syscalls/_exit_thread.S
rename to libc/arch-x86/syscalls/__exit.S
index 1dbac6a..e906ea2 100644
--- a/libc/arch-x86/syscalls/_exit_thread.S
+++ b/libc/arch-x86/syscalls/__exit.S
@@ -4,7 +4,7 @@
 #include <linux/err.h>
 #include <machine/asm.h>
 
-ENTRY(_exit_thread)
+ENTRY(__exit)
     pushl   %ebx
     mov     8(%esp), %ebx
     movl    $__NR_exit, %eax
@@ -19,4 +19,4 @@
 1:
     popl    %ebx
     ret
-END(_exit_thread)
+END(__exit)
diff --git a/libc/arch-x86_64/syscalls.mk b/libc/arch-x86_64/syscalls.mk
index 1ec3e09..c874b61 100644
--- a/libc/arch-x86_64/syscalls.mk
+++ b/libc/arch-x86_64/syscalls.mk
@@ -4,6 +4,7 @@
 syscall_src += arch-x86_64/syscalls/__brk.S
 syscall_src += arch-x86_64/syscalls/__clone.S
 syscall_src += arch-x86_64/syscalls/__epoll_pwait.S
+syscall_src += arch-x86_64/syscalls/__exit.S
 syscall_src += arch-x86_64/syscalls/__getcpu.S
 syscall_src += arch-x86_64/syscalls/__getcwd.S
 syscall_src += arch-x86_64/syscalls/__getpriority.S
@@ -27,7 +28,6 @@
 syscall_src += arch-x86_64/syscalls/__timer_settime.S
 syscall_src += arch-x86_64/syscalls/__waitid.S
 syscall_src += arch-x86_64/syscalls/_exit.S
-syscall_src += arch-x86_64/syscalls/_exit_thread.S
 syscall_src += arch-x86_64/syscalls/accept.S
 syscall_src += arch-x86_64/syscalls/acct.S
 syscall_src += arch-x86_64/syscalls/bind.S
diff --git a/libc/arch-x86_64/syscalls/_exit_thread.S b/libc/arch-x86_64/syscalls/__exit.S
similarity index 85%
rename from libc/arch-x86_64/syscalls/_exit_thread.S
rename to libc/arch-x86_64/syscalls/__exit.S
index 821308f..7e34245 100644
--- a/libc/arch-x86_64/syscalls/_exit_thread.S
+++ b/libc/arch-x86_64/syscalls/__exit.S
@@ -4,7 +4,7 @@
 #include <linux/err.h>
 #include <machine/asm.h>
 
-ENTRY(_exit_thread)
+ENTRY(__exit)
     movl    $__NR_exit, %eax
     syscall
     cmpq    $-MAX_ERRNO, %rax
@@ -15,4 +15,5 @@
     orq     $-1, %rax
 1:
     ret
-END(_exit_thread)
+END(__exit)
+.hidden _C_LABEL(__exit)
diff --git a/libc/bionic/bionic_clone.c b/libc/bionic/bionic_clone.c
index b603a3a..8a17e13 100644
--- a/libc/bionic/bionic_clone.c
+++ b/libc/bionic/bionic_clone.c
@@ -39,14 +39,14 @@
                            int            (*fn)(void *),
                            void          *arg);
 
-extern void _exit_thread(int status);
+extern void __exit(int status);
 
 /* this function is called from the __bionic_clone
  * assembly fragment to call the thread function
  * then exit. */
 extern void __bionic_clone_entry(int (*fn)(void*), void* arg) {
   int status = (*fn)(arg);
-  _exit_thread(status);
+  __exit(status);
 }
 
 int clone(int (*fn)(void*), void* child_stack, int flags, void* arg, ...) {
diff --git a/libc/bionic/pthread.c b/libc/bionic/pthread.c
index 4a4676a..d2f9254 100644
--- a/libc/bionic/pthread.c
+++ b/libc/bionic/pthread.c
@@ -46,7 +46,7 @@
 extern void pthread_debug_mutex_unlock_check(pthread_mutex_t *mutex);
 
 extern void _exit_with_stack_teardown(void * stackBase, size_t stackSize, int status);
-extern void _exit_thread(int status);
+extern void __exit(int status);
 
 int  __futex_wake_ex(volatile void *ftx, int pshared, int val)
 {
@@ -148,7 +148,7 @@
 
     if (user_stack) {
         // Cleaning up this thread's stack is the creator's responsibility, not ours.
-        _exit_thread(0);
+        __exit(0);
     } else {
         // We need to munmap the stack we're running on before calling exit.
         // That's not something we can do in C.
diff --git a/libc/tools/gensyscalls.py b/libc/tools/gensyscalls.py
index 578605d..5595cd7 100755
--- a/libc/tools/gensyscalls.py
+++ b/libc/tools/gensyscalls.py
@@ -240,7 +240,6 @@
         stub += function_alias % { "func" : syscall["func"], "alias" : alias }
 
     # Use hidden visibility for any functions beginning with underscores.
-    # TODO: clean up single-underscore names too.
     if pointer_length == 64 and syscall["func"].startswith("__"):
         stub += '.hidden _C_LABEL(' + syscall["func"] + ')\n'