am ad8fb26a
: Merge "Fix the exit syscall stub\'s name."
* commit 'ad8fb26aff16b239fd79fd7223435bdae2462f72': Fix the exit syscall stub's name.
This commit is contained in:
commit
155f5c5ff9
@ -24,13 +24,6 @@
|
|||||||
#
|
#
|
||||||
# This file is processed by a python script named gensyscalls.py.
|
# 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
|
int execve(const char*, char* const*, char* const*) all
|
||||||
|
|
||||||
uid_t getuid:getuid32() arm,x86
|
uid_t getuid:getuid32() arm,x86
|
||||||
@ -289,6 +282,9 @@ int __epoll_pwait:epoll_pwait(int, struct epoll_event*, int, int, const sigset_t
|
|||||||
|
|
||||||
int eventfd:eventfd2(unsigned int, int) all
|
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 futex(void*, int, int, void*, void*, int) all
|
||||||
|
|
||||||
int inotify_init1(int) all
|
int inotify_init1(int) all
|
||||||
@ -298,6 +294,9 @@ int inotify_rm_watch(int, unsigned int) all
|
|||||||
int __pselect6:pselect6(int, fd_set*, fd_set*, fd_set*, timespec*, void*) all
|
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
|
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
|
# ARM-specific
|
||||||
int __set_tls:__ARM_NR_set_tls(void*) arm
|
int __set_tls:__ARM_NR_set_tls(void*) arm
|
||||||
int cacheflush:__ARM_NR_cacheflush(long start, long end, long flags) arm
|
int cacheflush:__ARM_NR_cacheflush(long start, long end, long flags) arm
|
||||||
|
@ -3,6 +3,7 @@ syscall_src :=
|
|||||||
syscall_src += arch-arm/syscalls/__brk.S
|
syscall_src += arch-arm/syscalls/__brk.S
|
||||||
syscall_src += arch-arm/syscalls/__clone.S
|
syscall_src += arch-arm/syscalls/__clone.S
|
||||||
syscall_src += arch-arm/syscalls/__epoll_pwait.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/__fcntl.S
|
||||||
syscall_src += arch-arm/syscalls/__fcntl64.S
|
syscall_src += arch-arm/syscalls/__fcntl64.S
|
||||||
syscall_src += arch-arm/syscalls/__fstatfs64.S
|
syscall_src += arch-arm/syscalls/__fstatfs64.S
|
||||||
@ -34,7 +35,6 @@ syscall_src += arch-arm/syscalls/__timer_gettime.S
|
|||||||
syscall_src += arch-arm/syscalls/__timer_settime.S
|
syscall_src += arch-arm/syscalls/__timer_settime.S
|
||||||
syscall_src += arch-arm/syscalls/__waitid.S
|
syscall_src += arch-arm/syscalls/__waitid.S
|
||||||
syscall_src += arch-arm/syscalls/_exit.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/accept.S
|
||||||
syscall_src += arch-arm/syscalls/acct.S
|
syscall_src += arch-arm/syscalls/acct.S
|
||||||
syscall_src += arch-arm/syscalls/bind.S
|
syscall_src += arch-arm/syscalls/bind.S
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
#include <machine/asm.h>
|
#include <machine/asm.h>
|
||||||
|
|
||||||
ENTRY(_exit_thread)
|
ENTRY(__exit)
|
||||||
mov ip, r7
|
mov ip, r7
|
||||||
ldr r7, =__NR_exit
|
ldr r7, =__NR_exit
|
||||||
swi #0
|
swi #0
|
||||||
@ -13,4 +13,4 @@ ENTRY(_exit_thread)
|
|||||||
bxls lr
|
bxls lr
|
||||||
neg r0, r0
|
neg r0, r0
|
||||||
b __set_errno
|
b __set_errno
|
||||||
END(_exit_thread)
|
END(__exit)
|
@ -3,6 +3,7 @@ syscall_src :=
|
|||||||
syscall_src += arch-mips/syscalls/__brk.S
|
syscall_src += arch-mips/syscalls/__brk.S
|
||||||
syscall_src += arch-mips/syscalls/__clone.S
|
syscall_src += arch-mips/syscalls/__clone.S
|
||||||
syscall_src += arch-mips/syscalls/__epoll_pwait.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/__fcntl.S
|
||||||
syscall_src += arch-mips/syscalls/__fcntl64.S
|
syscall_src += arch-mips/syscalls/__fcntl64.S
|
||||||
syscall_src += arch-mips/syscalls/__fstatfs64.S
|
syscall_src += arch-mips/syscalls/__fstatfs64.S
|
||||||
@ -34,7 +35,6 @@ syscall_src += arch-mips/syscalls/__timer_gettime.S
|
|||||||
syscall_src += arch-mips/syscalls/__timer_settime.S
|
syscall_src += arch-mips/syscalls/__timer_settime.S
|
||||||
syscall_src += arch-mips/syscalls/__waitid.S
|
syscall_src += arch-mips/syscalls/__waitid.S
|
||||||
syscall_src += arch-mips/syscalls/_exit.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/_flush_cache.S
|
||||||
syscall_src += arch-mips/syscalls/accept.S
|
syscall_src += arch-mips/syscalls/accept.S
|
||||||
syscall_src += arch-mips/syscalls/acct.S
|
syscall_src += arch-mips/syscalls/acct.S
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
#include <asm/unistd.h>
|
#include <asm/unistd.h>
|
||||||
.text
|
.text
|
||||||
.globl _exit_thread
|
.globl __exit
|
||||||
.align 4
|
.align 4
|
||||||
.ent _exit_thread
|
.ent __exit
|
||||||
|
|
||||||
_exit_thread:
|
__exit:
|
||||||
.set noreorder
|
.set noreorder
|
||||||
.cpload $t9
|
.cpload $t9
|
||||||
li $v0, __NR_exit
|
li $v0, __NR_exit
|
||||||
@ -20,4 +20,4 @@ _exit_thread:
|
|||||||
j $t9
|
j $t9
|
||||||
nop
|
nop
|
||||||
.set reorder
|
.set reorder
|
||||||
.end _exit_thread
|
.end __exit
|
@ -3,6 +3,7 @@ syscall_src :=
|
|||||||
syscall_src += arch-x86/syscalls/__brk.S
|
syscall_src += arch-x86/syscalls/__brk.S
|
||||||
syscall_src += arch-x86/syscalls/__clone.S
|
syscall_src += arch-x86/syscalls/__clone.S
|
||||||
syscall_src += arch-x86/syscalls/__epoll_pwait.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/__fcntl.S
|
||||||
syscall_src += arch-x86/syscalls/__fcntl64.S
|
syscall_src += arch-x86/syscalls/__fcntl64.S
|
||||||
syscall_src += arch-x86/syscalls/__fstatfs64.S
|
syscall_src += arch-x86/syscalls/__fstatfs64.S
|
||||||
@ -34,7 +35,6 @@ syscall_src += arch-x86/syscalls/__timer_gettime.S
|
|||||||
syscall_src += arch-x86/syscalls/__timer_settime.S
|
syscall_src += arch-x86/syscalls/__timer_settime.S
|
||||||
syscall_src += arch-x86/syscalls/__waitid.S
|
syscall_src += arch-x86/syscalls/__waitid.S
|
||||||
syscall_src += arch-x86/syscalls/_exit.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/accept.S
|
||||||
syscall_src += arch-x86/syscalls/acct.S
|
syscall_src += arch-x86/syscalls/acct.S
|
||||||
syscall_src += arch-x86/syscalls/bind.S
|
syscall_src += arch-x86/syscalls/bind.S
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
#include <machine/asm.h>
|
#include <machine/asm.h>
|
||||||
|
|
||||||
ENTRY(_exit_thread)
|
ENTRY(__exit)
|
||||||
pushl %ebx
|
pushl %ebx
|
||||||
mov 8(%esp), %ebx
|
mov 8(%esp), %ebx
|
||||||
movl $__NR_exit, %eax
|
movl $__NR_exit, %eax
|
||||||
@ -19,4 +19,4 @@ ENTRY(_exit_thread)
|
|||||||
1:
|
1:
|
||||||
popl %ebx
|
popl %ebx
|
||||||
ret
|
ret
|
||||||
END(_exit_thread)
|
END(__exit)
|
@ -4,6 +4,7 @@ syscall_src += arch-x86_64/syscalls/__arch_prctl.S
|
|||||||
syscall_src += arch-x86_64/syscalls/__brk.S
|
syscall_src += arch-x86_64/syscalls/__brk.S
|
||||||
syscall_src += arch-x86_64/syscalls/__clone.S
|
syscall_src += arch-x86_64/syscalls/__clone.S
|
||||||
syscall_src += arch-x86_64/syscalls/__epoll_pwait.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/__getcpu.S
|
||||||
syscall_src += arch-x86_64/syscalls/__getcwd.S
|
syscall_src += arch-x86_64/syscalls/__getcwd.S
|
||||||
syscall_src += arch-x86_64/syscalls/__getpriority.S
|
syscall_src += arch-x86_64/syscalls/__getpriority.S
|
||||||
@ -27,7 +28,6 @@ syscall_src += arch-x86_64/syscalls/__timer_gettime.S
|
|||||||
syscall_src += arch-x86_64/syscalls/__timer_settime.S
|
syscall_src += arch-x86_64/syscalls/__timer_settime.S
|
||||||
syscall_src += arch-x86_64/syscalls/__waitid.S
|
syscall_src += arch-x86_64/syscalls/__waitid.S
|
||||||
syscall_src += arch-x86_64/syscalls/_exit.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/accept.S
|
||||||
syscall_src += arch-x86_64/syscalls/acct.S
|
syscall_src += arch-x86_64/syscalls/acct.S
|
||||||
syscall_src += arch-x86_64/syscalls/bind.S
|
syscall_src += arch-x86_64/syscalls/bind.S
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
#include <machine/asm.h>
|
#include <machine/asm.h>
|
||||||
|
|
||||||
ENTRY(_exit_thread)
|
ENTRY(__exit)
|
||||||
movl $__NR_exit, %eax
|
movl $__NR_exit, %eax
|
||||||
syscall
|
syscall
|
||||||
cmpq $-MAX_ERRNO, %rax
|
cmpq $-MAX_ERRNO, %rax
|
||||||
@ -15,4 +15,5 @@ ENTRY(_exit_thread)
|
|||||||
orq $-1, %rax
|
orq $-1, %rax
|
||||||
1:
|
1:
|
||||||
ret
|
ret
|
||||||
END(_exit_thread)
|
END(__exit)
|
||||||
|
.hidden _C_LABEL(__exit)
|
@ -39,14 +39,14 @@ extern int __bionic_clone(unsigned long clone_flags,
|
|||||||
int (*fn)(void *),
|
int (*fn)(void *),
|
||||||
void *arg);
|
void *arg);
|
||||||
|
|
||||||
extern void _exit_thread(int status);
|
extern void __exit(int status);
|
||||||
|
|
||||||
/* this function is called from the __bionic_clone
|
/* this function is called from the __bionic_clone
|
||||||
* assembly fragment to call the thread function
|
* assembly fragment to call the thread function
|
||||||
* then exit. */
|
* then exit. */
|
||||||
extern void __bionic_clone_entry(int (*fn)(void*), void* arg) {
|
extern void __bionic_clone_entry(int (*fn)(void*), void* arg) {
|
||||||
int status = (*fn)(arg);
|
int status = (*fn)(arg);
|
||||||
_exit_thread(status);
|
__exit(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
int clone(int (*fn)(void*), void* child_stack, int flags, void* arg, ...) {
|
int clone(int (*fn)(void*), void* child_stack, int flags, void* arg, ...) {
|
||||||
|
@ -46,7 +46,7 @@ extern void pthread_debug_mutex_lock_check(pthread_mutex_t *mutex);
|
|||||||
extern void pthread_debug_mutex_unlock_check(pthread_mutex_t *mutex);
|
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_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)
|
int __futex_wake_ex(volatile void *ftx, int pshared, int val)
|
||||||
{
|
{
|
||||||
@ -148,7 +148,7 @@ void pthread_exit(void * retval)
|
|||||||
|
|
||||||
if (user_stack) {
|
if (user_stack) {
|
||||||
// Cleaning up this thread's stack is the creator's responsibility, not ours.
|
// Cleaning up this thread's stack is the creator's responsibility, not ours.
|
||||||
_exit_thread(0);
|
__exit(0);
|
||||||
} else {
|
} else {
|
||||||
// We need to munmap the stack we're running on before calling exit.
|
// We need to munmap the stack we're running on before calling exit.
|
||||||
// That's not something we can do in C.
|
// That's not something we can do in C.
|
||||||
|
@ -240,7 +240,6 @@ def add_footer(pointer_length, stub, syscall):
|
|||||||
stub += function_alias % { "func" : syscall["func"], "alias" : alias }
|
stub += function_alias % { "func" : syscall["func"], "alias" : alias }
|
||||||
|
|
||||||
# Use hidden visibility for any functions beginning with underscores.
|
# Use hidden visibility for any functions beginning with underscores.
|
||||||
# TODO: clean up single-underscore names too.
|
|
||||||
if pointer_length == 64 and syscall["func"].startswith("__"):
|
if pointer_length == 64 and syscall["func"].startswith("__"):
|
||||||
stub += '.hidden _C_LABEL(' + syscall["func"] + ')\n'
|
stub += '.hidden _C_LABEL(' + syscall["func"] + ')\n'
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user