diff --git a/libc/arch-arm/syscalls.S b/libc/arch-arm/syscalls.S
new file mode 100644
index 0000000..c76bf3a
--- /dev/null
+++ b/libc/arch-arm/syscalls.S
@@ -0,0 +1,2915 @@
+/* Generated by gensyscalls.py. Do not edit. */
+#include <private/bionic_asm.h>
+
+ENTRY(execve)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_execve
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(execve)
+
+ENTRY(getuid)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_getuid32
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(getuid)
+
+ENTRY(getgid)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_getgid32
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(getgid)
+
+ENTRY(geteuid)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_geteuid32
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(geteuid)
+
+ENTRY(getegid)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_getegid32
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(getegid)
+
+ENTRY(getresuid)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_getresuid32
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(getresuid)
+
+ENTRY(getresgid)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_getresgid32
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(getresgid)
+
+ENTRY(readahead)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_readahead
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(readahead)
+
+ENTRY(getgroups)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_getgroups32
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(getgroups)
+
+ENTRY(getpgid)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_getpgid
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(getpgid)
+
+ENTRY(getppid)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_getppid
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(getppid)
+
+ENTRY(getsid)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_getsid
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(getsid)
+
+ENTRY(setsid)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_setsid
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(setsid)
+
+ENTRY(setgid)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_setgid32
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(setgid)
+
+ENTRY(setuid)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_setuid32
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(setuid)
+
+ENTRY(setreuid)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_setreuid32
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(setreuid)
+
+ENTRY(setresuid)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_setresuid32
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(setresuid)
+
+ENTRY(setresgid)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_setresgid32
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(setresgid)
+
+ENTRY(__brk)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_brk
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__brk)
+
+ENTRY(kill)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_kill
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(kill)
+
+ENTRY(tgkill)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_tgkill
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(tgkill)
+
+ENTRY(__ptrace)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_ptrace
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__ptrace)
+
+ENTRY(getrusage)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_getrusage
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(getrusage)
+
+ENTRY(__getpriority)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_getpriority
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__getpriority)
+
+ENTRY(setpriority)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_setpriority
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(setpriority)
+
+ENTRY(getrlimit)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_ugetrlimit
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(getrlimit)
+
+ENTRY(setrlimit)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_setrlimit
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(setrlimit)
+
+ENTRY(prlimit64)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_prlimit64
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(prlimit64)
+
+ENTRY(setgroups)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_setgroups32
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(setgroups)
+
+ENTRY(setpgid)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_setpgid
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(setpgid)
+
+ENTRY(setregid)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_setregid32
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(setregid)
+
+ENTRY(chroot)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_chroot
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(chroot)
+
+ENTRY(prctl)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_prctl
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(prctl)
+
+ENTRY(capget)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_capget
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(capget)
+
+ENTRY(capset)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_capset
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(capset)
+
+ENTRY(sigaltstack)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_sigaltstack
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(sigaltstack)
+
+ENTRY(acct)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_acct
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(acct)
+
+ENTRY(read)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_read
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(read)
+
+ENTRY(write)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_write
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(write)
+
+ENTRY(pread64)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_pread64
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(pread64)
+
+ENTRY(pwrite64)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_pwrite64
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(pwrite64)
+
+ENTRY(__preadv64)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_preadv
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__preadv64)
+
+ENTRY(__pwritev64)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_pwritev
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__pwritev64)
+
+ENTRY(___close)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_close
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(___close)
+.hidden ___close
+
+ENTRY(__getpid)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_getpid
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__getpid)
+
+ENTRY(munmap)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_munmap
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(munmap)
+
+ENTRY(___mremap)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_mremap
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(___mremap)
+.hidden ___mremap
+
+ENTRY(msync)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_msync
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(msync)
+
+ENTRY(mprotect)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_mprotect
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(mprotect)
+
+ENTRY(madvise)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_madvise
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(madvise)
+
+ENTRY(mlock)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_mlock
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(mlock)
+
+ENTRY(munlock)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_munlock
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(munlock)
+
+ENTRY(mlockall)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_mlockall
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(mlockall)
+
+ENTRY(munlockall)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_munlockall
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(munlockall)
+
+ENTRY(mincore)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_mincore
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(mincore)
+
+ENTRY(__ioctl)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_ioctl
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__ioctl)
+
+ENTRY(readv)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_readv
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(readv)
+
+ENTRY(writev)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_writev
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(writev)
+
+ENTRY(__fcntl64)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_fcntl64
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__fcntl64)
+
+ENTRY(flock)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_flock
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(flock)
+
+ENTRY(___fchmod)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_fchmod
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(___fchmod)
+.hidden ___fchmod
+
+ENTRY(dup)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_dup
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(dup)
+
+ENTRY(pipe2)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_pipe2
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(pipe2)
+
+ENTRY(dup3)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_dup3
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(dup3)
+
+ENTRY(fsync)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_fsync
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(fsync)
+
+ENTRY(fdatasync)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_fdatasync
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(fdatasync)
+
+ENTRY(fchown)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_fchown32
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(fchown)
+
+ENTRY(sync)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_sync
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(sync)
+
+ENTRY(syncfs)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_syncfs
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(syncfs)
+
+ENTRY(___fsetxattr)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_fsetxattr
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(___fsetxattr)
+.hidden ___fsetxattr
+
+ENTRY(___fgetxattr)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_fgetxattr
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(___fgetxattr)
+.hidden ___fgetxattr
+
+ENTRY(___flistxattr)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_flistxattr
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(___flistxattr)
+.hidden ___flistxattr
+
+ENTRY(fremovexattr)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_fremovexattr
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(fremovexattr)
+
+ENTRY(__getdents64)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_getdents64
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__getdents64)
+
+ENTRY(__openat)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_openat
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__openat)
+
+ENTRY(___faccessat)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_faccessat
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(___faccessat)
+.hidden ___faccessat
+
+ENTRY(___fchmodat)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_fchmodat
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(___fchmodat)
+.hidden ___fchmodat
+
+ENTRY(fchownat)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_fchownat
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(fchownat)
+
+ENTRY(fstatat64)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_fstatat64
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(fstatat64)
+
+ALIAS_SYMBOL(fstatat, fstatat64)
+
+ENTRY(linkat)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_linkat
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(linkat)
+
+ENTRY(mkdirat)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_mkdirat
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(mkdirat)
+
+ENTRY(mknodat)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_mknodat
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(mknodat)
+
+ENTRY(readlinkat)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_readlinkat
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(readlinkat)
+
+ENTRY(renameat)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_renameat
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(renameat)
+
+ENTRY(symlinkat)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_symlinkat
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(symlinkat)
+
+ENTRY(unlinkat)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_unlinkat
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(unlinkat)
+
+ENTRY(utimensat)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_utimensat
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(utimensat)
+
+ENTRY(lseek)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_lseek
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(lseek)
+
+ENTRY(__llseek)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR__llseek
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__llseek)
+
+ENTRY(ftruncate64)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_ftruncate64
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(ftruncate64)
+
+ENTRY(sendfile)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_sendfile
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(sendfile)
+
+ENTRY(sendfile64)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_sendfile64
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(sendfile64)
+
+ENTRY(truncate)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_truncate
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(truncate)
+
+ENTRY(truncate64)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_truncate64
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(truncate64)
+
+ENTRY(__mmap2)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_mmap2
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__mmap2)
+
+ENTRY(fallocate64)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_fallocate
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(fallocate64)
+
+ENTRY(__arm_fadvise64_64)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_arm_fadvise64_64
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__arm_fadvise64_64)
+
+ENTRY(__fstatfs64)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_fstatfs64
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__fstatfs64)
+
+ENTRY(__statfs64)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_statfs64
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__statfs64)
+
+ENTRY(fstat64)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_fstat64
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(fstat64)
+
+ALIAS_SYMBOL(fstat, fstat64)
+
+ENTRY(chdir)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_chdir
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(chdir)
+
+ENTRY(mount)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_mount
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(mount)
+
+ENTRY(umount2)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_umount2
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(umount2)
+
+ENTRY(__getcwd)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_getcwd
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__getcwd)
+
+ENTRY(fchdir)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_fchdir
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(fchdir)
+
+ENTRY(setxattr)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_setxattr
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(setxattr)
+
+ENTRY(lsetxattr)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_lsetxattr
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(lsetxattr)
+
+ENTRY(getxattr)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_getxattr
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(getxattr)
+
+ENTRY(lgetxattr)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_lgetxattr
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(lgetxattr)
+
+ENTRY(listxattr)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_listxattr
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(listxattr)
+
+ENTRY(llistxattr)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_llistxattr
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(llistxattr)
+
+ENTRY(removexattr)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_removexattr
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(removexattr)
+
+ENTRY(lremovexattr)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_lremovexattr
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(lremovexattr)
+
+ENTRY(swapon)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_swapon
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(swapon)
+
+ENTRY(swapoff)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_swapoff
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(swapoff)
+
+ENTRY(settimeofday)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_settimeofday
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(settimeofday)
+
+ENTRY(times)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_times
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(times)
+
+ENTRY(nanosleep)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_nanosleep
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(nanosleep)
+
+ENTRY(clock_settime)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_clock_settime
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(clock_settime)
+
+ENTRY(___clock_nanosleep)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_clock_nanosleep
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(___clock_nanosleep)
+.hidden ___clock_nanosleep
+
+ENTRY(getitimer)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_getitimer
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(getitimer)
+
+ENTRY(setitimer)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_setitimer
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(setitimer)
+
+ENTRY(__timer_create)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_timer_create
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__timer_create)
+
+ENTRY(__timer_settime)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_timer_settime
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__timer_settime)
+
+ENTRY(__timer_gettime)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_timer_gettime
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__timer_gettime)
+
+ENTRY(__timer_getoverrun)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_timer_getoverrun
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__timer_getoverrun)
+
+ENTRY(__timer_delete)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_timer_delete
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__timer_delete)
+
+ENTRY(timerfd_create)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_timerfd_create
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(timerfd_create)
+
+ENTRY(timerfd_settime)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_timerfd_settime
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(timerfd_settime)
+
+ENTRY(timerfd_gettime)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_timerfd_gettime
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(timerfd_gettime)
+
+ENTRY(adjtimex)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_adjtimex
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(adjtimex)
+
+ENTRY(clock_adjtime)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_clock_adjtime
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(clock_adjtime)
+
+ENTRY(__sigaction)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_sigaction
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__sigaction)
+
+ENTRY(__rt_sigaction)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_rt_sigaction
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__rt_sigaction)
+
+ENTRY(__rt_sigpending)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_rt_sigpending
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__rt_sigpending)
+
+ENTRY(__rt_sigprocmask)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_rt_sigprocmask
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__rt_sigprocmask)
+
+ENTRY(__rt_sigsuspend)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_rt_sigsuspend
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__rt_sigsuspend)
+
+ENTRY(__rt_sigtimedwait)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_rt_sigtimedwait
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__rt_sigtimedwait)
+
+ENTRY(___rt_sigqueueinfo)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_rt_sigqueueinfo
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(___rt_sigqueueinfo)
+.hidden ___rt_sigqueueinfo
+
+ENTRY(__signalfd4)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_signalfd4
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__signalfd4)
+
+ENTRY(__socket)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_socket
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__socket)
+
+ENTRY(socketpair)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_socketpair
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(socketpair)
+
+ENTRY(bind)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_bind
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(bind)
+
+ENTRY(__connect)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_connect
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__connect)
+
+ENTRY(listen)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_listen
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(listen)
+
+ENTRY(__accept4)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_accept4
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__accept4)
+
+ENTRY(getsockname)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_getsockname
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(getsockname)
+
+ENTRY(getpeername)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_getpeername
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(getpeername)
+
+ENTRY(sendto)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_sendto
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(sendto)
+
+ENTRY(recvfrom)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_recvfrom
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(recvfrom)
+
+ENTRY(shutdown)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_shutdown
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(shutdown)
+
+ENTRY(setsockopt)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_setsockopt
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(setsockopt)
+
+ENTRY(getsockopt)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_getsockopt
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(getsockopt)
+
+ENTRY(recvmsg)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_recvmsg
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(recvmsg)
+
+ENTRY(sendmsg)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_sendmsg
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(sendmsg)
+
+ENTRY(recvmmsg)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_recvmmsg
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(recvmmsg)
+
+ENTRY(sendmmsg)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_sendmmsg
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(sendmmsg)
+
+ENTRY(sched_setscheduler)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_sched_setscheduler
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(sched_setscheduler)
+
+ENTRY(sched_getscheduler)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_sched_getscheduler
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(sched_getscheduler)
+
+ENTRY(sched_yield)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_sched_yield
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(sched_yield)
+
+ENTRY(sched_setparam)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_sched_setparam
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(sched_setparam)
+
+ENTRY(sched_getparam)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_sched_getparam
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(sched_getparam)
+
+ENTRY(sched_get_priority_max)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_sched_get_priority_max
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(sched_get_priority_max)
+
+ENTRY(sched_get_priority_min)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_sched_get_priority_min
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(sched_get_priority_min)
+
+ENTRY(sched_rr_get_interval)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_sched_rr_get_interval
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(sched_rr_get_interval)
+
+ENTRY(sched_setaffinity)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_sched_setaffinity
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(sched_setaffinity)
+
+ENTRY(setns)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_setns
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(setns)
+
+ENTRY(unshare)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_unshare
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(unshare)
+
+ENTRY(__sched_getaffinity)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_sched_getaffinity
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__sched_getaffinity)
+
+ENTRY(__getcpu)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_getcpu
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__getcpu)
+
+ENTRY(uname)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_uname
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(uname)
+
+ENTRY(umask)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_umask
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(umask)
+
+ENTRY(__reboot)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_reboot
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__reboot)
+
+ENTRY(init_module)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_init_module
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(init_module)
+
+ENTRY(delete_module)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_delete_module
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(delete_module)
+
+ENTRY(klogctl)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_syslog
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(klogctl)
+
+ENTRY(sysinfo)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_sysinfo
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(sysinfo)
+
+ENTRY(personality)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_personality
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(personality)
+
+ENTRY(tee)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_tee
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(tee)
+
+ENTRY(splice)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_splice
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(splice)
+
+ENTRY(vmsplice)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_vmsplice
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(vmsplice)
+
+ENTRY(epoll_create1)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_epoll_create1
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(epoll_create1)
+
+ENTRY(epoll_ctl)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_epoll_ctl
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(epoll_ctl)
+
+ENTRY(__epoll_pwait)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_epoll_pwait
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__epoll_pwait)
+
+ENTRY(eventfd)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_eventfd2
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(eventfd)
+
+ENTRY(_exit)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_exit_group
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(_exit)
+
+ALIAS_SYMBOL(_Exit, _exit)
+
+ENTRY(__exit)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_exit
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__exit)
+
+ENTRY(inotify_init1)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_inotify_init1
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(inotify_init1)
+
+ENTRY(inotify_add_watch)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_inotify_add_watch
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(inotify_add_watch)
+
+ENTRY(inotify_rm_watch)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_inotify_rm_watch
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(inotify_rm_watch)
+
+ENTRY(__pselect6)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_pselect6
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__pselect6)
+
+ENTRY(__ppoll)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_ppoll
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__ppoll)
+
+ENTRY(process_vm_readv)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_process_vm_readv
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(process_vm_readv)
+
+ENTRY(process_vm_writev)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_process_vm_writev
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(process_vm_writev)
+
+ENTRY(quotactl)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_quotactl
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(quotactl)
+
+ENTRY(__set_tid_address)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_set_tid_address
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__set_tid_address)
+
+ENTRY(setfsgid)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_setfsgid
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(setfsgid)
+
+ENTRY(setfsuid)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_setfsuid
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(setfsuid)
+
+ENTRY(setdomainname)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_setdomainname
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(setdomainname)
+
+ENTRY(sethostname)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_sethostname
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(sethostname)
+
+ENTRY(__sync_file_range2)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_sync_file_range2
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__sync_file_range2)
+
+ENTRY(wait4)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_wait4
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(wait4)
+
+ENTRY(__waitid)
+    mov     ip, sp
+    stmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 16
+    .cfi_rel_offset r4, 0
+    .cfi_rel_offset r5, 4
+    .cfi_rel_offset r6, 8
+    .cfi_rel_offset r7, 12
+    ldmfd   ip, {r4, r5, r6}
+    ldr     r7, =__NR_waitid
+    swi     #0
+    ldmfd   sp!, {r4, r5, r6, r7}
+    .cfi_def_cfa_offset 0
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__waitid)
+
+ENTRY(__set_tls)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__ARM_NR_set_tls
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__set_tls)
+
+ENTRY(cacheflush)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__ARM_NR_cacheflush
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(cacheflush)
+
+ENTRY(__clock_getres)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_clock_getres
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__clock_getres)
+
+ENTRY(__clock_gettime)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_clock_gettime
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__clock_gettime)
+
+ENTRY(__gettimeofday)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_gettimeofday
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(__gettimeofday)
+
+ENTRY(getrandom)
+    mov     ip, r7
+    .cfi_register r7, ip
+    ldr     r7, =__NR_getrandom
+    swi     #0
+    mov     r7, ip
+    .cfi_restore r7
+    cmn     r0, #(MAX_ERRNO + 1)
+    bxls    lr
+    neg     r0, r0
+    b       __set_errno_internal
+END(getrandom)
