diff options
Diffstat (limited to 'lib/libc/musl')
121 files changed, 6015 insertions, 4560 deletions
diff --git a/lib/libc/musl/COPYRIGHT b/lib/libc/musl/COPYRIGHT index e647237146..c1628e9ac8 100644 --- a/lib/libc/musl/COPYRIGHT +++ b/lib/libc/musl/COPYRIGHT @@ -127,10 +127,13 @@ Copyright © 2017-2018 Arm Limited and labelled as such in comments in the individual source files. All have been licensed under extremely permissive terms. -The ARM memcpy code (src/string/arm/memcpy_el.S) is Copyright © 2008 +The ARM memcpy code (src/string/arm/memcpy.S) is Copyright © 2008 The Android Open Source Project and is licensed under a two-clause BSD license. It was taken from Bionic libc, used on Android. +The AArch64 memcpy and memset code (src/string/aarch64/*) are +Copyright © 1999-2019, Arm Limited. + The implementation of DES for crypt (src/crypt/crypt_des.c) is Copyright © 1994 David Burren. It is licensed under a BSD license. diff --git a/lib/libc/musl/arch/aarch64/bits/hwcap.h b/lib/libc/musl/arch/aarch64/bits/hwcap.h index 7ab73f99b6..424cc4d4fc 100644 --- a/lib/libc/musl/arch/aarch64/bits/hwcap.h +++ b/lib/libc/musl/arch/aarch64/bits/hwcap.h @@ -48,3 +48,5 @@ #define HWCAP2_BF16 (1 << 14) #define HWCAP2_DGH (1 << 15) #define HWCAP2_RNG (1 << 16) +#define HWCAP2_BTI (1 << 17) +#define HWCAP2_MTE (1 << 18) diff --git a/lib/libc/musl/arch/aarch64/bits/mman.h b/lib/libc/musl/arch/aarch64/bits/mman.h new file mode 100644 index 0000000000..8fad5ceb0f --- /dev/null +++ b/lib/libc/musl/arch/aarch64/bits/mman.h @@ -0,0 +1,2 @@ +#define PROT_BTI 0x10 +#define PROT_MTE 0x20 diff --git a/lib/libc/musl/arch/aarch64/bits/syscall.h.in b/lib/libc/musl/arch/aarch64/bits/syscall.h.in index f9457c184a..5f420e6176 100644 --- a/lib/libc/musl/arch/aarch64/bits/syscall.h.in +++ b/lib/libc/musl/arch/aarch64/bits/syscall.h.in @@ -293,4 +293,10 @@ #define __NR_openat2 437 #define __NR_pidfd_getfd 438 #define __NR_faccessat2 439 +#define __NR_process_madvise 440 +#define __NR_epoll_pwait2 441 +#define __NR_mount_setattr 442 +#define __NR_landlock_create_ruleset 444 +#define __NR_landlock_add_rule 445 +#define __NR_landlock_restrict_self 446 diff --git a/lib/libc/musl/arch/arm/bits/syscall.h.in b/lib/libc/musl/arch/arm/bits/syscall.h.in index 7e2fc26697..048fdea797 100644 --- a/lib/libc/musl/arch/arm/bits/syscall.h.in +++ b/lib/libc/musl/arch/arm/bits/syscall.h.in @@ -393,6 +393,12 @@ #define __NR_openat2 437 #define __NR_pidfd_getfd 438 #define __NR_faccessat2 439 +#define __NR_process_madvise 440 +#define __NR_epoll_pwait2 441 +#define __NR_mount_setattr 442 +#define __NR_landlock_create_ruleset 444 +#define __NR_landlock_add_rule 445 +#define __NR_landlock_restrict_self 446 #define __ARM_NR_breakpoint 0x0f0001 #define __ARM_NR_cacheflush 0x0f0002 diff --git a/lib/libc/musl/arch/i386/arch.mak b/lib/libc/musl/arch/i386/arch.mak new file mode 100644 index 0000000000..aa4d05ceff --- /dev/null +++ b/lib/libc/musl/arch/i386/arch.mak @@ -0,0 +1 @@ +COMPAT_SRC_DIRS = compat/time32 diff --git a/lib/libc/musl/arch/i386/bits/syscall.h.in b/lib/libc/musl/arch/i386/bits/syscall.h.in index abdb210d39..46ffe1d99a 100644 --- a/lib/libc/musl/arch/i386/bits/syscall.h.in +++ b/lib/libc/musl/arch/i386/bits/syscall.h.in @@ -430,4 +430,10 @@ #define __NR_openat2 437 #define __NR_pidfd_getfd 438 #define __NR_faccessat2 439 +#define __NR_process_madvise 440 +#define __NR_epoll_pwait2 441 +#define __NR_mount_setattr 442 +#define __NR_landlock_create_ruleset 444 +#define __NR_landlock_add_rule 445 +#define __NR_landlock_restrict_self 446 diff --git a/lib/libc/musl/arch/m68k/arch.mak b/lib/libc/musl/arch/m68k/arch.mak new file mode 100644 index 0000000000..aa4d05ceff --- /dev/null +++ b/lib/libc/musl/arch/m68k/arch.mak @@ -0,0 +1 @@ +COMPAT_SRC_DIRS = compat/time32 diff --git a/lib/libc/musl/arch/m68k/atomic_arch.h b/lib/libc/musl/arch/m68k/atomic_arch.h new file mode 100644 index 0000000000..b369649a1a --- /dev/null +++ b/lib/libc/musl/arch/m68k/atomic_arch.h @@ -0,0 +1,8 @@ +#define a_cas a_cas +static inline int a_cas(volatile int *p, int t, int s) +{ + __asm__ __volatile__ ( + "cas.l %0, %2, (%1)" + : "+d"(t) : "a"(p), "d"(s) : "memory", "cc"); + return t; +} diff --git a/lib/libc/musl/arch/m68k/bits/alltypes.h.in b/lib/libc/musl/arch/m68k/bits/alltypes.h.in new file mode 100644 index 0000000000..f564690983 --- /dev/null +++ b/lib/libc/musl/arch/m68k/bits/alltypes.h.in @@ -0,0 +1,25 @@ +#define _REDIR_TIME64 1 +#define _Addr int +#define _Int64 long long +#define _Reg int + +#define __BYTE_ORDER 4321 +#define __LONG_MAX 0x7fffffffL + +#ifndef __cplusplus +#ifdef __WCHAR_TYPE__ +TYPEDEF __WCHAR_TYPE__ wchar_t; +#else +TYPEDEF long wchar_t; +#endif +#endif + +#if __mcffpu__ +TYPEDEF float float_t; +TYPEDEF double double_t; +#else +TYPEDEF long double float_t; +TYPEDEF long double double_t; +#endif + +TYPEDEF struct { long long __ll; long double __ld; } max_align_t; diff --git a/lib/libc/musl/arch/m68k/bits/fcntl.h b/lib/libc/musl/arch/m68k/bits/fcntl.h new file mode 100644 index 0000000000..f1c8400ffc --- /dev/null +++ b/lib/libc/musl/arch/m68k/bits/fcntl.h @@ -0,0 +1,40 @@ +#define O_CREAT 0100 +#define O_EXCL 0200 +#define O_NOCTTY 0400 +#define O_TRUNC 01000 +#define O_APPEND 02000 +#define O_NONBLOCK 04000 +#define O_DSYNC 010000 +#define O_SYNC 04010000 +#define O_RSYNC 04010000 +#define O_DIRECTORY 040000 +#define O_NOFOLLOW 0100000 +#define O_CLOEXEC 02000000 + +#define O_ASYNC 020000 +#define O_DIRECT 0200000 +#define O_LARGEFILE 0400000 +#define O_NOATIME 01000000 +#define O_PATH 010000000 +#define O_TMPFILE 020200000 +#define O_NDELAY O_NONBLOCK + +#define F_DUPFD 0 +#define F_GETFD 1 +#define F_SETFD 2 +#define F_GETFL 3 +#define F_SETFL 4 + +#define F_SETOWN 8 +#define F_GETOWN 9 +#define F_SETSIG 10 +#define F_GETSIG 11 + +#define F_GETLK 12 +#define F_SETLK 13 +#define F_SETLKW 14 + +#define F_SETOWN_EX 15 +#define F_GETOWN_EX 16 + +#define F_GETOWNER_UIDS 17 diff --git a/lib/libc/musl/arch/m68k/bits/fenv.h b/lib/libc/musl/arch/m68k/bits/fenv.h new file mode 100644 index 0000000000..c90a4a58af --- /dev/null +++ b/lib/libc/musl/arch/m68k/bits/fenv.h @@ -0,0 +1,29 @@ +#if __HAVE_68881__ || __mcffpu__ + +#define FE_INEXACT 8 +#define FE_DIVBYZERO 16 +#define FE_UNDERFLOW 32 +#define FE_OVERFLOW 64 +#define FE_INVALID 128 + +#define FE_ALL_EXCEPT 0xf8 + +#define FE_TONEAREST 0 +#define FE_TOWARDZERO 16 +#define FE_DOWNWARD 32 +#define FE_UPWARD 48 + +#else + +#define FE_ALL_EXCEPT 0 +#define FE_TONEAREST 0 + +#endif + +typedef unsigned fexcept_t; + +typedef struct { + unsigned __control_register, __status_register, __instruction_address; +} fenv_t; + +#define FE_DFL_ENV ((const fenv_t *) -1) diff --git a/lib/libc/musl/arch/m68k/bits/float.h b/lib/libc/musl/arch/m68k/bits/float.h new file mode 100644 index 0000000000..0e6899d583 --- /dev/null +++ b/lib/libc/musl/arch/m68k/bits/float.h @@ -0,0 +1,39 @@ +#if !__mcffpu__ + +#define FLT_EVAL_METHOD 2 + +#define LDBL_TRUE_MIN 3.6451995318824746025e-4951L +#define LDBL_MIN 1.68105157155604675313e-4932L +#define LDBL_MAX 1.1897314953572317650e+4932L +#define LDBL_EPSILON 1.0842021724855044340e-19L + +#define LDBL_MANT_DIG 64 +#define LDBL_MIN_EXP (-16382) +#define LDBL_MAX_EXP 16384 + +#define LDBL_DIG 18 +#define LDBL_MIN_10_EXP (-4931) +#define LDBL_MAX_10_EXP 4932 + +#define DECIMAL_DIG 21 + +#else + +#define FLT_EVAL_METHOD 0 + +#define LDBL_TRUE_MIN 4.94065645841246544177e-324L +#define LDBL_MIN 2.22507385850720138309e-308L +#define LDBL_MAX 1.79769313486231570815e+308L +#define LDBL_EPSILON 2.22044604925031308085e-16L + +#define LDBL_MANT_DIG 53 +#define LDBL_MIN_EXP (-1021) +#define LDBL_MAX_EXP 1024 + +#define LDBL_DIG 15 +#define LDBL_MIN_10_EXP (-307) +#define LDBL_MAX_10_EXP 308 + +#define DECIMAL_DIG 17 + +#endif diff --git a/lib/libc/musl/arch/m68k/bits/ipcstat.h b/lib/libc/musl/arch/m68k/bits/ipcstat.h new file mode 100644 index 0000000000..4f4fcb0c5b --- /dev/null +++ b/lib/libc/musl/arch/m68k/bits/ipcstat.h @@ -0,0 +1 @@ +#define IPC_STAT 0x102 diff --git a/lib/libc/musl/arch/m68k/bits/msg.h b/lib/libc/musl/arch/m68k/bits/msg.h new file mode 100644 index 0000000000..7bbbb2bf43 --- /dev/null +++ b/lib/libc/musl/arch/m68k/bits/msg.h @@ -0,0 +1,18 @@ +struct msqid_ds { + struct ipc_perm msg_perm; + unsigned long __msg_stime_lo; + unsigned long __msg_stime_hi; + unsigned long __msg_rtime_lo; + unsigned long __msg_rtime_hi; + unsigned long __msg_ctime_lo; + unsigned long __msg_ctime_hi; + unsigned long msg_cbytes; + msgqnum_t msg_qnum; + msglen_t msg_qbytes; + pid_t msg_lspid; + pid_t msg_lrpid; + unsigned long __unused[2]; + time_t msg_stime; + time_t msg_rtime; + time_t msg_ctime; +}; diff --git a/lib/libc/musl/arch/m68k/bits/posix.h b/lib/libc/musl/arch/m68k/bits/posix.h new file mode 100644 index 0000000000..30a38714f3 --- /dev/null +++ b/lib/libc/musl/arch/m68k/bits/posix.h @@ -0,0 +1,2 @@ +#define _POSIX_V6_ILP32_OFFBIG 1 +#define _POSIX_V7_ILP32_OFFBIG 1 diff --git a/lib/libc/musl/arch/m68k/bits/ptrace.h b/lib/libc/musl/arch/m68k/bits/ptrace.h new file mode 100644 index 0000000000..da93e7a729 --- /dev/null +++ b/lib/libc/musl/arch/m68k/bits/ptrace.h @@ -0,0 +1,2 @@ +#define PTRACE_GET_THREAD_AREA 25 +#define PTRACE_SINGLEBLOCK 33 diff --git a/lib/libc/musl/arch/m68k/bits/reg.h b/lib/libc/musl/arch/m68k/bits/reg.h new file mode 100644 index 0000000000..99201f7094 --- /dev/null +++ b/lib/libc/musl/arch/m68k/bits/reg.h @@ -0,0 +1,45 @@ +#undef __WORDSIZE +#define __WORDSIZE 32 +#define PT_D1 0 +#define PT_D2 1 +#define PT_D3 2 +#define PT_D4 3 +#define PT_D5 4 +#define PT_D6 5 +#define PT_D7 6 +#define PT_A0 7 +#define PT_A1 8 +#define PT_A2 9 +#define PT_A3 10 +#define PT_A4 11 +#define PT_A5 12 +#define PT_A6 13 +#define PT_D0 14 +#define PT_USP 15 +#define PT_ORIG_D0 16 +#define PT_SR 17 +#define PT_PC 18 + +#if __mcffpu__ +#define PT_FP0 21 +#define PT_FP1 23 +#define PT_FP2 25 +#define PT_FP3 27 +#define PT_FP4 29 +#define PT_FP5 31 +#define PT_FP6 33 +#define PT_FP7 35 +#else +#define PT_FP0 21 +#define PT_FP1 24 +#define PT_FP2 27 +#define PT_FP3 30 +#define PT_FP4 33 +#define PT_FP5 36 +#define PT_FP6 39 +#define PT_FP7 42 +#endif + +#define PT_FPCR 45 +#define PT_FPSR 46 +#define PT_FPIAR 47 diff --git a/lib/libc/musl/arch/m68k/bits/sem.h b/lib/libc/musl/arch/m68k/bits/sem.h new file mode 100644 index 0000000000..d88338e695 --- /dev/null +++ b/lib/libc/musl/arch/m68k/bits/sem.h @@ -0,0 +1,13 @@ +struct semid_ds { + struct ipc_perm sem_perm; + unsigned long __sem_otime_lo; + unsigned long __sem_otime_hi; + unsigned long __sem_ctime_lo; + unsigned long __sem_ctime_hi; + char __sem_nsems_pad[sizeof(long)-sizeof(short)]; + unsigned short sem_nsems; + long __unused3; + long __unused4; + time_t sem_otime; + time_t sem_ctime; +}; diff --git a/lib/libc/musl/arch/m68k/bits/setjmp.h b/lib/libc/musl/arch/m68k/bits/setjmp.h new file mode 100644 index 0000000000..5e091fb49b --- /dev/null +++ b/lib/libc/musl/arch/m68k/bits/setjmp.h @@ -0,0 +1 @@ +typedef unsigned long __jmp_buf[39]; diff --git a/lib/libc/musl/arch/m68k/bits/shm.h b/lib/libc/musl/arch/m68k/bits/shm.h new file mode 100644 index 0000000000..725fb46968 --- /dev/null +++ b/lib/libc/musl/arch/m68k/bits/shm.h @@ -0,0 +1,31 @@ +#define SHMLBA 4096 + +struct shmid_ds { + struct ipc_perm shm_perm; + size_t shm_segsz; + unsigned long __shm_atime_lo; + unsigned long __shm_atime_hi; + unsigned long __shm_dtime_lo; + unsigned long __shm_dtime_hi; + unsigned long __shm_ctime_lo; + unsigned long __shm_ctime_hi; + pid_t shm_cpid; + pid_t shm_lpid; + unsigned long shm_nattch; + unsigned long __pad1; + unsigned long __pad2; + unsigned long __pad3; + time_t shm_atime; + time_t shm_dtime; + time_t shm_ctime; +}; + +struct shminfo { + unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; +}; + +struct shm_info { + int __used_ids; + unsigned long shm_tot, shm_rss, shm_swp; + unsigned long __swap_attempts, __swap_successes; +}; diff --git a/lib/libc/musl/arch/m68k/bits/signal.h b/lib/libc/musl/arch/m68k/bits/signal.h new file mode 100644 index 0000000000..2c369ca35c --- /dev/null +++ b/lib/libc/musl/arch/m68k/bits/signal.h @@ -0,0 +1,140 @@ +#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ + || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) + +#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) +#define MINSIGSTKSZ 2048 +#define SIGSTKSZ 8192 +#endif + +#ifdef _GNU_SOURCE +enum { R_D0 = 0 }; +#define R_D0 R_D0 +enum { R_D1 = 1 }; +#define R_D1 R_D1 +enum { R_D2 = 2 }; +#define R_D2 R_D2 +enum { R_D3 = 3 }; +#define R_D3 R_D3 +enum { R_D4 = 4 }; +#define R_D4 R_D4 +enum { R_D5 = 5 }; +#define R_D5 R_D5 +enum { R_D6 = 6 }; +#define R_D6 R_D6 +enum { R_D7 = 7 }; +#define R_D7 R_D7 +enum { R_A0 = 8 }; +#define R_A0 R_A0 +enum { R_A1 = 9 }; +#define R_A1 R_A1 +enum { R_A2 = 10 }; +#define R_A2 R_A2 +enum { R_A3 = 11 }; +#define R_A3 R_A3 +enum { R_A4 = 12 }; +#define R_A4 R_A4 +enum { R_A5 = 13 }; +#define R_A5 R_A5 +enum { R_A6 = 14 }; +#define R_A6 R_A6 +enum { R_A7 = 15 }; +#define R_A7 R_A7 +enum { R_SP = 15 }; +#define R_SP R_SP +enum { R_PC = 16 }; +#define R_PC R_PC +enum { R_PS = 17 }; +#define R_PS R_PS +#endif + +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) + +struct sigcontext { + unsigned long sc_mask, sc_usp, sc_d0, sc_d1, sc_a0, sc_a1; + unsigned short sc_sr; + unsigned long sc_pc; + unsigned short sc_formatvec; + unsigned long sc_fpregs[6], sc_fpcntl[3]; + unsigned char sc_fpstate[216]; +}; + +typedef int greg_t, gregset_t[18]; +typedef struct { + int f_pcr, f_psr, f_fpiaddr, f_fpregs[8][3]; +} fpregset_t; + +typedef struct { + int version; + gregset_t gregs; + fpregset_t fpregs; +} mcontext_t; +#else +typedef struct { + int __version; + int __gregs[18]; + int __fpregs[27]; +} mcontext_t; +#endif + +struct sigaltstack { + void *ss_sp; + int ss_flags; + size_t ss_size; +}; + +typedef struct __ucontext { + unsigned long uc_flags; + struct __ucontext *uc_link; + stack_t uc_stack; + mcontext_t uc_mcontext; + long __reserved[80]; + sigset_t uc_sigmask; +} ucontext_t; + +#define SA_NOCLDSTOP 1 +#define SA_NOCLDWAIT 2 +#define SA_SIGINFO 4 +#define SA_ONSTACK 0x08000000 +#define SA_RESTART 0x10000000 +#define SA_NODEFER 0x40000000 +#define SA_RESETHAND 0x80000000 +#define SA_RESTORER 0x04000000 + +#endif + +#define SIGHUP 1 +#define SIGINT 2 +#define SIGQUIT 3 +#define SIGILL 4 +#define SIGTRAP 5 +#define SIGABRT 6 +#define SIGIOT SIGABRT +#define SIGBUS 7 +#define SIGFPE 8 +#define SIGKILL 9 +#define SIGUSR1 10 +#define SIGSEGV 11 +#define SIGUSR2 12 +#define SIGPIPE 13 +#define SIGALRM 14 +#define SIGTERM 15 +#define SIGSTKFLT 16 +#define SIGCHLD 17 +#define SIGCONT 18 +#define SIGSTOP 19 +#define SIGTSTP 20 +#define SIGTTIN 21 +#define SIGTTOU 22 +#define SIGURG 23 +#define SIGXCPU 24 +#define SIGXFSZ 25 +#define SIGVTALRM 26 +#define SIGPROF 27 +#define SIGWINCH 28 +#define SIGIO 29 +#define SIGPOLL 29 +#define SIGPWR 30 +#define SIGSYS 31 +#define SIGUNUSED SIGSYS + +#define _NSIG 65 diff --git a/lib/libc/musl/arch/m68k/bits/stat.h b/lib/libc/musl/arch/m68k/bits/stat.h new file mode 100644 index 0000000000..f87681471a --- /dev/null +++ b/lib/libc/musl/arch/m68k/bits/stat.h @@ -0,0 +1,25 @@ +/* copied from kernel definition, but with padding replaced + * by the corresponding correctly-sized userspace types. */ + +struct stat { + dev_t st_dev; + short __st_dev_padding; + long __st_ino_truncated; + mode_t st_mode; + nlink_t st_nlink; + uid_t st_uid; + gid_t st_gid; + dev_t st_rdev; + short __st_rdev_padding; + off_t st_size; + blksize_t st_blksize; + blkcnt_t st_blocks; + struct { + long tv_sec; + long tv_nsec; + } __st_atim32, __st_mtim32, __st_ctim32; + ino_t st_ino; + struct timespec st_atim; + struct timespec st_mtim; + struct timespec st_ctim; +}; diff --git a/lib/libc/musl/arch/m68k/bits/stdint.h b/lib/libc/musl/arch/m68k/bits/stdint.h new file mode 100644 index 0000000000..d1b2712199 --- /dev/null +++ b/lib/libc/musl/arch/m68k/bits/stdint.h @@ -0,0 +1,20 @@ +typedef int32_t int_fast16_t; +typedef int32_t int_fast32_t; +typedef uint32_t uint_fast16_t; +typedef uint32_t uint_fast32_t; + +#define INT_FAST16_MIN INT32_MIN +#define INT_FAST32_MIN INT32_MIN + +#define INT_FAST16_MAX INT32_MAX +#define INT_FAST32_MAX INT32_MAX + +#define UINT_FAST16_MAX UINT32_MAX +#define UINT_FAST32_MAX UINT32_MAX + +#define INTPTR_MIN INT32_MIN +#define INTPTR_MAX INT32_MAX +#define UINTPTR_MAX UINT32_MAX +#define PTRDIFF_MIN INT32_MIN +#define PTRDIFF_MAX INT32_MAX +#define SIZE_MAX UINT32_MAX diff --git a/lib/libc/musl/arch/m68k/bits/syscall.h.in b/lib/libc/musl/arch/m68k/bits/syscall.h.in new file mode 100644 index 0000000000..a0c6332330 --- /dev/null +++ b/lib/libc/musl/arch/m68k/bits/syscall.h.in @@ -0,0 +1,418 @@ +#define __NR_restart_syscall 0 +#define __NR_exit 1 +#define __NR_fork 2 +#define __NR_read 3 +#define __NR_write 4 +#define __NR_open 5 +#define __NR_close 6 +#define __NR_waitpid 7 +#define __NR_creat 8 +#define __NR_link 9 +#define __NR_unlink 10 +#define __NR_execve 11 +#define __NR_chdir 12 +#define __NR_time 13 +#define __NR_mknod 14 +#define __NR_chmod 15 +#define __NR_chown 16 +#define __NR_oldstat 18 +#define __NR_lseek 19 +#define __NR_getpid 20 +#define __NR_mount 21 +#define __NR_umount 22 +#define __NR_setuid 23 +#define __NR_getuid 24 +#define __NR_stime 25 +#define __NR_ptrace 26 +#define __NR_alarm 27 +#define __NR_oldfstat 28 +#define __NR_pause 29 +#define __NR_utime 30 +#define __NR_access 33 +#define __NR_nice 34 +#define __NR_sync 36 +#define __NR_kill 37 +#define __NR_rename 38 +#define __NR_mkdir 39 +#define __NR_rmdir 40 +#define __NR_dup 41 +#define __NR_pipe 42 +#define __NR_times 43 +#define __NR_brk 45 +#define __NR_setgid 46 +#define __NR_getgid 47 +#define __NR_signal 48 +#define __NR_geteuid 49 +#define __NR_getegid 50 +#define __NR_acct 51 +#define __NR_umount2 52 +#define __NR_ioctl 54 +#define __NR_fcntl 55 +#define __NR_setpgid 57 +#define __NR_umask 60 +#define __NR_chroot 61 +#define __NR_ustat 62 +#define __NR_dup2 63 +#define __NR_getppid 64 +#define __NR_getpgrp 65 +#define __NR_setsid 66 +#define __NR_sigaction 67 +#define __NR_sgetmask 68 +#define __NR_ssetmask 69 +#define __NR_setreuid 70 +#define __NR_setregid 71 +#define __NR_sigsuspend 72 +#define __NR_sigpending 73 +#define __NR_sethostname 74 +#define __NR_setrlimit 75 +#define __NR_getrlimit 76 +#define __NR_getrusage 77 +#define __NR_gettimeofday_time32 78 +#define __NR_settimeofday_time32 79 +#define __NR_getgroups 80 +#define __NR_setgroups 81 +#define __NR_select 82 +#define __NR_symlink 83 +#define __NR_oldlstat 84 +#define __NR_readlink 85 +#define __NR_uselib 86 +#define __NR_swapon 87 +#define __NR_reboot 88 +#define __NR_readdir 89 +#define __NR_mmap 90 +#define __NR_munmap 91 +#define __NR_truncate 92 +#define __NR_ftruncate 93 +#define __NR_fchmod 94 +#define __NR_fchown 95 +#define __NR_getpriority 96 +#define __NR_setpriority 97 +#define __NR_statfs 99 +#define __NR_fstatfs 100 +#define __NR_socketcall 102 +#define __NR_syslog 103 +#define __NR_setitimer 104 +#define __NR_getitimer 105 +#define __NR_stat 106 +#define __NR_lstat 107 +#define __NR_fstat 108 +#define __NR_vhangup 111 +#define __NR_wait4 114 +#define __NR_swapoff 115 +#define __NR_sysinfo 116 +#define __NR_ipc 117 +#define __NR_fsync 118 +#define __NR_sigreturn 119 +#define __NR_clone 120 +#define __NR_setdomainname 121 +#define __NR_uname 122 +#define __NR_cacheflush 123 +#define __NR_adjtimex 124 +#define __NR_mprotect 125 +#define __NR_sigprocmask 126 +#define __NR_create_module 127 +#define __NR_init_module 128 +#define __NR_delete_module 129 +#define __NR_get_kernel_syms 130 +#define __NR_quotactl 131 +#define __NR_getpgid 132 +#define __NR_fchdir 133 +#define __NR_bdflush 134 +#define __NR_sysfs 135 +#define __NR_personality 136 +#define __NR_setfsuid 138 +#define __NR_setfsgid 139 +#define __NR__llseek 140 +#define __NR_getdents 141 +#define __NR__newselect 142 +#define __NR_flock 143 +#define __NR_msync 144 +#define __NR_readv 145 +#define __NR_writev 146 +#define __NR_getsid 147 +#define __NR_fdatasync 148 +#define __NR__sysctl 149 +#define __NR_mlock 150 +#define __NR_munlock 151 +#define __NR_mlockall 152 +#define __NR_munlockall 153 +#define __NR_sched_setparam 154 +#define __NR_sched_getparam 155 +#define __NR_sched_setscheduler 156 +#define __NR_sched_getscheduler 157 +#define __NR_sched_yield 158 +#define __NR_sched_get_priority_max 159 +#define __NR_sched_get_priority_min 160 +#define __NR_sched_rr_get_interval 161 +#define __NR_nanosleep 162 +#define __NR_mremap 163 +#define __NR_setresuid 164 +#define __NR_getresuid 165 +#define __NR_getpagesize 166 +#define __NR_query_module 167 +#define __NR_poll 168 +#define __NR_nfsservctl 169 +#define __NR_setresgid 170 +#define __NR_getresgid 171 +#define __NR_prctl 172 +#define __NR_rt_sigreturn 173 +#define __NR_rt_sigaction 174 +#define __NR_rt_sigprocmask 175 +#define __NR_rt_sigpending 176 +#define __NR_rt_sigtimedwait 177 +#define __NR_rt_sigqueueinfo 178 +#define __NR_rt_sigsuspend 179 +#define __NR_pread64 180 +#define __NR_pwrite64 181 +#define __NR_lchown 182 +#define __NR_getcwd 183 +#define __NR_capget 184 +#define __NR_capset 185 +#define __NR_sigaltstack 186 +#define __NR_sendfile 187 +#define __NR_getpmsg 188 +#define __NR_putpmsg 189 +#define __NR_vfork 190 +#define __NR_ugetrlimit 191 +#define __NR_mmap2 192 +#define __NR_truncate64 193 +#define __NR_ftruncate64 194 +#define __NR_stat64 195 +#define __NR_lstat64 196 +#define __NR_fstat64 197 +#define __NR_chown32 198 +#define __NR_getuid32 199 +#define __NR_getgid32 200 +#define __NR_geteuid32 201 +#define __NR_getegid32 202 +#define __NR_setreuid32 203 +#define __NR_setregid32 204 +#define __NR_getgroups32 205 +#define __NR_setgroups32 206 +#define __NR_fchown32 207 +#define __NR_setresuid32 208 +#define __NR_getresuid32 209 +#define __NR_setresgid32 210 +#define __NR_getresgid32 211 +#define __NR_lchown32 212 +#define __NR_setuid32 213 +#define __NR_setgid32 214 +#define __NR_setfsuid32 215 +#define __NR_setfsgid32 216 +#define __NR_pivot_root 217 +#define __NR_getdents64 220 +#define __NR_gettid 221 +#define __NR_tkill 222 +#define __NR_setxattr 223 +#define __NR_lsetxattr 224 +#define __NR_fsetxattr 225 +#define __NR_getxattr 226 +#define __NR_lgetxattr 227 +#define __NR_fgetxattr 228 +#define __NR_listxattr 229 +#define __NR_llistxattr 230 +#define __NR_flistxattr 231 +#define __NR_removexattr 232 +#define __NR_lremovexattr 233 +#define __NR_fremovexattr 234 +#define __NR_futex 235 +#define __NR_sendfile64 236 +#define __NR_mincore 237 +#define __NR_madvise 238 +#define __NR_fcntl64 239 +#define __NR_readahead 240 +#define __NR_io_setup 241 +#define __NR_io_destroy 242 +#define __NR_io_getevents 243 +#define __NR_io_submit 244 +#define __NR_io_cancel 245 +#define __NR_fadvise64 246 +#define __NR_exit_group 247 +#define __NR_lookup_dcookie 248 +#define __NR_epoll_create 249 +#define __NR_epoll_ctl 250 +#define __NR_epoll_wait 251 +#define __NR_remap_file_pages 252 +#define __NR_set_tid_address 253 +#define __NR_timer_create 254 +#define __NR_timer_settime32 255 +#define __NR_timer_gettime32 256 +#define __NR_timer_getoverrun 257 +#define __NR_timer_delete 258 +#define __NR_clock_settime32 259 +#define __NR_clock_gettime32 260 +#define __NR_clock_getres_time32 261 +#define __NR_clock_nanosleep_time32 262 +#define __NR_statfs64 263 +#define __NR_fstatfs64 264 +#define __NR_tgkill 265 +#define __NR_utimes 266 +#define __NR_fadvise64_64 267 +#define __NR_mbind 268 +#define __NR_get_mempolicy 269 +#define __NR_set_mempolicy 270 +#define __NR_mq_open 271 +#define __NR_mq_unlink 272 +#define __NR_mq_timedsend 273 +#define __NR_mq_timedreceive 274 +#define __NR_mq_notify 275 +#define __NR_mq_getsetattr 276 +#define __NR_waitid 277 +#define __NR_add_key 279 +#define __NR_request_key 280 +#define __NR_keyctl 281 +#define __NR_ioprio_set 282 +#define __NR_ioprio_get 283 +#define __NR_inotify_init 284 +#define __NR_inotify_add_watch 285 +#define __NR_inotify_rm_watch 286 +#define __NR_migrate_pages 287 +#define __NR_openat 288 +#define __NR_mkdirat 289 +#define __NR_mknodat 290 +#define __NR_fchownat 291 +#define __NR_futimesat 292 +#define __NR_fstatat64 293 +#define __NR_unlinkat 294 +#define __NR_renameat 295 +#define __NR_linkat 296 +#define __NR_symlinkat 297 +#define __NR_readlinkat 298 +#define __NR_fchmodat 299 +#define __NR_faccessat 300 +#define __NR_pselect6 301 +#define __NR_ppoll 302 +#define __NR_unshare 303 +#define __NR_set_robust_list 304 +#define __NR_get_robust_list 305 +#define __NR_splice 306 +#define __NR_sync_file_range 307 +#define __NR_tee 308 +#define __NR_vmsplice 309 +#define __NR_move_pages 310 +#define __NR_sched_setaffinity 311 +#define __NR_sched_getaffinity 312 +#define __NR_kexec_load 313 +#define __NR_getcpu 314 +#define __NR_epoll_pwait 315 +#define __NR_utimensat 316 +#define __NR_signalfd 317 +#define __NR_timerfd_create 318 +#define __NR_eventfd 319 +#define __NR_fallocate 320 +#define __NR_timerfd_settime32 321 +#define __NR_timerfd_gettime32 322 +#define __NR_signalfd4 323 +#define __NR_eventfd2 324 +#define __NR_epoll_create1 325 +#define __NR_dup3 326 +#define __NR_pipe2 327 +#define __NR_inotify_init1 328 +#define __NR_preadv 329 +#define __NR_pwritev 330 +#define __NR_rt_tgsigqueueinfo 331 +#define __NR_perf_event_open 332 +#define __NR_get_thread_area 333 +#define __NR_set_thread_area 334 +#define __NR_atomic_cmpxchg_32 335 +#define __NR_atomic_barrier 336 +#define __NR_fanotify_init 337 +#define __NR_fanotify_mark 338 +#define __NR_prlimit64 339 +#define __NR_name_to_handle_at 340 +#define __NR_open_by_handle_at 341 +#define __NR_clock_adjtime 342 +#define __NR_syncfs 343 +#define __NR_setns 344 +#define __NR_process_vm_readv 345 +#define __NR_process_vm_writev 346 +#define __NR_kcmp 347 +#define __NR_finit_module 348 +#define __NR_sched_setattr 349 +#define __NR_sched_getattr 350 +#define __NR_renameat2 351 +#define __NR_getrandom 352 +#define __NR_memfd_create 353 +#define __NR_bpf 354 +#define __NR_execveat 355 +#define __NR_socket 356 +#define __NR_socketpair 357 +#define __NR_bind 358 +#define __NR_connect 359 +#define __NR_listen 360 +#define __NR_accept4 361 +#define __NR_getsockopt 362 +#define __NR_setsockopt 363 +#define __NR_getsockname 364 +#define __NR_getpeername 365 +#define __NR_sendto 366 +#define __NR_sendmsg 367 +#define __NR_recvfrom 368 +#define __NR_recvmsg 369 +#define __NR_shutdown 370 +#define __NR_recvmmsg 371 +#define __NR_sendmmsg 372 +#define __NR_userfaultfd 373 +#define __NR_membarrier 374 +#define __NR_mlock2 375 +#define __NR_copy_file_range 376 +#define __NR_preadv2 377 +#define __NR_pwritev2 378 +#define __NR_statx 379 +#define __NR_seccomp 380 +#define __NR_pkey_mprotect 381 +#define __NR_pkey_alloc 382 +#define __NR_pkey_free 383 +#define __NR_rseq 384 +#define __NR_semget 393 +#define __NR_semctl 394 +#define __NR_shmget 395 +#define __NR_shmctl 396 +#define __NR_shmat 397 +#define __NR_shmdt 398 +#define __NR_msgget 399 +#define __NR_msgsnd 400 +#define __NR_msgrcv 401 +#define __NR_msgctl 402 +#define __NR_clock_gettime64 403 +#define __NR_clock_settime64 404 +#define __NR_clock_adjtime64 405 +#define __NR_clock_getres_time64 406 +#define __NR_clock_nanosleep_time64 407 +#define __NR_timer_gettime64 408 +#define __NR_timer_settime64 409 +#define __NR_timerfd_gettime64 410 +#define __NR_timerfd_settime64 411 +#define __NR_utimensat_time64 412 +#define __NR_pselect6_time64 413 +#define __NR_ppoll_time64 414 +#define __NR_io_pgetevents_time64 416 +#define __NR_recvmmsg_time64 417 +#define __NR_mq_timedsend_time64 418 +#define __NR_mq_timedreceive_time64 419 +#define __NR_semtimedop_time64 420 +#define __NR_rt_sigtimedwait_time64 421 +#define __NR_futex_time64 422 +#define __NR_sched_rr_get_interval_time64 423 +#define __NR_pidfd_send_signal 424 +#define __NR_io_uring_setup 425 +#define __NR_io_uring_enter 426 +#define __NR_io_uring_register 427 +#define __NR_open_tree 428 +#define __NR_move_mount 429 +#define __NR_fsopen 430 +#define __NR_fsconfig 431 +#define __NR_fsmount 432 +#define __NR_fspick 433 +#define __NR_pidfd_open 434 +#define __NR_clone3 435 +#define __NR_close_range 436 +#define __NR_openat2 437 +#define __NR_pidfd_getfd 438 +#define __NR_faccessat2 439 +#define __NR_process_madvise 440 +#define __NR_epoll_pwait2 441 +#define __NR_mount_setattr 442 +#define __NR_landlock_create_ruleset 444 +#define __NR_landlock_add_rule 445 +#define __NR_landlock_restrict_self 446 diff --git a/lib/libc/musl/arch/m68k/bits/user.h b/lib/libc/musl/arch/m68k/bits/user.h new file mode 100644 index 0000000000..6a4439196b --- /dev/null +++ b/lib/libc/musl/arch/m68k/bits/user.h @@ -0,0 +1,38 @@ +#undef __WORDSIZE +#define __WORDSIZE 32 + +struct user_m68kfp_struct { + unsigned long fpregs[24], fpcntl[3]; +}; + +struct user_regs_struct { + long d1, d2, d3, d4, d5, d6, d7; + long a0, a1, a2, a3, a4, a5, a6; + long d0, usp, orig_d0; + short stkadj, sr; + long pc; + short fmtvec, __pad; +}; + +struct user { + struct user_regs_struct regs; + int u_fpvalid; + struct user_m68kfp_struct m68kfp; + unsigned long u_tsize, u_dsize, u_ssize, start_code, start_stack; + long signal; + int reserved; + unsigned long u_ar0; + struct user_m68kfp_struct *u_fpstate; + unsigned long magic; + char u_comm[32]; +}; + +#define ELF_NGREG 20 +typedef unsigned long elf_greg_t; +typedef elf_greg_t elf_gregset_t[ELF_NGREG]; +typedef struct user_m68kfp_struct elf_fpregset_t; + +#define NBPG 4096 +#define UPAGES 1 +#define HOST_TEXT_START_ADDR (u.start_code) +#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG) diff --git a/lib/libc/musl/arch/m68k/crt_arch.h b/lib/libc/musl/arch/m68k/crt_arch.h new file mode 100644 index 0000000000..48a42f29e2 --- /dev/null +++ b/lib/libc/musl/arch/m68k/crt_arch.h @@ -0,0 +1,14 @@ +__asm__( +".text\n" +".weak _DYNAMIC \n" +".hidden _DYNAMIC \n" +".global " START "\n" +START ":\n" +" suba.l %fp,%fp \n" +" movea.l %sp,%a0 \n" +" lea _DYNAMIC-.-8,%a1 \n" +" pea (%pc,%a1) \n" +" pea (%a0) \n" +" lea " START "_c-.-8,%a1 \n" +" jsr (%pc,%a1) \n" +); diff --git a/lib/libc/musl/arch/m68k/kstat.h b/lib/libc/musl/arch/m68k/kstat.h new file mode 100644 index 0000000000..ac13e272ce --- /dev/null +++ b/lib/libc/musl/arch/m68k/kstat.h @@ -0,0 +1,21 @@ +struct kstat { + dev_t st_dev; + short __st_dev_padding; + long __st_ino_truncated; + mode_t st_mode; + nlink_t st_nlink; + uid_t st_uid; + gid_t st_gid; + dev_t st_rdev; + short __st_rdev_padding; + off_t st_size; + blksize_t st_blksize; + blkcnt_t st_blocks; + long st_atime_sec; + long st_atime_nsec; + long st_mtime_sec; + long st_mtime_nsec; + long st_ctime_sec; + long st_ctime_nsec; + ino_t st_ino; +}; diff --git a/lib/libc/musl/arch/m68k/pthread_arch.h b/lib/libc/musl/arch/m68k/pthread_arch.h new file mode 100644 index 0000000000..5bea4e1adc --- /dev/null +++ b/lib/libc/musl/arch/m68k/pthread_arch.h @@ -0,0 +1,12 @@ +static inline uintptr_t __get_tp() +{ + return __syscall(SYS_get_thread_area); +} + +#define TLS_ABOVE_TP +#define GAP_ABOVE_TP 0 + +#define TP_OFFSET 0x7000 +#define DTP_OFFSET 0x8000 + +#define MC_PC gregs[R_PC] diff --git a/lib/libc/musl/arch/m68k/reloc.h b/lib/libc/musl/arch/m68k/reloc.h new file mode 100644 index 0000000000..f920b39e03 --- /dev/null +++ b/lib/libc/musl/arch/m68k/reloc.h @@ -0,0 +1,30 @@ +#if __HAVE_68881__ +#define FP_SUFFIX "" +#elif __mcffpu__ +#define FP_SUFFIX "-fp64" +#else +#define FP_SUFFIX "-sf" +#endif + +#define LDSO_ARCH "m68k" FP_SUFFIX + +#define TPOFF_K (-0x7000) + +#define REL_SYMBOLIC R_68K_32 +#define REL_OFFSET R_68K_PC32 +#define REL_GOT R_68K_GLOB_DAT +#define REL_PLT R_68K_JMP_SLOT +#define REL_RELATIVE R_68K_RELATIVE +#define REL_COPY R_68K_COPY +#define REL_DTPMOD R_68K_TLS_DTPMOD32 +#define REL_DTPOFF R_68K_TLS_DTPREL32 +#define REL_TPOFF R_68K_TLS_TPREL32 + +#define CRTJMP(pc,sp) __asm__ __volatile__( \ + "move.l %1,%%sp ; jmp (%0)" : : "r"(pc), "r"(sp) : "memory" ) + +#define GETFUNCSYM(fp, sym, got) __asm__ ( \ + ".hidden " #sym "\n" \ + "lea " #sym "-.-8,%0 \n" \ + "lea (%%pc,%0),%0 \n" \ + : "=a"(*fp) : : "memory" ) diff --git a/lib/libc/musl/arch/m68k/syscall_arch.h b/lib/libc/musl/arch/m68k/syscall_arch.h new file mode 100644 index 0000000000..6a9d0ae8e4 --- /dev/null +++ b/lib/libc/musl/arch/m68k/syscall_arch.h @@ -0,0 +1,90 @@ +#define __SYSCALL_LL_E(x) \ +((union { long long ll; long l[2]; }){ .ll = x }).l[0], \ +((union { long long ll; long l[2]; }){ .ll = x }).l[1] +#define __SYSCALL_LL_O(x) __SYSCALL_LL_E((x)) + +static __inline long __syscall0(long n) +{ + register unsigned long d0 __asm__("d0") = n; + __asm__ __volatile__ ("trap #0" : "+r"(d0) + : + : "memory"); + return d0; +} + +static inline long __syscall1(long n, long a) +{ + register unsigned long d0 __asm__("d0") = n; + register unsigned long d1 __asm__("d1") = a; + __asm__ __volatile__ ("trap #0" : "+r"(d0) + : "r"(d1) + : "memory"); + return d0; +} + +static inline long __syscall2(long n, long a, long b) +{ + register unsigned long d0 __asm__("d0") = n; + register unsigned long d1 __asm__("d1") = a; + register unsigned long d2 __asm__("d2") = b; + __asm__ __volatile__ ("trap #0" : "+r"(d0) + : "r"(d1), "r"(d2) + : "memory"); + return d0; +} + +static inline long __syscall3(long n, long a, long b, long c) +{ + register unsigned long d0 __asm__("d0") = n; + register unsigned long d1 __asm__("d1") = a; + register unsigned long d2 __asm__("d2") = b; + register unsigned long d3 __asm__("d3") = c; + __asm__ __volatile__ ("trap #0" : "+r"(d0) + : "r"(d1), "r"(d2), "r"(d3) + : "memory"); + return d0; +} + +static inline long __syscall4(long n, long a, long b, long c, long d) +{ + register unsigned long d0 __asm__("d0") = n; + register unsigned long d1 __asm__("d1") = a; + register unsigned long d2 __asm__("d2") = b; + register unsigned long d3 __asm__("d3") = c; + register unsigned long d4 __asm__("d4") = d; + __asm__ __volatile__ ("trap #0" : "+r"(d0) + : "r"(d1), "r"(d2), "r"(d3), "r"(d4) + : "memory"); + return d0; +} + +static inline long __syscall5(long n, long a, long b, long c, long d, long e) +{ + register unsigned long d0 __asm__("d0") = n; + register unsigned long d1 __asm__("d1") = a; + register unsigned long d2 __asm__("d2") = b; + register unsigned long d3 __asm__("d3") = c; + register unsigned long d4 __asm__("d4") = d; + register unsigned long d5 __asm__("d5") = e; + __asm__ __volatile__ ("trap #0" : "+r"(d0) + : "r"(d1), "r"(d2), "r"(d3), "r"(d4), "r"(d5) + : "memory"); + return d0; +} + +static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f) +{ + register unsigned long d0 __asm__("d0") = n; + register unsigned long d1 __asm__("d1") = a; + register unsigned long d2 __asm__("d2") = b; + register unsigned long d3 __asm__("d3") = c; + register unsigned long d4 __asm__("d4") = d; + register unsigned long d5 __asm__("d5") = e; + register unsigned long a0 __asm__("a0") = f; + __asm__ __volatile__ ("trap #0" : "+r"(d0) + : "r"(d1), "r"(d2), "r"(d3), "r"(d4), "r"(d5), "r"(a0) + : "memory"); + return d0; +} + +#define SYSCALL_IPC_BROKEN_MODE diff --git a/lib/libc/musl/arch/mips/arch.mak b/lib/libc/musl/arch/mips/arch.mak new file mode 100644 index 0000000000..aa4d05ceff --- /dev/null +++ b/lib/libc/musl/arch/mips/arch.mak @@ -0,0 +1 @@ +COMPAT_SRC_DIRS = compat/time32 diff --git a/lib/libc/musl/arch/mips/bits/syscall.h.in b/lib/libc/musl/arch/mips/bits/syscall.h.in index 2bb03f067a..63e3503a6b 100644 --- a/lib/libc/musl/arch/mips/bits/syscall.h.in +++ b/lib/libc/musl/arch/mips/bits/syscall.h.in @@ -412,4 +412,10 @@ #define __NR_openat2 4437 #define __NR_pidfd_getfd 4438 #define __NR_faccessat2 4439 +#define __NR_process_madvise 4440 +#define __NR_epoll_pwait2 4441 +#define __NR_mount_setattr 4442 +#define __NR_landlock_create_ruleset 4444 +#define __NR_landlock_add_rule 4445 +#define __NR_landlock_restrict_self 4446 diff --git a/lib/libc/musl/arch/mips/pthread_arch.h b/lib/libc/musl/arch/mips/pthread_arch.h index c45347ab92..376b77415a 100644 --- a/lib/libc/musl/arch/mips/pthread_arch.h +++ b/lib/libc/musl/arch/mips/pthread_arch.h @@ -1,10 +1,9 @@ static inline uintptr_t __get_tp() { -#if __mips_isa_rev < 2 register uintptr_t tp __asm__("$3"); +#if __mips_isa_rev < 2 __asm__ (".word 0x7c03e83b" : "=r" (tp) ); #else - uintptr_t tp; __asm__ ("rdhwr %0, $29" : "=r" (tp) ); #endif return tp; diff --git a/lib/libc/musl/arch/mips64/bits/syscall.h.in b/lib/libc/musl/arch/mips64/bits/syscall.h.in index 045e8238ad..b89965d11a 100644 --- a/lib/libc/musl/arch/mips64/bits/syscall.h.in +++ b/lib/libc/musl/arch/mips64/bits/syscall.h.in @@ -342,4 +342,10 @@ #define __NR_openat2 5437 #define __NR_pidfd_getfd 5438 #define __NR_faccessat2 5439 +#define __NR_process_madvise 5440 +#define __NR_epoll_pwait2 5441 +#define __NR_mount_setattr 5442 +#define __NR_landlock_create_ruleset 5444 +#define __NR_landlock_add_rule 5445 +#define __NR_landlock_restrict_self 5446 diff --git a/lib/libc/musl/arch/powerpc/arch.mak b/lib/libc/musl/arch/powerpc/arch.mak new file mode 100644 index 0000000000..aa4d05ceff --- /dev/null +++ b/lib/libc/musl/arch/powerpc/arch.mak @@ -0,0 +1 @@ +COMPAT_SRC_DIRS = compat/time32 diff --git a/lib/libc/musl/arch/powerpc/bits/fenv.h b/lib/libc/musl/arch/powerpc/bits/fenv.h index c5a3e5c5c7..5b15c69a3a 100644 --- a/lib/libc/musl/arch/powerpc/bits/fenv.h +++ b/lib/libc/musl/arch/powerpc/bits/fenv.h @@ -1,4 +1,4 @@ -#ifdef _SOFT_FLOAT +#if defined(_SOFT_FLOAT) || defined(__NO_FPRS__) #define FE_ALL_EXCEPT 0 #define FE_TONEAREST 0 #else diff --git a/lib/libc/musl/arch/powerpc/bits/shm.h b/lib/libc/musl/arch/powerpc/bits/shm.h index fb1d4020f6..7f1ca17ebf 100644 --- a/lib/libc/musl/arch/powerpc/bits/shm.h +++ b/lib/libc/musl/arch/powerpc/bits/shm.h @@ -8,11 +8,11 @@ struct shmid_ds { unsigned long __shm_dtime_lo; unsigned long __shm_ctime_hi; unsigned long __shm_ctime_lo; + unsigned long __pad1; size_t shm_segsz; pid_t shm_cpid; pid_t shm_lpid; unsigned long shm_nattch; - unsigned long __pad1; unsigned long __pad2; time_t shm_atime; time_t shm_dtime; diff --git a/lib/libc/musl/arch/powerpc/bits/syscall.h.in b/lib/libc/musl/arch/powerpc/bits/syscall.h.in index 5c6fae3e58..b1605a58f1 100644 --- a/lib/libc/musl/arch/powerpc/bits/syscall.h.in +++ b/lib/libc/musl/arch/powerpc/bits/syscall.h.in @@ -419,4 +419,10 @@ #define __NR_openat2 437 #define __NR_pidfd_getfd 438 #define __NR_faccessat2 439 +#define __NR_process_madvise 440 +#define __NR_epoll_pwait2 441 +#define __NR_mount_setattr 442 +#define __NR_landlock_create_ruleset 444 +#define __NR_landlock_add_rule 445 +#define __NR_landlock_restrict_self 446 diff --git a/lib/libc/musl/arch/powerpc/reloc.h b/lib/libc/musl/arch/powerpc/reloc.h index 527b6b7cdc..fdfbf827e8 100644 --- a/lib/libc/musl/arch/powerpc/reloc.h +++ b/lib/libc/musl/arch/powerpc/reloc.h @@ -1,4 +1,4 @@ -#ifdef _SOFT_FLOAT +#if defined(_SOFT_FLOAT) || defined(__NO_FPRS__) #define FP_SUFFIX "-sf" #else #define FP_SUFFIX "" diff --git a/lib/libc/musl/arch/powerpc64/bits/syscall.h.in b/lib/libc/musl/arch/powerpc64/bits/syscall.h.in index edf73d3d6b..b3a8fba092 100644 --- a/lib/libc/musl/arch/powerpc64/bits/syscall.h.in +++ b/lib/libc/musl/arch/powerpc64/bits/syscall.h.in @@ -391,4 +391,10 @@ #define __NR_openat2 437 #define __NR_pidfd_getfd 438 #define __NR_faccessat2 439 +#define __NR_process_madvise 440 +#define __NR_epoll_pwait2 441 +#define __NR_mount_setattr 442 +#define __NR_landlock_create_ruleset 444 +#define __NR_landlock_add_rule 445 +#define __NR_landlock_restrict_self 446 diff --git a/lib/libc/musl/arch/riscv64/bits/syscall.h.in b/lib/libc/musl/arch/riscv64/bits/syscall.h.in index 5def016b12..b534afe81c 100644 --- a/lib/libc/musl/arch/riscv64/bits/syscall.h.in +++ b/lib/libc/musl/arch/riscv64/bits/syscall.h.in @@ -76,7 +76,7 @@ #define __NR_splice 76 #define __NR_tee 77 #define __NR_readlinkat 78 -#define __NR_fstatat 79 +#define __NR_newfstatat 79 #define __NR_fstat 80 #define __NR_sync 81 #define __NR_fsync 82 @@ -293,6 +293,12 @@ #define __NR_openat2 437 #define __NR_pidfd_getfd 438 #define __NR_faccessat2 439 +#define __NR_process_madvise 440 +#define __NR_epoll_pwait2 441 +#define __NR_mount_setattr 442 +#define __NR_landlock_create_ruleset 444 +#define __NR_landlock_add_rule 445 +#define __NR_landlock_restrict_self 446 #define __NR_sysriscv __NR_arch_specific_syscall #define __NR_riscv_flush_icache (__NR_sysriscv + 15) diff --git a/lib/libc/musl/arch/riscv64/bits/user.h b/lib/libc/musl/arch/riscv64/bits/user.h index 2da743eaf8..0d37de0b04 100644 --- a/lib/libc/musl/arch/riscv64/bits/user.h +++ b/lib/libc/musl/arch/riscv64/bits/user.h @@ -1,5 +1,6 @@ #include <signal.h> #define ELF_NGREG 32 +#define ELF_NFPREG 33 typedef unsigned long elf_greg_t, elf_gregset_t[ELF_NGREG]; typedef union __riscv_mc_fp_state elf_fpregset_t; diff --git a/lib/libc/musl/arch/s390x/bits/ptrace.h b/lib/libc/musl/arch/s390x/bits/ptrace.h index d50e326211..a06cb0778f 100644 --- a/lib/libc/musl/arch/s390x/bits/ptrace.h +++ b/lib/libc/musl/arch/s390x/bits/ptrace.h @@ -1,4 +1,7 @@ #define PTRACE_SINGLEBLOCK 12 +#define PTRACE_OLDSETOPTIONS 21 +#define PTRACE_SYSEMU 31 +#define PTRACE_SYSEMU_SINGLESTEP 32 #define PTRACE_PEEKUSR_AREA 0x5000 #define PTRACE_POKEUSR_AREA 0x5001 #define PTRACE_GET_LAST_BREAK 0x5006 diff --git a/lib/libc/musl/arch/s390x/bits/syscall.h.in b/lib/libc/musl/arch/s390x/bits/syscall.h.in index fb2e60e30b..dfc384792a 100644 --- a/lib/libc/musl/arch/s390x/bits/syscall.h.in +++ b/lib/libc/musl/arch/s390x/bits/syscall.h.in @@ -356,4 +356,10 @@ #define __NR_openat2 437 #define __NR_pidfd_getfd 438 #define __NR_faccessat2 439 +#define __NR_process_madvise 440 +#define __NR_epoll_pwait2 441 +#define __NR_mount_setattr 442 +#define __NR_landlock_create_ruleset 444 +#define __NR_landlock_add_rule 445 +#define __NR_landlock_restrict_self 446 diff --git a/lib/libc/musl/arch/x86_64/bits/syscall.h.in b/lib/libc/musl/arch/x86_64/bits/syscall.h.in index a611795104..c3882de7e7 100644 --- a/lib/libc/musl/arch/x86_64/bits/syscall.h.in +++ b/lib/libc/musl/arch/x86_64/bits/syscall.h.in @@ -349,4 +349,10 @@ #define __NR_openat2 437 #define __NR_pidfd_getfd 438 #define __NR_faccessat2 439 +#define __NR_process_madvise 440 +#define __NR_epoll_pwait2 441 +#define __NR_mount_setattr 442 +#define __NR_landlock_create_ruleset 444 +#define __NR_landlock_add_rule 445 +#define __NR_landlock_restrict_self 446 diff --git a/lib/libc/musl/include/ctype.h b/lib/libc/musl/include/ctype.h index 7936536f57..32bcef4dab 100644 --- a/lib/libc/musl/include/ctype.h +++ b/lib/libc/musl/include/ctype.h @@ -64,7 +64,9 @@ int isascii(int); int toascii(int); #define _tolower(a) ((a)|0x20) #define _toupper(a) ((a)&0x5f) +#ifndef __cplusplus #define isascii(a) (0 ? isascii(a) : (unsigned)(a) < 128) +#endif #endif diff --git a/lib/libc/musl/include/elf.h b/lib/libc/musl/include/elf.h index b5e7befb02..86e2f0bb7d 100644 --- a/lib/libc/musl/include/elf.h +++ b/lib/libc/musl/include/elf.h @@ -686,6 +686,8 @@ typedef struct { #define NT_ARM_PAC_MASK 0x406 #define NT_ARM_PACA_KEYS 0x407 #define NT_ARM_PACG_KEYS 0x408 +#define NT_ARM_TAGGED_ADDR_CTRL 0x409 +#define NT_ARM_PAC_ENABLED_KEYS 0x40a #define NT_METAG_CBUF 0x500 #define NT_METAG_RPIPE 0x501 #define NT_METAG_TLS 0x502 diff --git a/lib/libc/musl/include/locale.h b/lib/libc/musl/include/locale.h index ce384381c6..11106fea87 100644 --- a/lib/libc/musl/include/locale.h +++ b/lib/libc/musl/include/locale.h @@ -7,7 +7,9 @@ extern "C" { #include <features.h> -#ifdef __cplusplus +#if __cplusplus >= 201103L +#define NULL nullptr +#elif defined(__cplusplus) #define NULL 0L #else #define NULL ((void*)0) diff --git a/lib/libc/musl/include/netinet/if_ether.h b/lib/libc/musl/include/netinet/if_ether.h index 55a2ff1b17..3479f511bf 100644 --- a/lib/libc/musl/include/netinet/if_ether.h +++ b/lib/libc/musl/include/netinet/if_ether.h @@ -66,6 +66,7 @@ #define ETH_P_1588 0x88F7 #define ETH_P_NCSI 0x88F8 #define ETH_P_PRP 0x88FB +#define ETH_P_CFM 0x8902 #define ETH_P_FCOE 0x8906 #define ETH_P_TDLS 0x890D #define ETH_P_FIP 0x8914 diff --git a/lib/libc/musl/include/netinet/in.h b/lib/libc/musl/include/netinet/in.h index f9594339f0..fb628b61a9 100644 --- a/lib/libc/musl/include/netinet/in.h +++ b/lib/libc/musl/include/netinet/in.h @@ -48,6 +48,7 @@ struct ipv6_mreq { #define INADDR_BROADCAST ((in_addr_t) 0xffffffff) #define INADDR_NONE ((in_addr_t) 0xffffffff) #define INADDR_LOOPBACK ((in_addr_t) 0x7f000001) +#define INADDR_DUMMY ((in_addr_t) 0xc0000008) #define INADDR_UNSPEC_GROUP ((in_addr_t) 0xe0000000) #define INADDR_ALLHOSTS_GROUP ((in_addr_t) 0xe0000001) diff --git a/lib/libc/musl/include/netinet/tcp.h b/lib/libc/musl/include/netinet/tcp.h index b7b997f5fd..fad1d84494 100644 --- a/lib/libc/musl/include/netinet/tcp.h +++ b/lib/libc/musl/include/netinet/tcp.h @@ -80,6 +80,8 @@ enum { TCP_NLA_SRTT, TCP_NLA_TIMEOUT_REHASH, TCP_NLA_BYTES_NOTSENT, + TCP_NLA_EDT, + TCP_NLA_TTL, }; #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) @@ -281,12 +283,21 @@ struct tcp_repair_window { uint32_t rcv_wup; }; +#define TCP_RECEIVE_ZEROCOPY_FLAG_TLB_CLEAN_HINT 0x1 + struct tcp_zerocopy_receive { uint64_t address; uint32_t length; uint32_t recv_skip_hint; uint32_t inq; int32_t err; + uint64_t copybuf_address; + int32_t copybuf_len; + uint32_t flags; + uint64_t msg_control; + uint64_t msg_controllen; + uint32_t msg_flags; + uint32_t reserved; }; #endif diff --git a/lib/libc/musl/include/pthread.h b/lib/libc/musl/include/pthread.h index 0492f26a6b..89fd9ff7c1 100644 --- a/lib/libc/musl/include/pthread.h +++ b/lib/libc/musl/include/pthread.h @@ -221,6 +221,7 @@ int pthread_getaffinity_np(pthread_t, size_t, struct cpu_set_t *); int pthread_setaffinity_np(pthread_t, size_t, const struct cpu_set_t *); int pthread_getattr_np(pthread_t, pthread_attr_t *); int pthread_setname_np(pthread_t, const char *); +int pthread_getname_np(pthread_t, char *, size_t); int pthread_getattr_default_np(pthread_attr_t *); int pthread_setattr_default_np(const pthread_attr_t *); int pthread_tryjoin_np(pthread_t, void **); diff --git a/lib/libc/musl/include/setjmp.h b/lib/libc/musl/include/setjmp.h index 2d43abf84f..1976af231b 100644 --- a/lib/libc/musl/include/setjmp.h +++ b/lib/libc/musl/include/setjmp.h @@ -15,25 +15,33 @@ typedef struct __jmp_buf_tag { unsigned long __ss[128/sizeof(long)]; } jmp_buf[1]; +#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) +#define __setjmp_attr __attribute__((__returns_twice__)) +#else +#define __setjmp_attr +#endif + #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ || defined(_BSD_SOURCE) typedef jmp_buf sigjmp_buf; -int sigsetjmp (sigjmp_buf, int); +int sigsetjmp (sigjmp_buf, int) __setjmp_attr; _Noreturn void siglongjmp (sigjmp_buf, int); #endif #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ || defined(_BSD_SOURCE) -int _setjmp (jmp_buf); +int _setjmp (jmp_buf) __setjmp_attr; _Noreturn void _longjmp (jmp_buf, int); #endif -int setjmp (jmp_buf); +int setjmp (jmp_buf) __setjmp_attr; _Noreturn void longjmp (jmp_buf, int); #define setjmp setjmp +#undef __setjmp_attr + #ifdef __cplusplus } #endif diff --git a/lib/libc/musl/include/signal.h b/lib/libc/musl/include/signal.h index 9ed929e4f2..c347f8610a 100644 --- a/lib/libc/musl/include/signal.h +++ b/lib/libc/musl/include/signal.h @@ -75,6 +75,8 @@ typedef struct sigaltstack stack_t; #define SEGV_ACCERR 2 #define SEGV_BNDERR 3 #define SEGV_PKUERR 4 +#define SEGV_MTEAERR 8 +#define SEGV_MTESERR 9 #define BUS_ADRALN 1 #define BUS_ADRERR 2 @@ -176,6 +178,9 @@ struct sigaction { #define sa_handler __sa_handler.sa_handler #define sa_sigaction __sa_handler.sa_sigaction +#define SA_UNSUPPORTED 0x00000400 +#define SA_EXPOSE_TAGBITS 0x00000800 + struct sigevent { union sigval sigev_value; int sigev_signo; @@ -259,6 +264,9 @@ void (*sigset(int, void (*)(int)))(int); #if defined(_BSD_SOURCE) || defined(_GNU_SOURCE) #define NSIG _NSIG typedef void (*sig_t)(int); + +#define SYS_SECCOMP 1 +#define SYS_USER_DISPATCH 2 #endif #ifdef _GNU_SOURCE diff --git a/lib/libc/musl/include/stdc-predef.h b/lib/libc/musl/include/stdc-predef.h index f8cd4b8911..af1a27998f 100644 --- a/lib/libc/musl/include/stdc-predef.h +++ b/lib/libc/musl/include/stdc-predef.h @@ -7,4 +7,7 @@ #define __STDC_IEC_559__ 1 #endif +#define __STDC_UTF_16__ 1 +#define __STDC_UTF_32__ 1 + #endif diff --git a/lib/libc/musl/include/stddef.h b/lib/libc/musl/include/stddef.h index bd75385350..f25b86396e 100644 --- a/lib/libc/musl/include/stddef.h +++ b/lib/libc/musl/include/stddef.h @@ -1,7 +1,9 @@ #ifndef _STDDEF_H #define _STDDEF_H -#ifdef __cplusplus +#if __cplusplus >= 201103L +#define NULL nullptr +#elif defined(__cplusplus) #define NULL 0L #else #define NULL ((void*)0) diff --git a/lib/libc/musl/include/stdio.h b/lib/libc/musl/include/stdio.h index 3604198c3e..d1ed01f03f 100644 --- a/lib/libc/musl/include/stdio.h +++ b/lib/libc/musl/include/stdio.h @@ -25,7 +25,9 @@ extern "C" { #include <bits/alltypes.h> -#ifdef __cplusplus +#if __cplusplus >= 201103L +#define NULL nullptr +#elif defined(__cplusplus) #define NULL 0L #else #define NULL ((void*)0) diff --git a/lib/libc/musl/include/stdlib.h b/lib/libc/musl/include/stdlib.h index b54a051fe9..b507ca33b4 100644 --- a/lib/libc/musl/include/stdlib.h +++ b/lib/libc/musl/include/stdlib.h @@ -7,7 +7,9 @@ extern "C" { #include <features.h> -#ifdef __cplusplus +#if __cplusplus >= 201103L +#define NULL nullptr +#elif defined(__cplusplus) #define NULL 0L #else #define NULL ((void*)0) @@ -146,6 +148,7 @@ int clearenv(void); #define WCOREDUMP(s) ((s) & 0x80) #define WIFCONTINUED(s) ((s) == 0xffff) void *reallocarray (void *, size_t, size_t); +void qsort_r (void *, size_t, size_t, int (*)(const void *, const void *, void *), void *); #endif #ifdef _GNU_SOURCE diff --git a/lib/libc/musl/include/string.h b/lib/libc/musl/include/string.h index 795a2abcd9..43ad0942ed 100644 --- a/lib/libc/musl/include/string.h +++ b/lib/libc/musl/include/string.h @@ -7,7 +7,9 @@ extern "C" { #include <features.h> -#ifdef __cplusplus +#if __cplusplus >= 201103L +#define NULL nullptr +#elif defined(__cplusplus) #define NULL 0L #else #define NULL ((void*)0) diff --git a/lib/libc/musl/include/sys/membarrier.h b/lib/libc/musl/include/sys/membarrier.h index 10cb31083c..11193eda15 100644 --- a/lib/libc/musl/include/sys/membarrier.h +++ b/lib/libc/musl/include/sys/membarrier.h @@ -9,9 +9,13 @@ #define MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED 16 #define MEMBARRIER_CMD_PRIVATE_EXPEDITED_SYNC_CORE 32 #define MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_SYNC_CORE 64 +#define MEMBARRIER_CMD_PRIVATE_EXPEDITED_RSEQ 128 +#define MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED_RSEQ 256 #define MEMBARRIER_CMD_SHARED MEMBARRIER_CMD_GLOBAL +#define MEMBARRIER_CMD_FLAG_CPU 1 + int membarrier(int, int); #endif diff --git a/lib/libc/musl/include/sys/mman.h b/lib/libc/musl/include/sys/mman.h index 4d603e9104..80a3baae23 100644 --- a/lib/libc/musl/include/sys/mman.h +++ b/lib/libc/musl/include/sys/mman.h @@ -40,6 +40,7 @@ extern "C" { #define MAP_HUGE_SHIFT 26 #define MAP_HUGE_MASK 0x3f +#define MAP_HUGE_16KB (14 << 26) #define MAP_HUGE_64KB (16 << 26) #define MAP_HUGE_512KB (19 << 26) #define MAP_HUGE_1MB (20 << 26) diff --git a/lib/libc/musl/include/sys/mount.h b/lib/libc/musl/include/sys/mount.h index 57a89c09ec..09bd6e9dfe 100644 --- a/lib/libc/musl/include/sys/mount.h +++ b/lib/libc/musl/include/sys/mount.h @@ -31,6 +31,7 @@ extern "C" { #define MS_REMOUNT 32 #define MS_MANDLOCK 64 #define MS_DIRSYNC 128 +#define MS_NOSYMFOLLOW 256 #define MS_NOATIME 1024 #define MS_NODIRATIME 2048 #define MS_BIND 4096 diff --git a/lib/libc/musl/include/sys/prctl.h b/lib/libc/musl/include/sys/prctl.h index 4b9fcc0508..087a75c9da 100644 --- a/lib/libc/musl/include/sys/prctl.h +++ b/lib/libc/musl/include/sys/prctl.h @@ -157,10 +157,26 @@ struct prctl_mm_map { #define PR_SET_TAGGED_ADDR_CTRL 55 #define PR_GET_TAGGED_ADDR_CTRL 56 #define PR_TAGGED_ADDR_ENABLE (1UL << 0) +#define PR_MTE_TCF_SHIFT 1 +#define PR_MTE_TCF_NONE (0UL << 1) +#define PR_MTE_TCF_SYNC (1UL << 1) +#define PR_MTE_TCF_ASYNC (2UL << 1) +#define PR_MTE_TCF_MASK (3UL << 1) +#define PR_MTE_TAG_SHIFT 3 +#define PR_MTE_TAG_MASK (0xffffUL << 3) #define PR_SET_IO_FLUSHER 57 #define PR_GET_IO_FLUSHER 58 +#define PR_SET_SYSCALL_USER_DISPATCH 59 +#define PR_SYS_DISPATCH_OFF 0 +#define PR_SYS_DISPATCH_ON 1 +#define SYSCALL_DISPATCH_FILTER_ALLOW 0 +#define SYSCALL_DISPATCH_FILTER_BLOCK 1 + +#define PR_PAC_SET_ENABLED_KEYS 60 +#define PR_PAC_GET_ENABLED_KEYS 61 + int prctl (int, ...); #ifdef __cplusplus diff --git a/lib/libc/musl/include/sys/ptrace.h b/lib/libc/musl/include/sys/ptrace.h index 5d62a9859a..c72e3c061c 100644 --- a/lib/libc/musl/include/sys/ptrace.h +++ b/lib/libc/musl/include/sys/ptrace.h @@ -42,6 +42,7 @@ extern "C" { #define PTRACE_SECCOMP_GET_FILTER 0x420c #define PTRACE_SECCOMP_GET_METADATA 0x420d #define PTRACE_GET_SYSCALL_INFO 0x420e +#define PTRACE_GET_RSEQ_CONFIGURATION 0x420f #define PT_READ_I PTRACE_PEEKTEXT #define PT_READ_D PTRACE_PEEKDATA @@ -130,6 +131,14 @@ struct __ptrace_syscall_info { }; }; +struct __ptrace_rseq_configuration { + uint64_t rseq_abi_pointer; + uint32_t rseq_abi_size; + uint32_t signature; + uint32_t flags; + uint32_t pad; +}; + long ptrace(int, ...); #ifdef __cplusplus diff --git a/lib/libc/musl/include/sys/socket.h b/lib/libc/musl/include/sys/socket.h index 38f5bb17b3..6dc1e40adf 100644 --- a/lib/libc/musl/include/sys/socket.h +++ b/lib/libc/musl/include/sys/socket.h @@ -289,6 +289,8 @@ struct linger { #define SCM_TXTIME SO_TXTIME #define SO_BINDTOIFINDEX 62 #define SO_DETACH_REUSEPORT_BPF 68 +#define SO_PREFER_BUSY_POLL 69 +#define SO_BUSY_POLL_BUDGET 70 #ifndef SOL_SOCKET #define SOL_SOCKET 1 diff --git a/lib/libc/musl/include/time.h b/lib/libc/musl/include/time.h index 5494df1836..3d94837205 100644 --- a/lib/libc/musl/include/time.h +++ b/lib/libc/musl/include/time.h @@ -7,7 +7,9 @@ extern "C" { #include <features.h> -#ifdef __cplusplus +#if __cplusplus >= 201103L +#define NULL nullptr +#elif defined(__cplusplus) #define NULL 0L #else #define NULL ((void*)0) diff --git a/lib/libc/musl/include/unistd.h b/lib/libc/musl/include/unistd.h index 1306402603..212263a7e8 100644 --- a/lib/libc/musl/include/unistd.h +++ b/lib/libc/musl/include/unistd.h @@ -14,8 +14,12 @@ extern "C" { #define SEEK_SET 0 #define SEEK_CUR 1 #define SEEK_END 2 +#define SEEK_DATA 3 +#define SEEK_HOLE 4 -#ifdef __cplusplus +#if __cplusplus >= 201103L +#define NULL nullptr +#elif defined(__cplusplus) #define NULL 0L #else #define NULL ((void*)0) diff --git a/lib/libc/musl/include/wchar.h b/lib/libc/musl/include/wchar.h index 88eb55b18c..ed5d774dfa 100644 --- a/lib/libc/musl/include/wchar.h +++ b/lib/libc/musl/include/wchar.h @@ -38,7 +38,9 @@ extern "C" { #define WCHAR_MIN (-1-0x7fffffff+L'\0') #endif -#ifdef __cplusplus +#if __cplusplus >= 201103L +#define NULL nullptr +#elif defined(__cplusplus) #define NULL 0L #else #define NULL ((void*)0) diff --git a/lib/libc/musl/libc.S b/lib/libc/musl/libc.S index 14970ca0ea..7ee1f1a4ed 100644 --- a/lib/libc/musl/libc.S +++ b/lib/libc/musl/libc.S @@ -7,7 +7,134 @@ #define PTR_SIZE_BYTES 4 #define PTR2_SIZE_BYTES 8 #endif +.bss +.weak ___environ +.type ___environ, %object; +.size ___environ, PTR_SIZE_BYTES +___environ: +.globl __daylight +.type __daylight, %object; +.size __daylight, 4 +__daylight: +.globl __environ +.type __environ, %object; +.size __environ, PTR_SIZE_BYTES +__environ: +.globl __optpos +.type __optpos, %object; +.size __optpos, 4 +__optpos: +.globl __optreset +.type __optreset, %object; +.size __optreset, 4 +__optreset: +.globl __progname +.type __progname, %object; +.size __progname, PTR_SIZE_BYTES +__progname: +.globl __progname_full +.type __progname_full, %object; +.size __progname_full, PTR_SIZE_BYTES +__progname_full: +.globl __signgam +.type __signgam, %object; +.size __signgam, 4 +__signgam: +.globl __stack_chk_guard +.type __stack_chk_guard, %object; +.size __stack_chk_guard, PTR_SIZE_BYTES +__stack_chk_guard: +.globl __timezone +.type __timezone, %object; +.size __timezone, PTR_SIZE_BYTES +__timezone: +.globl __tzname +.type __tzname, %object; +.size __tzname, PTR2_SIZE_BYTES +__tzname: +.weak _environ +.type _environ, %object; +.size _environ, PTR_SIZE_BYTES +_environ: +.weak daylight +.type daylight, %object; +.size daylight, 4 +daylight: +.weak environ +.type environ, %object; +.size environ, PTR_SIZE_BYTES +environ: +.globl getdate_err +.type getdate_err, %object; +.size getdate_err, 4 +getdate_err: +.globl h_errno +.type h_errno, %object; +.size h_errno, 4 +h_errno: +.globl optarg +.type optarg, %object; +.size optarg, PTR_SIZE_BYTES +optarg: +.globl optopt +.type optopt, %object; +.size optopt, 4 +optopt: +.weak optreset +.type optreset, %object; +.size optreset, 4 +optreset: +.weak program_invocation_name +.type program_invocation_name, %object; +.size program_invocation_name, PTR_SIZE_BYTES +program_invocation_name: +.weak program_invocation_short_name +.type program_invocation_short_name, %object; +.size program_invocation_short_name, PTR_SIZE_BYTES +program_invocation_short_name: +.weak signgam +.type signgam, %object; +.size signgam, 4 +signgam: +.weak timezone +.type timezone, %object; +.size timezone, PTR_SIZE_BYTES +timezone: +.weak tzname +.type tzname, %object; +.size tzname, PTR2_SIZE_BYTES +tzname: +.data +.globl _dl_debug_addr +.type _dl_debug_addr, %object; +.size _dl_debug_addr, PTR_SIZE_BYTES +_dl_debug_addr: +.globl opterr +.type opterr, %object; +.size opterr, 4 +opterr: +.globl optind +.type optind, %object; +.size optind, 4 +optind: +.data.rel.ro +.globl stderr +.type stderr, %object; +.size stderr, PTR_SIZE_BYTES +stderr: +.globl stdin +.type stdin, %object; +.size stdin, PTR_SIZE_BYTES +stdin: +.globl stdout +.type stdout, %object; +.size stdout, PTR_SIZE_BYTES +stdout: .rodata +.globl _ns_flagdata +.type _ns_flagdata, %object; +.size _ns_flagdata, 128 +_ns_flagdata: .globl in6addr_any .type in6addr_any, %object; .size in6addr_any, 16 @@ -16,59 +143,916 @@ in6addr_any: .type in6addr_loopback, %object; .size in6addr_loopback, 16 in6addr_loopback: -.globl _ns_flagdata -.type _ns_flagdata, %object; -.size _ns_flagdata, 128 -_ns_flagdata: .text -.weak aio_read64 -.type aio_read64, %function; -aio_read64: -.globl aio_read -.type aio_read, %function; -aio_read: -.globl aio_write -.type aio_write, %function; -aio_write: -.weak aio_write64 -.type aio_write64, %function; -aio_write64: +.globl _Exit +.type _Exit, %function; +_Exit: +.globl _Fork +.type _Fork, %function; +_Fork: +.weak _IO_feof_unlocked +.type _IO_feof_unlocked, %function; +_IO_feof_unlocked: +.weak _IO_ferror_unlocked +.type _IO_ferror_unlocked, %function; +_IO_ferror_unlocked: +.weak _IO_getc +.type _IO_getc, %function; +_IO_getc: +.weak _IO_getc_unlocked +.type _IO_getc_unlocked, %function; +_IO_getc_unlocked: +.weak _IO_putc +.type _IO_putc, %function; +_IO_putc: +.weak _IO_putc_unlocked +.type _IO_putc_unlocked, %function; +_IO_putc_unlocked: +#if !defined(ARCH_riscv64) && !defined(ARCH_mips) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) +.globl ___tls_get_addr +.type ___tls_get_addr, %function; +___tls_get_addr: +#endif +#ifdef PTR32 +.globl __adjtime64 +.type __adjtime64, %function; +__adjtime64: +.globl __adjtimex_time64 +.type __adjtimex_time64, %function; +__adjtimex_time64: +.globl __aio_suspend_time64 +.type __aio_suspend_time64, %function; +__aio_suspend_time64: +#endif +.globl __assert_fail +.type __assert_fail, %function; +__assert_fail: +#if !defined(ARCH_riscv64) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) +.globl __cachectl +.type __cachectl, %function; +__cachectl: +#endif +#ifdef PTR32 +.globl __clock_adjtime64 +.type __clock_adjtime64, %function; +__clock_adjtime64: +.globl __clock_getres_time64 +.type __clock_getres_time64, %function; +__clock_getres_time64: +.weak __clock_gettime64 +.type __clock_gettime64, %function; +__clock_gettime64: +.weak __clock_nanosleep_time64 +.type __clock_nanosleep_time64, %function; +__clock_nanosleep_time64: +.globl __clock_settime64 +.type __clock_settime64, %function; +__clock_settime64: +.globl __cnd_timedwait_time64 +.type __cnd_timedwait_time64, %function; +__cnd_timedwait_time64: +.globl __ctime64 +.type __ctime64, %function; +__ctime64: +.globl __ctime64_r +.type __ctime64_r, %function; +__ctime64_r: +#endif +.globl __ctype_b_loc +.type __ctype_b_loc, %function; +__ctype_b_loc: +.globl __ctype_get_mb_cur_max +.type __ctype_get_mb_cur_max, %function; +__ctype_get_mb_cur_max: +.globl __ctype_tolower_loc +.type __ctype_tolower_loc, %function; +__ctype_tolower_loc: +.globl __ctype_toupper_loc +.type __ctype_toupper_loc, %function; +__ctype_toupper_loc: +.globl __cxa_atexit +.type __cxa_atexit, %function; +__cxa_atexit: +.globl __cxa_finalize +.type __cxa_finalize, %function; +__cxa_finalize: +#ifdef PTR32 +.globl __difftime64 +.type __difftime64, %function; +__difftime64: +#endif +.globl __dls2b +.type __dls2b, %function; +__dls2b: +.globl __dls3 +.type __dls3, %function; +__dls3: +#ifdef PTR32 +.globl __dlsym_time64 +.type __dlsym_time64, %function; +__dlsym_time64: +#endif +.globl __duplocale +.type __duplocale, %function; +__duplocale: +.globl __errno_location +.type __errno_location, %function; +__errno_location: +.globl __fbufsize +.type __fbufsize, %function; +__fbufsize: +.globl __fgetwc_unlocked +.type __fgetwc_unlocked, %function; +__fgetwc_unlocked: +.globl __flbf +.type __flbf, %function; +__flbf: +.globl __flt_rounds +.type __flt_rounds, %function; +__flt_rounds: +.globl __fpclassify +.type __fpclassify, %function; +__fpclassify: +.globl __fpclassifyf +.type __fpclassifyf, %function; +__fpclassifyf: +.globl __fpclassifyl +.type __fpclassifyl, %function; +__fpclassifyl: +.globl __fpending +.type __fpending, %function; +__fpending: +.globl __fpurge +.type __fpurge, %function; +__fpurge: +.globl __fputwc_unlocked +.type __fputwc_unlocked, %function; +__fputwc_unlocked: +.globl __freadable +.type __freadable, %function; +__freadable: +.globl __freadahead +.type __freadahead, %function; +__freadahead: +.globl __freading +.type __freading, %function; +__freading: +.globl __freadptr +.type __freadptr, %function; +__freadptr: +.globl __freadptrinc +.type __freadptrinc, %function; +__freadptrinc: +.weak __freelocale +.type __freelocale, %function; +__freelocale: +.globl __fseterr +.type __fseterr, %function; +__fseterr: +.globl __fsetlocking +.type __fsetlocking, %function; +__fsetlocking: +#ifdef PTR32 +.globl __fstat_time64 +.type __fstat_time64, %function; +__fstat_time64: +.globl __fstatat_time64 +.type __fstatat_time64, %function; +__fstatat_time64: +.globl __ftime64 +.type __ftime64, %function; +__ftime64: +.globl __futimens_time64 +.type __futimens_time64, %function; +__futimens_time64: +.globl __futimes_time64 +.type __futimes_time64, %function; +__futimes_time64: +.weak __futimesat_time64 +.type __futimesat_time64, %function; +__futimesat_time64: +#endif +.globl __fwritable +.type __fwritable, %function; +__fwritable: +.globl __fwriting +.type __fwriting, %function; +__fwriting: +#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_powerpc) +.globl __fxstat +.type __fxstat, %function; +__fxstat: +#endif +WEAK64 __fxstat64 +.type __fxstat64, %function; +__fxstat64: +#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_powerpc) +.globl __fxstatat +.type __fxstatat, %function; +__fxstatat: +#endif +WEAK64 __fxstatat64 +.type __fxstatat64, %function; +__fxstatat64: +.weak __getdelim +.type __getdelim, %function; +__getdelim: +#ifdef PTR32 +.globl __getitimer_time64 +.type __getitimer_time64, %function; +__getitimer_time64: +.globl __getrusage_time64 +.type __getrusage_time64, %function; +__getrusage_time64: +.globl __gettimeofday_time64 +.type __gettimeofday_time64, %function; +__gettimeofday_time64: +.globl __gmtime64 +.type __gmtime64, %function; +__gmtime64: +.weak __gmtime64_r +.type __gmtime64_r, %function; +__gmtime64_r: +#endif +.globl __h_errno_location +.type __h_errno_location, %function; +__h_errno_location: +.globl __isalnum_l +.type __isalnum_l, %function; +__isalnum_l: +.globl __isalpha_l +.type __isalpha_l, %function; +__isalpha_l: +.globl __isblank_l +.type __isblank_l, %function; +__isblank_l: +.globl __iscntrl_l +.type __iscntrl_l, %function; +__iscntrl_l: +.globl __isdigit_l +.type __isdigit_l, %function; +__isdigit_l: +.globl __isgraph_l +.type __isgraph_l, %function; +__isgraph_l: +.globl __islower_l +.type __islower_l, %function; +__islower_l: +.weak __isoc99_fscanf +.type __isoc99_fscanf, %function; +__isoc99_fscanf: +.weak __isoc99_fwscanf +.type __isoc99_fwscanf, %function; +__isoc99_fwscanf: +.weak __isoc99_scanf +.type __isoc99_scanf, %function; +__isoc99_scanf: +.weak __isoc99_sscanf +.type __isoc99_sscanf, %function; +__isoc99_sscanf: +.weak __isoc99_swscanf +.type __isoc99_swscanf, %function; +__isoc99_swscanf: +.weak __isoc99_vfscanf +.type __isoc99_vfscanf, %function; +__isoc99_vfscanf: +.weak __isoc99_vfwscanf +.type __isoc99_vfwscanf, %function; +__isoc99_vfwscanf: +.weak __isoc99_vscanf +.type __isoc99_vscanf, %function; +__isoc99_vscanf: +.weak __isoc99_vsscanf +.type __isoc99_vsscanf, %function; +__isoc99_vsscanf: +.weak __isoc99_vswscanf +.type __isoc99_vswscanf, %function; +__isoc99_vswscanf: +.weak __isoc99_vwscanf +.type __isoc99_vwscanf, %function; +__isoc99_vwscanf: +.weak __isoc99_wscanf +.type __isoc99_wscanf, %function; +__isoc99_wscanf: +.globl __isprint_l +.type __isprint_l, %function; +__isprint_l: +.globl __ispunct_l +.type __ispunct_l, %function; +__ispunct_l: +.globl __isspace_l +.type __isspace_l, %function; +__isspace_l: +.globl __isupper_l +.type __isupper_l, %function; +__isupper_l: +.globl __iswalnum_l +.type __iswalnum_l, %function; +__iswalnum_l: +.globl __iswalpha_l +.type __iswalpha_l, %function; +__iswalpha_l: +.globl __iswblank_l +.type __iswblank_l, %function; +__iswblank_l: +.globl __iswcntrl_l +.type __iswcntrl_l, %function; +__iswcntrl_l: +.globl __iswctype_l +.type __iswctype_l, %function; +__iswctype_l: +.globl __iswdigit_l +.type __iswdigit_l, %function; +__iswdigit_l: +.globl __iswgraph_l +.type __iswgraph_l, %function; +__iswgraph_l: +.globl __iswlower_l +.type __iswlower_l, %function; +__iswlower_l: +.globl __iswprint_l +.type __iswprint_l, %function; +__iswprint_l: +.globl __iswpunct_l +.type __iswpunct_l, %function; +__iswpunct_l: +.globl __iswspace_l +.type __iswspace_l, %function; +__iswspace_l: +.globl __iswupper_l +.type __iswupper_l, %function; +__iswupper_l: +.globl __iswxdigit_l +.type __iswxdigit_l, %function; +__iswxdigit_l: +.globl __isxdigit_l +.type __isxdigit_l, %function; +__isxdigit_l: +.globl __lgammal_r +.type __lgammal_r, %function; +__lgammal_r: +.globl __libc_current_sigrtmax +.type __libc_current_sigrtmax, %function; +__libc_current_sigrtmax: +.globl __libc_current_sigrtmin +.type __libc_current_sigrtmin, %function; +__libc_current_sigrtmin: +.globl __libc_start_main +.type __libc_start_main, %function; +__libc_start_main: +#ifdef PTR32 +.globl __localtime64 +.type __localtime64, %function; +__localtime64: +.weak __localtime64_r +.type __localtime64_r, %function; +__localtime64_r: +#endif +#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) +.globl __longjmp +.type __longjmp, %function; +__longjmp: +#endif +#ifdef PTR32 +.globl __lstat_time64 +.type __lstat_time64, %function; +__lstat_time64: +.globl __lutimes_time64 +.type __lutimes_time64, %function; +__lutimes_time64: +#endif +#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_powerpc) +.globl __lxstat +.type __lxstat, %function; +__lxstat: +#endif +WEAK64 __lxstat64 +.type __lxstat64, %function; +__lxstat64: +#ifdef PTR32 +.globl __mktime64 +.type __mktime64, %function; +__mktime64: +.globl __mq_timedreceive_time64 +.type __mq_timedreceive_time64, %function; +__mq_timedreceive_time64: +.globl __mq_timedsend_time64 +.type __mq_timedsend_time64, %function; +__mq_timedsend_time64: +.globl __mtx_timedlock_time64 +.type __mtx_timedlock_time64, %function; +__mtx_timedlock_time64: +.globl __nanosleep_time64 +.type __nanosleep_time64, %function; +__nanosleep_time64: +#endif +.globl __newlocale +.type __newlocale, %function; +__newlocale: +.globl __nl_langinfo +.type __nl_langinfo, %function; +__nl_langinfo: +.globl __nl_langinfo_l +.type __nl_langinfo_l, %function; +__nl_langinfo_l: +.globl __overflow +.type __overflow, %function; +.protected __overflow +__overflow: +.weak __posix_getopt +.type __posix_getopt, %function; +__posix_getopt: +#ifdef PTR32 +.globl __ppoll_time64 +.type __ppoll_time64, %function; +__ppoll_time64: +.globl __pselect_time64 +.type __pselect_time64, %function; +__pselect_time64: +.weak __pthread_cond_timedwait_time64 +.type __pthread_cond_timedwait_time64, %function; +__pthread_cond_timedwait_time64: +.weak __pthread_mutex_timedlock_time64 +.type __pthread_mutex_timedlock_time64, %function; +__pthread_mutex_timedlock_time64: +.weak __pthread_rwlock_timedrdlock_time64 +.type __pthread_rwlock_timedrdlock_time64, %function; +__pthread_rwlock_timedrdlock_time64: +.weak __pthread_rwlock_timedwrlock_time64 +.type __pthread_rwlock_timedwrlock_time64, %function; +__pthread_rwlock_timedwrlock_time64: +.weak __pthread_timedjoin_np_time64 +.type __pthread_timedjoin_np_time64, %function; +__pthread_timedjoin_np_time64: +.globl __recvmmsg_time64 +.type __recvmmsg_time64, %function; +__recvmmsg_time64: +#endif +.globl __res_state +.type __res_state, %function; +__res_state: +#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) +.globl __riscv_flush_icache +.type __riscv_flush_icache, %function; +__riscv_flush_icache: +#endif +.globl __sched_cpucount +.type __sched_cpucount, %function; +__sched_cpucount: +#ifdef PTR32 +.globl __sched_rr_get_interval_time64 +.type __sched_rr_get_interval_time64, %function; +__sched_rr_get_interval_time64: +.globl __select_time64 +.type __select_time64, %function; +__select_time64: +.globl __sem_timedwait_time64 +.type __sem_timedwait_time64, %function; +__sem_timedwait_time64: +.globl __semtimedop_time64 +.type __semtimedop_time64, %function; +__semtimedop_time64: +.globl __setitimer_time64 +.type __setitimer_time64, %function; +__setitimer_time64: +#endif +.globl __setjmp +.type __setjmp, %function; +__setjmp: +#ifdef PTR32 +.globl __settimeofday_time64 +.type __settimeofday_time64, %function; +__settimeofday_time64: +#endif +.globl __signbit +.type __signbit, %function; +__signbit: +.globl __signbitf +.type __signbitf, %function; +__signbitf: +.globl __signbitl +.type __signbitl, %function; +__signbitl: +.globl __sigsetjmp +.type __sigsetjmp, %function; +__sigsetjmp: +#ifdef PTR32 +.globl __sigtimedwait_time64 +.type __sigtimedwait_time64, %function; +__sigtimedwait_time64: +#endif +.globl __stack_chk_fail +.type __stack_chk_fail, %function; +__stack_chk_fail: +#ifdef PTR32 +.globl __stat_time64 +.type __stat_time64, %function; +__stat_time64: +.globl __stime64 +.type __stime64, %function; +__stime64: +#endif +.globl __strcasecmp_l +.type __strcasecmp_l, %function; +__strcasecmp_l: +.globl __strcoll_l +.type __strcoll_l, %function; +__strcoll_l: +.globl __strerror_l +.type __strerror_l, %function; +__strerror_l: +.globl __strncasecmp_l +.type __strncasecmp_l, %function; +__strncasecmp_l: +.weak __strtod_l +.type __strtod_l, %function; +__strtod_l: +.weak __strtof_l +.type __strtof_l, %function; +__strtof_l: +.weak __strtoimax_internal +.type __strtoimax_internal, %function; +__strtoimax_internal: +.weak __strtol_internal +.type __strtol_internal, %function; +__strtol_internal: +.weak __strtold_l +.type __strtold_l, %function; +__strtold_l: +.weak __strtoll_internal +.type __strtoll_internal, %function; +__strtoll_internal: +.weak __strtoul_internal +.type __strtoul_internal, %function; +__strtoul_internal: +.weak __strtoull_internal +.type __strtoull_internal, %function; +__strtoull_internal: +.weak __strtoumax_internal +.type __strtoumax_internal, %function; +__strtoumax_internal: +.globl __strxfrm_l +.type __strxfrm_l, %function; +__strxfrm_l: +.weak __sysv_signal +.type __sysv_signal, %function; +__sysv_signal: +#ifdef PTR32 +.globl __thrd_sleep_time64 +.type __thrd_sleep_time64, %function; +__thrd_sleep_time64: +.globl __time64 +.type __time64, %function; +__time64: +.globl __timegm_time64 +.type __timegm_time64, %function; +__timegm_time64: +.globl __timer_gettime64 +.type __timer_gettime64, %function; +__timer_gettime64: +.globl __timer_settime64 +.type __timer_settime64, %function; +__timer_settime64: +.globl __timerfd_gettime64 +.type __timerfd_gettime64, %function; +__timerfd_gettime64: +.globl __timerfd_settime64 +.type __timerfd_settime64, %function; +__timerfd_settime64: +.globl __timespec_get_time64 +.type __timespec_get_time64, %function; +__timespec_get_time64: +#endif +.globl __tls_get_addr +.type __tls_get_addr, %function; +__tls_get_addr: +.globl __tolower_l +.type __tolower_l, %function; +__tolower_l: +.globl __toupper_l +.type __toupper_l, %function; +__toupper_l: +.globl __towctrans_l +.type __towctrans_l, %function; +__towctrans_l: +.globl __towlower_l +.type __towlower_l, %function; +__towlower_l: +.globl __towupper_l +.type __towupper_l, %function; +__towupper_l: +.globl __uflow +.type __uflow, %function; +.protected __uflow +__uflow: +.globl __uselocale +.type __uselocale, %function; +__uselocale: +#ifdef PTR32 +.globl __utime64 +.type __utime64, %function; +__utime64: +.globl __utimensat_time64 +.type __utimensat_time64, %function; +__utimensat_time64: +.globl __utimes_time64 +.type __utimes_time64, %function; +__utimes_time64: +.globl __wait3_time64 +.type __wait3_time64, %function; +__wait3_time64: +.globl __wait4_time64 +.type __wait4_time64, %function; +__wait4_time64: +#endif +.globl __wcscoll_l +.type __wcscoll_l, %function; +__wcscoll_l: +.globl __wcsftime_l +.type __wcsftime_l, %function; +__wcsftime_l: +.globl __wcsxfrm_l +.type __wcsxfrm_l, %function; +__wcsxfrm_l: +.globl __wctrans_l +.type __wctrans_l, %function; +__wctrans_l: +.globl __wctype_l +.type __wctype_l, %function; +__wctype_l: +.globl __xmknod +.type __xmknod, %function; +__xmknod: +.globl __xmknodat +.type __xmknodat, %function; +__xmknodat: +.weak __xpg_basename +.type __xpg_basename, %function; +__xpg_basename: +.weak __xpg_strerror_r +.type __xpg_strerror_r, %function; +__xpg_strerror_r: +#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_powerpc) +.globl __xstat +.type __xstat, %function; +__xstat: +#endif +WEAK64 __xstat64 +.type __xstat64, %function; +__xstat64: +.weak _dl_debug_state +.type _dl_debug_state, %function; +_dl_debug_state: +.globl _dlstart +.type _dlstart, %function; +_dlstart: +.globl _exit +.type _exit, %function; +_exit: +.weak _fini +.type _fini, %function; +_fini: +#if !defined(ARCH_riscv64) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) +.globl _flush_cache +.type _flush_cache, %function; +_flush_cache: +#endif +.globl _flushlbf +.type _flushlbf, %function; +_flushlbf: +.weak _init +.type _init, %function; +_init: +.globl _longjmp +.type _longjmp, %function; +_longjmp: +.globl _pthread_cleanup_pop +.type _pthread_cleanup_pop, %function; +_pthread_cleanup_pop: +.globl _pthread_cleanup_push +.type _pthread_cleanup_push, %function; +_pthread_cleanup_push: +.globl _setjmp +.type _setjmp, %function; +_setjmp: +.globl a64l +.type a64l, %function; +a64l: +.globl abort +.type abort, %function; +abort: +.globl abs +.type abs, %function; +abs: +.globl accept +.type accept, %function; +accept: +.globl accept4 +.type accept4, %function; +accept4: +.globl access +.type access, %function; +access: +.globl acct +.type acct, %function; +acct: +.globl acos +.type acos, %function; +acos: +.globl acosf +.type acosf, %function; +acosf: +.globl acosh +.type acosh, %function; +acosh: +.globl acoshf +.type acoshf, %function; +acoshf: +.globl acoshl +.type acoshl, %function; +acoshl: +.globl acosl +.type acosl, %function; +acosl: +.globl addmntent +.type addmntent, %function; +addmntent: +.globl adjtime +.type adjtime, %function; +adjtime: +.globl adjtimex +.type adjtimex, %function; +adjtimex: +.globl aio_cancel +.type aio_cancel, %function; +aio_cancel: +.weak aio_cancel64 +.type aio_cancel64, %function; +aio_cancel64: +.globl aio_error +.type aio_error, %function; +aio_error: +.weak aio_error64 +.type aio_error64, %function; +aio_error64: .globl aio_fsync .type aio_fsync, %function; aio_fsync: .weak aio_fsync64 .type aio_fsync64, %function; aio_fsync64: -.weak aio_return64 -.type aio_return64, %function; -aio_return64: +.globl aio_read +.type aio_read, %function; +aio_read: +.weak aio_read64 +.type aio_read64, %function; +aio_read64: .globl aio_return .type aio_return, %function; aio_return: -.globl aio_error -.type aio_error, %function; -aio_error: -.weak aio_error64 -.type aio_error64, %function; -aio_error64: -.globl aio_cancel -.type aio_cancel, %function; -aio_cancel: -.weak aio_cancel64 -.type aio_cancel64, %function; -aio_cancel64: +.weak aio_return64 +.type aio_return64, %function; +aio_return64: .globl aio_suspend .type aio_suspend, %function; aio_suspend: .weak aio_suspend64 .type aio_suspend64, %function; aio_suspend64: -.globl lio_listio -.type lio_listio, %function; -lio_listio: -.weak lio_listio64 -.type lio_listio64, %function; -lio_listio64: +.globl aio_write +.type aio_write, %function; +aio_write: +.weak aio_write64 +.type aio_write64, %function; +aio_write64: +.globl alarm +.type alarm, %function; +alarm: +.globl aligned_alloc +.type aligned_alloc, %function; +aligned_alloc: +.globl alphasort +.type alphasort, %function; +alphasort: +.weak alphasort64 +.type alphasort64, %function; +alphasort64: +#if !defined(ARCH_riscv64) && !defined(ARCH_mips) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) +.globl arch_prctl +.type arch_prctl, %function; +arch_prctl: +#endif +.globl asctime +.type asctime, %function; +asctime: +.weak asctime_r +.type asctime_r, %function; +asctime_r: +.globl asin +.type asin, %function; +asin: +.globl asinf +.type asinf, %function; +asinf: +.globl asinh +.type asinh, %function; +asinh: +.globl asinhf +.type asinhf, %function; +asinhf: +.globl asinhl +.type asinhl, %function; +asinhl: +.globl asinl +.type asinl, %function; +asinl: +.globl asprintf +.type asprintf, %function; +asprintf: +.globl at_quick_exit +.type at_quick_exit, %function; +at_quick_exit: +.globl atan +.type atan, %function; +atan: +.globl atan2 +.type atan2, %function; +atan2: +.globl atan2f +.type atan2f, %function; +atan2f: +.globl atan2l +.type atan2l, %function; +atan2l: +.globl atanf +.type atanf, %function; +atanf: +.globl atanh +.type atanh, %function; +atanh: +.globl atanhf +.type atanhf, %function; +atanhf: +.globl atanhl +.type atanhl, %function; +atanhl: +.globl atanl +.type atanl, %function; +atanl: +.globl atexit +.type atexit, %function; +atexit: +.globl atof +.type atof, %function; +atof: +.globl atoi +.type atoi, %function; +atoi: +.globl atol +.type atol, %function; +atol: +.globl atoll +.type atoll, %function; +atoll: +.globl basename +.type basename, %function; +basename: +.globl bcmp +.type bcmp, %function; +bcmp: +.globl bcopy +.type bcopy, %function; +bcopy: +.globl bind +.type bind, %function; +bind: +.globl bind_textdomain_codeset +.type bind_textdomain_codeset, %function; +bind_textdomain_codeset: +.globl bindtextdomain +.type bindtextdomain, %function; +bindtextdomain: +.globl brk +.type brk, %function; +brk: +.weak bsd_signal +.type bsd_signal, %function; +bsd_signal: +.globl bsearch +.type bsearch, %function; +bsearch: +.globl btowc +.type btowc, %function; +btowc: +.globl bzero +.type bzero, %function; +bzero: +.globl c16rtomb +.type c16rtomb, %function; +c16rtomb: +.globl c32rtomb +.type c32rtomb, %function; +c32rtomb: .globl cabs .type cabs, %function; cabs: @@ -78,6 +1062,16 @@ cabsf: .globl cabsl .type cabsl, %function; cabsl: +#if !defined(ARCH_riscv64) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) +.weak cachectl +.type cachectl, %function; +cachectl: +#endif +#if !defined(ARCH_riscv64) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) +.weak cacheflush +.type cacheflush, %function; +cacheflush: +#endif .globl cacos .type cacos, %function; cacos: @@ -96,6 +1090,18 @@ cacoshl: .globl cacosl .type cacosl, %function; cacosl: +.globl call_once +.type call_once, %function; +call_once: +.globl calloc +.type calloc, %function; +calloc: +.globl capget +.type capget, %function; +capget: +.globl capset +.type capset, %function; +capset: .globl carg .type carg, %function; carg: @@ -141,6 +1147,24 @@ catanhl: .globl catanl .type catanl, %function; catanl: +.globl catclose +.type catclose, %function; +catclose: +.globl catgets +.type catgets, %function; +catgets: +.globl catopen +.type catopen, %function; +catopen: +.globl cbrt +.type cbrt, %function; +cbrt: +.globl cbrtf +.type cbrtf, %function; +cbrtf: +.globl cbrtl +.type cbrtl, %function; +cbrtl: .globl ccos .type ccos, %function; ccos: @@ -159,6 +1183,15 @@ ccoshl: .globl ccosl .type ccosl, %function; ccosl: +.globl ceil +.type ceil, %function; +ceil: +.globl ceilf +.type ceilf, %function; +ceilf: +.globl ceill +.type ceill, %function; +ceill: .globl cexp .type cexp, %function; cexp: @@ -168,6 +1201,36 @@ cexpf: .globl cexpl .type cexpl, %function; cexpl: +.globl cfgetispeed +.type cfgetispeed, %function; +cfgetispeed: +.globl cfgetospeed +.type cfgetospeed, %function; +cfgetospeed: +.globl cfmakeraw +.type cfmakeraw, %function; +cfmakeraw: +.globl cfsetispeed +.type cfsetispeed, %function; +cfsetispeed: +.globl cfsetospeed +.type cfsetospeed, %function; +cfsetospeed: +.weak cfsetspeed +.type cfsetspeed, %function; +cfsetspeed: +.globl chdir +.type chdir, %function; +chdir: +.globl chmod +.type chmod, %function; +chmod: +.globl chown +.type chown, %function; +chown: +.globl chroot +.type chroot, %function; +chroot: .globl cimag .type cimag, %function; cimag: @@ -177,6 +1240,36 @@ cimagf: .globl cimagl .type cimagl, %function; cimagl: +.globl clearenv +.type clearenv, %function; +clearenv: +.globl clearerr +.type clearerr, %function; +clearerr: +.weak clearerr_unlocked +.type clearerr_unlocked, %function; +clearerr_unlocked: +.globl clock +.type clock, %function; +clock: +.globl clock_adjtime +.type clock_adjtime, %function; +clock_adjtime: +.globl clock_getcpuclockid +.type clock_getcpuclockid, %function; +clock_getcpuclockid: +.globl clock_getres +.type clock_getres, %function; +clock_getres: +WEAK64 clock_gettime +.type clock_gettime, %function; +clock_gettime: +WEAK64 clock_nanosleep +.type clock_nanosleep, %function; +clock_nanosleep: +.globl clock_settime +.type clock_settime, %function; +clock_settime: .globl clog .type clog, %function; clog: @@ -186,6 +1279,39 @@ clogf: .globl clogl .type clogl, %function; clogl: +.globl clone +.type clone, %function; +clone: +.globl close +.type close, %function; +close: +.globl closedir +.type closedir, %function; +closedir: +.globl closelog +.type closelog, %function; +closelog: +.globl cnd_broadcast +.type cnd_broadcast, %function; +cnd_broadcast: +.globl cnd_destroy +.type cnd_destroy, %function; +cnd_destroy: +.globl cnd_init +.type cnd_init, %function; +cnd_init: +.globl cnd_signal +.type cnd_signal, %function; +cnd_signal: +.globl cnd_timedwait +.type cnd_timedwait, %function; +cnd_timedwait: +.globl cnd_wait +.type cnd_wait, %function; +cnd_wait: +.globl confstr +.type confstr, %function; +confstr: .globl conj .type conj, %function; conj: @@ -195,6 +1321,39 @@ conjf: .globl conjl .type conjl, %function; conjl: +.globl connect +.type connect, %function; +connect: +.globl copy_file_range +.type copy_file_range, %function; +copy_file_range: +.globl copysign +.type copysign, %function; +copysign: +.globl copysignf +.type copysignf, %function; +copysignf: +.globl copysignl +.type copysignl, %function; +copysignl: +.globl cos +.type cos, %function; +cos: +.globl cosf +.type cosf, %function; +cosf: +.globl cosh +.type cosh, %function; +cosh: +.globl coshf +.type coshf, %function; +coshf: +.globl coshl +.type coshl, %function; +coshl: +.globl cosl +.type cosl, %function; +cosl: .globl cpow .type cpow, %function; cpow: @@ -222,6 +1381,18 @@ crealf: .globl creall .type creall, %function; creall: +.globl creat +.type creat, %function; +creat: +.weak creat64 +.type creat64, %function; +creat64: +.globl crypt +.type crypt, %function; +crypt: +.weak crypt_r +.type crypt_r, %function; +crypt_r: .globl csin .type csin, %function; csin: @@ -267,582 +1438,51 @@ ctanhl: .globl ctanl .type ctanl, %function; ctanl: -.globl confstr -.type confstr, %function; -confstr: -.globl fpathconf -.type fpathconf, %function; -fpathconf: -.globl get_nprocs_conf -.type get_nprocs_conf, %function; -get_nprocs_conf: -.globl get_nprocs -.type get_nprocs, %function; -get_nprocs: -.globl get_phys_pages -.type get_phys_pages, %function; -get_phys_pages: -.globl get_avphys_pages -.type get_avphys_pages, %function; -get_avphys_pages: -.globl pathconf -.type pathconf, %function; -pathconf: -.globl sysconf -.type sysconf, %function; -sysconf: -.globl crypt -.type crypt, %function; -crypt: -.weak crypt_r -.type crypt_r, %function; -crypt_r: -.globl setkey -.type setkey, %function; -setkey: -.globl encrypt -.type encrypt, %function; -encrypt: -.globl __ctype_b_loc -.type __ctype_b_loc, %function; -__ctype_b_loc: -.globl __ctype_get_mb_cur_max -.type __ctype_get_mb_cur_max, %function; -__ctype_get_mb_cur_max: -.globl __ctype_tolower_loc -.type __ctype_tolower_loc, %function; -__ctype_tolower_loc: -.globl __ctype_toupper_loc -.type __ctype_toupper_loc, %function; -__ctype_toupper_loc: -.globl isalnum -.type isalnum, %function; -isalnum: -.globl __isalnum_l -.type __isalnum_l, %function; -__isalnum_l: -.weak isalnum_l -.type isalnum_l, %function; -isalnum_l: -.globl isalpha -.type isalpha, %function; -isalpha: -.weak isalpha_l -.type isalpha_l, %function; -isalpha_l: -.globl __isalpha_l -.type __isalpha_l, %function; -__isalpha_l: -.globl isascii -.type isascii, %function; -isascii: -.globl isblank -.type isblank, %function; -isblank: -.globl __isblank_l -.type __isblank_l, %function; -__isblank_l: -.weak isblank_l -.type isblank_l, %function; -isblank_l: -.globl iscntrl -.type iscntrl, %function; -iscntrl: -.weak iscntrl_l -.type iscntrl_l, %function; -iscntrl_l: -.globl __iscntrl_l -.type __iscntrl_l, %function; -__iscntrl_l: -.globl isdigit -.type isdigit, %function; -isdigit: -.weak isdigit_l -.type isdigit_l, %function; -isdigit_l: -.globl __isdigit_l -.type __isdigit_l, %function; -__isdigit_l: -.globl isgraph -.type isgraph, %function; -isgraph: -.globl __isgraph_l -.type __isgraph_l, %function; -__isgraph_l: -.weak isgraph_l -.type isgraph_l, %function; -isgraph_l: -.globl islower -.type islower, %function; -islower: -.weak islower_l -.type islower_l, %function; -islower_l: -.globl __islower_l -.type __islower_l, %function; -__islower_l: -.globl isprint -.type isprint, %function; -isprint: -.weak isprint_l -.type isprint_l, %function; -isprint_l: -.globl __isprint_l -.type __isprint_l, %function; -__isprint_l: -.globl ispunct -.type ispunct, %function; -ispunct: -.weak ispunct_l -.type ispunct_l, %function; -ispunct_l: -.globl __ispunct_l -.type __ispunct_l, %function; -__ispunct_l: -.globl isspace -.type isspace, %function; -isspace: -.weak isspace_l -.type isspace_l, %function; -isspace_l: -.globl __isspace_l -.type __isspace_l, %function; -__isspace_l: -.globl isupper -.type isupper, %function; -isupper: -.weak isupper_l -.type isupper_l, %function; -isupper_l: -.globl __isupper_l -.type __isupper_l, %function; -__isupper_l: -.globl iswalnum -.type iswalnum, %function; -iswalnum: -.globl __iswalnum_l -.type __iswalnum_l, %function; -__iswalnum_l: -.weak iswalnum_l -.type iswalnum_l, %function; -iswalnum_l: -.globl iswalpha -.type iswalpha, %function; -iswalpha: -.globl __iswalpha_l -.type __iswalpha_l, %function; -__iswalpha_l: -.weak iswalpha_l -.type iswalpha_l, %function; -iswalpha_l: -.globl iswblank -.type iswblank, %function; -iswblank: -.globl __iswblank_l -.type __iswblank_l, %function; -__iswblank_l: -.weak iswblank_l -.type iswblank_l, %function; -iswblank_l: -.globl iswcntrl -.type iswcntrl, %function; -iswcntrl: -.globl __iswcntrl_l -.type __iswcntrl_l, %function; -__iswcntrl_l: -.weak iswcntrl_l -.type iswcntrl_l, %function; -iswcntrl_l: -.globl iswctype -.type iswctype, %function; -iswctype: -.globl wctype -.type wctype, %function; -wctype: -.globl __iswctype_l -.type __iswctype_l, %function; -__iswctype_l: -.weak iswctype_l -.type iswctype_l, %function; -iswctype_l: -.globl __wctype_l -.type __wctype_l, %function; -__wctype_l: -.weak wctype_l -.type wctype_l, %function; -wctype_l: -.globl iswdigit -.type iswdigit, %function; -iswdigit: -.globl __iswdigit_l -.type __iswdigit_l, %function; -__iswdigit_l: -.weak iswdigit_l -.type iswdigit_l, %function; -iswdigit_l: -.globl iswgraph -.type iswgraph, %function; -iswgraph: -.globl __iswgraph_l -.type __iswgraph_l, %function; -__iswgraph_l: -.weak iswgraph_l -.type iswgraph_l, %function; -iswgraph_l: -.globl iswlower -.type iswlower, %function; -iswlower: -.weak iswlower_l -.type iswlower_l, %function; -iswlower_l: -.globl __iswlower_l -.type __iswlower_l, %function; -__iswlower_l: -.globl iswprint -.type iswprint, %function; -iswprint: -.globl __iswprint_l -.type __iswprint_l, %function; -__iswprint_l: -.weak iswprint_l -.type iswprint_l, %function; -iswprint_l: -.globl iswpunct -.type iswpunct, %function; -iswpunct: -.globl __iswpunct_l -.type __iswpunct_l, %function; -__iswpunct_l: -.weak iswpunct_l -.type iswpunct_l, %function; -iswpunct_l: -.globl iswspace -.type iswspace, %function; -iswspace: -.globl __iswspace_l -.type __iswspace_l, %function; -__iswspace_l: -.weak iswspace_l -.type iswspace_l, %function; -iswspace_l: -.globl iswupper -.type iswupper, %function; -iswupper: -.globl __iswupper_l -.type __iswupper_l, %function; -__iswupper_l: -.weak iswupper_l -.type iswupper_l, %function; -iswupper_l: -.globl iswxdigit -.type iswxdigit, %function; -iswxdigit: -.globl __iswxdigit_l -.type __iswxdigit_l, %function; -__iswxdigit_l: -.weak iswxdigit_l -.type iswxdigit_l, %function; -iswxdigit_l: -.globl isxdigit -.type isxdigit, %function; -isxdigit: -.globl __isxdigit_l -.type __isxdigit_l, %function; -__isxdigit_l: -.weak isxdigit_l -.type isxdigit_l, %function; -isxdigit_l: -.globl toascii -.type toascii, %function; -toascii: -.globl tolower -.type tolower, %function; -tolower: -.globl __tolower_l -.type __tolower_l, %function; -__tolower_l: -.weak tolower_l -.type tolower_l, %function; -tolower_l: -.globl toupper -.type toupper, %function; -toupper: -.weak toupper_l -.type toupper_l, %function; -toupper_l: -.globl __toupper_l -.type __toupper_l, %function; -__toupper_l: -.globl towlower -.type towlower, %function; -towlower: -.globl towupper -.type towupper, %function; -towupper: -.globl __towupper_l -.type __towupper_l, %function; -__towupper_l: -.weak towupper_l -.type towupper_l, %function; -towupper_l: -.globl __towlower_l -.type __towlower_l, %function; -__towlower_l: -.weak towlower_l -.type towlower_l, %function; -towlower_l: -.globl wcswidth -.type wcswidth, %function; -wcswidth: -.globl wctrans -.type wctrans, %function; -wctrans: -.globl towctrans -.type towctrans, %function; -towctrans: -.globl __wctrans_l -.type __wctrans_l, %function; -__wctrans_l: -.weak wctrans_l -.type wctrans_l, %function; -wctrans_l: -.weak towctrans_l -.type towctrans_l, %function; -towctrans_l: -.globl __towctrans_l -.type __towctrans_l, %function; -__towctrans_l: -.globl wcwidth -.type wcwidth, %function; -wcwidth: -.globl alphasort -.type alphasort, %function; -alphasort: -.weak alphasort64 -.type alphasort64, %function; -alphasort64: -.globl closedir -.type closedir, %function; -closedir: +.globl ctermid +.type ctermid, %function; +ctermid: +.globl ctime +.type ctime, %function; +ctime: +.globl ctime_r +.type ctime_r, %function; +ctime_r: +.globl cuserid +.type cuserid, %function; +cuserid: +.globl daemon +.type daemon, %function; +daemon: +.globl dcgettext +.type dcgettext, %function; +dcgettext: +.globl dcngettext +.type dcngettext, %function; +dcngettext: +.globl delete_module +.type delete_module, %function; +delete_module: +.globl dgettext +.type dgettext, %function; +dgettext: +.globl difftime +.type difftime, %function; +difftime: .globl dirfd .type dirfd, %function; dirfd: -.globl fdopendir -.type fdopendir, %function; -fdopendir: -.globl opendir -.type opendir, %function; -opendir: -.globl readdir -.type readdir, %function; -readdir: -.weak readdir64 -.type readdir64, %function; -readdir64: -.weak readdir64_r -.type readdir64_r, %function; -readdir64_r: -.globl readdir_r -.type readdir_r, %function; -readdir_r: -.globl rewinddir -.type rewinddir, %function; -rewinddir: -.weak scandir64 -.type scandir64, %function; -scandir64: -.globl scandir -.type scandir, %function; -scandir: -.globl seekdir -.type seekdir, %function; -seekdir: -.globl telldir -.type telldir, %function; -telldir: -.globl versionsort -.type versionsort, %function; -versionsort: -.weak versionsort64 -.type versionsort64, %function; -versionsort64: -.weak _init -.type _init, %function; -_init: -.globl __libc_start_main -.type __libc_start_main, %function; -__libc_start_main: -.globl __stack_chk_fail -.type __stack_chk_fail, %function; -__stack_chk_fail: -.globl clearenv -.type clearenv, %function; -clearenv: -.globl getenv -.type getenv, %function; -getenv: -.globl putenv -.type putenv, %function; -putenv: -.globl secure_getenv -.type secure_getenv, %function; -secure_getenv: -.globl setenv -.type setenv, %function; -setenv: -.globl unsetenv -.type unsetenv, %function; -unsetenv: -.globl __errno_location -.type __errno_location, %function; -__errno_location: -.weak strerror_l -.type strerror_l, %function; -strerror_l: -.globl __strerror_l -.type __strerror_l, %function; -__strerror_l: -.globl strerror -.type strerror, %function; -strerror: -.globl _Exit -.type _Exit, %function; -_Exit: -.globl abort -.type abort, %function; -abort: -.globl __assert_fail -.type __assert_fail, %function; -__assert_fail: -.globl at_quick_exit -.type at_quick_exit, %function; -at_quick_exit: -.globl __cxa_finalize -.type __cxa_finalize, %function; -__cxa_finalize: -.globl __cxa_atexit -.type __cxa_atexit, %function; -__cxa_atexit: -.globl atexit -.type atexit, %function; -atexit: -.weak _fini -.type _fini, %function; -_fini: -.globl exit -.type exit, %function; -exit: -.globl quick_exit -.type quick_exit, %function; -quick_exit: -.globl creat -.type creat, %function; -creat: -.weak creat64 -.type creat64, %function; -creat64: -.globl fcntl -.type fcntl, %function; -fcntl: -.weak open64 -.type open64, %function; -open64: -.globl open -.type open, %function; -open: -.weak openat64 -.type openat64, %function; -openat64: -.globl openat -.type openat, %function; -openat: -.weak posix_fadvise64 -.type posix_fadvise64, %function; -posix_fadvise64: -.globl posix_fadvise -.type posix_fadvise, %function; -posix_fadvise: -.weak posix_fallocate64 -.type posix_fallocate64, %function; -posix_fallocate64: -.globl posix_fallocate -.type posix_fallocate, %function; -posix_fallocate: -.globl __flt_rounds -.type __flt_rounds, %function; -__flt_rounds: -.globl fegetexceptflag -.type fegetexceptflag, %function; -fegetexceptflag: -.globl feholdexcept -.type feholdexcept, %function; -feholdexcept: -.globl fesetexceptflag -.type fesetexceptflag, %function; -fesetexceptflag: -.globl fesetround -.type fesetround, %function; -fesetround: -.globl feupdateenv -.type feupdateenv, %function; -feupdateenv: -.globl feclearexcept -.type feclearexcept, %function; -feclearexcept: -.globl feraiseexcept -.type feraiseexcept, %function; -feraiseexcept: -.globl fetestexcept -.type fetestexcept, %function; -fetestexcept: -.globl fegetround -.type fegetround, %function; -fegetround: -.globl fegetenv -.type fegetenv, %function; -fegetenv: -.globl fesetenv -.type fesetenv, %function; -fesetenv: -.globl ftok -.type ftok, %function; -ftok: -.globl msgctl -.type msgctl, %function; -msgctl: -.globl msgget -.type msgget, %function; -msgget: -.globl msgrcv -.type msgrcv, %function; -msgrcv: -.globl msgsnd -.type msgsnd, %function; -msgsnd: -.globl semctl -.type semctl, %function; -semctl: -.globl semget -.type semget, %function; -semget: -.globl semop -.type semop, %function; -semop: -.globl semtimedop -.type semtimedop, %function; -semtimedop: -.globl shmat -.type shmat, %function; -shmat: -.globl shmctl -.type shmctl, %function; -shmctl: -.globl shmdt -.type shmdt, %function; -shmdt: -.globl shmget -.type shmget, %function; -shmget: +.globl dirname +.type dirname, %function; +dirname: +.globl div +.type div, %function; +div: +.globl dl_iterate_phdr +.type dl_iterate_phdr, %function; +dl_iterate_phdr: +.globl dladdr +.type dladdr, %function; +dladdr: .globl dlclose .type dlclose, %function; dlclose: @@ -852,172 +1492,90 @@ dlerror: .globl dlinfo .type dlinfo, %function; dlinfo: +.globl dlopen +.type dlopen, %function; +dlopen: .globl dlsym .type dlsym, %function; dlsym: -.globl cuserid -.type cuserid, %function; -cuserid: -.globl daemon -.type daemon, %function; -daemon: -.globl vwarn -.type vwarn, %function; -vwarn: -.globl vwarnx -.type vwarnx, %function; -vwarnx: -.globl verr -.type verr, %function; -verr: -.globl verrx -.type verrx, %function; -verrx: -.globl warn -.type warn, %function; -warn: -.globl warnx -.type warnx, %function; -warnx: -.globl err -.type err, %function; -err: -.globl errx -.type errx, %function; -errx: -.globl euidaccess -.type euidaccess, %function; -euidaccess: +.globl dn_comp +.type dn_comp, %function; +dn_comp: +.weak dn_expand +.type dn_expand, %function; +dn_expand: +.globl dn_skipname +.type dn_skipname, %function; +dn_skipname: +.globl dngettext +.type dngettext, %function; +dngettext: +.globl dprintf +.type dprintf, %function; +dprintf: +.globl drand48 +.type drand48, %function; +drand48: +.weak drem +.type drem, %function; +drem: +.weak dremf +.type dremf, %function; +dremf: +.globl dup +.type dup, %function; +dup: +.globl dup2 +.type dup2, %function; +dup2: +.weak dup3 +.type dup3, %function; +dup3: +.weak duplocale +.type duplocale, %function; +duplocale: .weak eaccess .type eaccess, %function; eaccess: -.weak ftw64 -.type ftw64, %function; -ftw64: -.globl ftw -.type ftw, %function; -ftw: -.globl futimes -.type futimes, %function; -futimes: -.globl getdtablesize -.type getdtablesize, %function; -getdtablesize: -.globl getloadavg -.type getloadavg, %function; -getloadavg: -.globl getpagesize -.type getpagesize, %function; -getpagesize: -.globl getpass -.type getpass, %function; -getpass: +.globl ecvt +.type ecvt, %function; +ecvt: +.globl encrypt +.type encrypt, %function; +encrypt: +.weak endgrent +.type endgrent, %function; +endgrent: +.globl endhostent +.type endhostent, %function; +endhostent: +.globl endmntent +.type endmntent, %function; +endmntent: +.weak endnetent +.type endnetent, %function; +endnetent: +.globl endprotoent +.type endprotoent, %function; +endprotoent: +.weak endpwent +.type endpwent, %function; +endpwent: +.globl endservent +.type endservent, %function; +endservent: +.globl endspent +.type endspent, %function; +endspent: .globl endusershell .type endusershell, %function; endusershell: -.globl setusershell -.type setusershell, %function; -setusershell: -.globl getusershell -.type getusershell, %function; -getusershell: -.globl isastream -.type isastream, %function; -isastream: -.globl lutimes -.type lutimes, %function; -lutimes: -.globl ulimit -.type ulimit, %function; -ulimit: .weak endutent .type endutent, %function; endutent: .globl endutxent .type endutxent, %function; endutxent: -.weak setutent -.type setutent, %function; -setutent: -.globl setutxent -.type setutxent, %function; -setutxent: -.globl getutxent -.type getutxent, %function; -getutxent: -.weak getutent -.type getutent, %function; -getutent: -.weak getutid -.type getutid, %function; -getutid: -.globl getutxid -.type getutxid, %function; -getutxid: -.weak getutline -.type getutline, %function; -getutline: -.globl getutxline -.type getutxline, %function; -getutxline: -.weak pututline -.type pututline, %function; -pututline: -.globl pututxline -.type pututxline, %function; -pututxline: -.weak updwtmp -.type updwtmp, %function; -updwtmp: -.globl updwtmpx -.type updwtmpx, %function; -updwtmpx: -.weak utmpxname -.type utmpxname, %function; -utmpxname: -.weak utmpname -.type utmpname, %function; -utmpname: -.globl valloc -.type valloc, %function; -valloc: -.globl adjtime -.type adjtime, %function; -adjtime: -.globl adjtimex -.type adjtimex, %function; -adjtimex: -.globl brk -.type brk, %function; -brk: -#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) -.weak riscv_flush_icache -.type riscv_flush_icache, %function; -riscv_flush_icache: -#endif -#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) -.globl __riscv_flush_icache -.type __riscv_flush_icache, %function; -__riscv_flush_icache: -#endif -.globl capset -.type capset, %function; -capset: -.globl capget -.type capget, %function; -capget: -.globl chroot -.type chroot, %function; -chroot: -.globl clock_adjtime -.type clock_adjtime, %function; -clock_adjtime: -.globl clone -.type clone, %function; -clone: -.globl copy_file_range -.type copy_file_range, %function; -copy_file_range: .globl epoll_create .type epoll_create, %function; epoll_create: @@ -1033,555 +1591,99 @@ epoll_pwait: .globl epoll_wait .type epoll_wait, %function; epoll_wait: -.globl eventfd -.type eventfd, %function; -eventfd: -.globl eventfd_read -.type eventfd_read, %function; -eventfd_read: -.globl eventfd_write -.type eventfd_write, %function; -eventfd_write: -.weak fallocate64 -.type fallocate64, %function; -fallocate64: -.globl fallocate -.type fallocate, %function; -fallocate: -.globl fanotify_init -.type fanotify_init, %function; -fanotify_init: -.globl fanotify_mark -.type fanotify_mark, %function; -fanotify_mark: -.globl flock -.type flock, %function; -flock: -.globl getdents -.type getdents, %function; -getdents: -.weak getdents64 -.type getdents64, %function; -getdents64: -.globl getrandom -.type getrandom, %function; -getrandom: -.globl gettid -.type gettid, %function; -gettid: -.globl inotify_init -.type inotify_init, %function; -inotify_init: -.globl inotify_init1 -.type inotify_init1, %function; -inotify_init1: -.globl inotify_add_watch -.type inotify_add_watch, %function; -inotify_add_watch: -.globl inotify_rm_watch -.type inotify_rm_watch, %function; -inotify_rm_watch: -.globl klogctl -.type klogctl, %function; -klogctl: -.weak membarrier -.type membarrier, %function; -membarrier: -.globl memfd_create -.type memfd_create, %function; -memfd_create: -.globl mlock2 -.type mlock2, %function; -mlock2: -.globl init_module -.type init_module, %function; -init_module: -.globl delete_module -.type delete_module, %function; -delete_module: -.globl mount -.type mount, %function; -mount: -.globl umount -.type umount, %function; -umount: -.globl umount2 -.type umount2, %function; -umount2: -.globl name_to_handle_at -.type name_to_handle_at, %function; -name_to_handle_at: -.globl open_by_handle_at -.type open_by_handle_at, %function; -open_by_handle_at: -.globl personality -.type personality, %function; -personality: -.globl pivot_root -.type pivot_root, %function; -pivot_root: -.globl ppoll -.type ppoll, %function; -ppoll: -.globl prctl -.type prctl, %function; -prctl: -.weak prlimit64 -.type prlimit64, %function; -prlimit64: -.globl prlimit -.type prlimit, %function; -prlimit: -.globl process_vm_writev -.type process_vm_writev, %function; -process_vm_writev: -.globl process_vm_readv -.type process_vm_readv, %function; -process_vm_readv: -.globl ptrace -.type ptrace, %function; -ptrace: -.globl quotactl -.type quotactl, %function; -quotactl: -.globl readahead -.type readahead, %function; -readahead: -.globl reboot -.type reboot, %function; -reboot: -.globl remap_file_pages -.type remap_file_pages, %function; -remap_file_pages: -.globl sbrk -.type sbrk, %function; -sbrk: -.globl sendfile -.type sendfile, %function; -sendfile: -.weak sendfile64 -.type sendfile64, %function; -sendfile64: -.globl setfsgid -.type setfsgid, %function; -setfsgid: -.globl setfsuid -.type setfsuid, %function; -setfsuid: -.globl setgroups -.type setgroups, %function; -setgroups: -.globl sethostname -.type sethostname, %function; -sethostname: -.globl setns -.type setns, %function; -setns: -.globl settimeofday -.type settimeofday, %function; -settimeofday: -.globl signalfd -.type signalfd, %function; -signalfd: -.globl splice -.type splice, %function; -splice: -.globl stime -.type stime, %function; -stime: -.globl swapon -.type swapon, %function; -swapon: -.globl swapoff -.type swapoff, %function; -swapoff: -.globl sync_file_range -.type sync_file_range, %function; -sync_file_range: -.globl syncfs -.type syncfs, %function; -syncfs: -.weak sysinfo -.type sysinfo, %function; -sysinfo: -.globl tee -.type tee, %function; -tee: -.globl timerfd_create -.type timerfd_create, %function; -timerfd_create: -.globl timerfd_settime -.type timerfd_settime, %function; -timerfd_settime: -.globl timerfd_gettime -.type timerfd_gettime, %function; -timerfd_gettime: -.globl unshare -.type unshare, %function; -unshare: -.globl utimes -.type utimes, %function; -utimes: -.globl vhangup -.type vhangup, %function; -vhangup: -.globl vmsplice -.type vmsplice, %function; -vmsplice: -.globl wait3 -.type wait3, %function; -wait3: -.globl wait4 -.type wait4, %function; -wait4: -.globl getxattr -.type getxattr, %function; -getxattr: -.globl lgetxattr -.type lgetxattr, %function; -lgetxattr: -.globl fgetxattr -.type fgetxattr, %function; -fgetxattr: -.globl listxattr -.type listxattr, %function; -listxattr: -.globl llistxattr -.type llistxattr, %function; -llistxattr: -.globl flistxattr -.type flistxattr, %function; -flistxattr: -.globl setxattr -.type setxattr, %function; -setxattr: -.globl lsetxattr -.type lsetxattr, %function; -lsetxattr: -.globl fsetxattr -.type fsetxattr, %function; -fsetxattr: -.globl removexattr -.type removexattr, %function; -removexattr: -.globl lremovexattr -.type lremovexattr, %function; -lremovexattr: -.globl fremovexattr -.type fremovexattr, %function; -fremovexattr: -.globl bind_textdomain_codeset -.type bind_textdomain_codeset, %function; -bind_textdomain_codeset: -.globl catclose -.type catclose, %function; -catclose: -.globl catgets -.type catgets, %function; -catgets: -.globl catopen -.type catopen, %function; -catopen: -.globl bindtextdomain -.type bindtextdomain, %function; -bindtextdomain: -.globl dcngettext -.type dcngettext, %function; -dcngettext: -.globl dcgettext -.type dcgettext, %function; -dcgettext: -.globl dngettext -.type dngettext, %function; -dngettext: -.globl dgettext -.type dgettext, %function; -dgettext: -.weak duplocale -.type duplocale, %function; -duplocale: -.globl __duplocale -.type __duplocale, %function; -__duplocale: -.weak __freelocale -.type __freelocale, %function; -__freelocale: -.globl freelocale -.type freelocale, %function; -freelocale: -.globl iconv_open -.type iconv_open, %function; -iconv_open: -.globl iconv -.type iconv, %function; -iconv: -.globl iconv_close -.type iconv_close, %function; -iconv_close: -.weak nl_langinfo_l -.type nl_langinfo_l, %function; -nl_langinfo_l: -.globl __nl_langinfo_l -.type __nl_langinfo_l, %function; -__nl_langinfo_l: -.globl __nl_langinfo -.type __nl_langinfo, %function; -__nl_langinfo: -.weak nl_langinfo -.type nl_langinfo, %function; -nl_langinfo: -.globl localeconv -.type localeconv, %function; -localeconv: -.weak newlocale -.type newlocale, %function; -newlocale: -.globl __newlocale -.type __newlocale, %function; -__newlocale: -.globl setlocale -.type setlocale, %function; -setlocale: -.globl __strcoll_l -.type __strcoll_l, %function; -__strcoll_l: -.weak strcoll_l -.type strcoll_l, %function; -strcoll_l: -.globl strcoll -.type strcoll, %function; -strcoll: -.globl strfmon_l -.type strfmon_l, %function; -strfmon_l: -.globl strfmon -.type strfmon, %function; -strfmon: -.globl __strxfrm_l -.type __strxfrm_l, %function; -__strxfrm_l: -.weak strxfrm_l -.type strxfrm_l, %function; -strxfrm_l: -.globl strxfrm -.type strxfrm, %function; -strxfrm: -.globl textdomain -.type textdomain, %function; -textdomain: -.globl gettext -.type gettext, %function; -gettext: -.globl ngettext -.type ngettext, %function; -ngettext: -.globl __uselocale -.type __uselocale, %function; -__uselocale: -.weak uselocale -.type uselocale, %function; -uselocale: -.globl __wcscoll_l -.type __wcscoll_l, %function; -__wcscoll_l: -.weak wcscoll_l -.type wcscoll_l, %function; -wcscoll_l: -.globl wcscoll -.type wcscoll, %function; -wcscoll: -.globl __wcsxfrm_l -.type __wcsxfrm_l, %function; -__wcsxfrm_l: -.weak wcsxfrm_l -.type wcsxfrm_l, %function; -wcsxfrm_l: -.globl wcsxfrm -.type wcsxfrm, %function; -wcsxfrm: -.globl calloc -.type calloc, %function; -calloc: -.globl free -.type free, %function; -free: -.weak malloc -.type malloc, %function; -malloc: -.globl aligned_alloc -.type aligned_alloc, %function; -aligned_alloc: -.globl malloc_usable_size -.type malloc_usable_size, %function; -malloc_usable_size: -.globl memalign -.type memalign, %function; -memalign: -.globl posix_memalign -.type posix_memalign, %function; -posix_memalign: -.globl realloc -.type realloc, %function; -realloc: -.globl reallocarray -.type reallocarray, %function; -reallocarray: -.globl __fpclassify -.type __fpclassify, %function; -__fpclassify: -.globl __fpclassifyf -.type __fpclassifyf, %function; -__fpclassifyf: -.globl __fpclassifyl -.type __fpclassifyl, %function; -__fpclassifyl: -.globl __signbit -.type __signbit, %function; -__signbit: -.globl __signbitf -.type __signbitf, %function; -__signbitf: -.globl __signbitl -.type __signbitl, %function; -__signbitl: -.globl acos -.type acos, %function; -acos: -.globl acosf -.type acosf, %function; -acosf: -.globl acosh -.type acosh, %function; -acosh: -.globl acoshf -.type acoshf, %function; -acoshf: -.globl acoshl -.type acoshl, %function; -acoshl: -.globl acosl -.type acosl, %function; -acosl: -.globl asin -.type asin, %function; -asin: -.globl asinf -.type asinf, %function; -asinf: -.globl asinh -.type asinh, %function; -asinh: -.globl asinhf -.type asinhf, %function; -asinhf: -.globl asinhl -.type asinhl, %function; -asinhl: -.globl asinl -.type asinl, %function; -asinl: -.globl atan -.type atan, %function; -atan: -.globl atan2 -.type atan2, %function; -atan2: -.globl atan2f -.type atan2f, %function; -atan2f: -.globl atan2l -.type atan2l, %function; -atan2l: -.globl atanf -.type atanf, %function; -atanf: -.globl atanh -.type atanh, %function; -atanh: -.globl atanhf -.type atanhf, %function; -atanhf: -.globl atanhl -.type atanhl, %function; -atanhl: -.globl atanl -.type atanl, %function; -atanl: -.globl cbrt -.type cbrt, %function; -cbrt: -.globl cbrtf -.type cbrtf, %function; -cbrtf: -.globl cbrtl -.type cbrtl, %function; -cbrtl: -.globl ceil -.type ceil, %function; -ceil: -.globl ceilf -.type ceilf, %function; -ceilf: -.globl ceill -.type ceill, %function; -ceill: -.globl copysignl -.type copysignl, %function; -copysignl: -.globl cos -.type cos, %function; -cos: -.globl cosf -.type cosf, %function; -cosf: -.globl cosh -.type cosh, %function; -cosh: -.globl coshf -.type coshf, %function; -coshf: -.globl coshl -.type coshl, %function; -coshl: -.globl cosl -.type cosl, %function; -cosl: +.globl erand48 +.type erand48, %function; +erand48: .globl erf .type erf, %function; erf: .globl erfc .type erfc, %function; erfc: -.globl erff -.type erff, %function; -erff: .globl erfcf .type erfcf, %function; erfcf: -.globl erfl -.type erfl, %function; -erfl: .globl erfcl .type erfcl, %function; erfcl: +.globl erff +.type erff, %function; +erff: +.globl erfl +.type erfl, %function; +erfl: +.globl err +.type err, %function; +err: +.globl errx +.type errx, %function; +errx: +.globl ether_aton +.type ether_aton, %function; +ether_aton: +.globl ether_aton_r +.type ether_aton_r, %function; +ether_aton_r: +.globl ether_hostton +.type ether_hostton, %function; +ether_hostton: +.globl ether_line +.type ether_line, %function; +ether_line: +.globl ether_ntoa +.type ether_ntoa, %function; +ether_ntoa: +.globl ether_ntoa_r +.type ether_ntoa_r, %function; +ether_ntoa_r: +.globl ether_ntohost +.type ether_ntohost, %function; +ether_ntohost: +.globl euidaccess +.type euidaccess, %function; +euidaccess: +.globl eventfd +.type eventfd, %function; +eventfd: +.globl eventfd_read +.type eventfd_read, %function; +eventfd_read: +.globl eventfd_write +.type eventfd_write, %function; +eventfd_write: +.globl execl +.type execl, %function; +execl: +.globl execle +.type execle, %function; +execle: +.globl execlp +.type execlp, %function; +execlp: +.globl execv +.type execv, %function; +execv: +.globl execve +.type execve, %function; +execve: +.globl execvp +.type execvp, %function; +execvp: +.weak execvpe +.type execvpe, %function; +execvpe: +.globl exit +.type exit, %function; +exit: .globl exp .type exp, %function; exp: -.weak pow10 -.type pow10, %function; -pow10: .globl exp10 .type exp10, %function; exp10: -.weak pow10f -.type pow10f, %function; -pow10f: .globl exp10f .type exp10f, %function; exp10f: -.weak pow10l -.type pow10l, %function; -pow10l: .globl exp10l .type exp10l, %function; exp10l: @@ -1600,6 +1702,9 @@ expf: .globl expl .type expl, %function; expl: +.globl explicit_bzero +.type explicit_bzero, %function; +explicit_bzero: .globl expm1 .type expm1, %function; expm1: @@ -1609,9 +1714,57 @@ expm1f: .globl expm1l .type expm1l, %function; expm1l: +.globl fabs +.type fabs, %function; +fabs: +.globl fabsf +.type fabsf, %function; +fabsf: .globl fabsl .type fabsl, %function; fabsl: +.globl faccessat +.type faccessat, %function; +faccessat: +.globl fallocate +.type fallocate, %function; +fallocate: +.weak fallocate64 +.type fallocate64, %function; +fallocate64: +.globl fanotify_init +.type fanotify_init, %function; +fanotify_init: +.globl fanotify_mark +.type fanotify_mark, %function; +fanotify_mark: +.globl fchdir +.type fchdir, %function; +fchdir: +.globl fchmod +.type fchmod, %function; +fchmod: +.globl fchmodat +.type fchmodat, %function; +fchmodat: +.globl fchown +.type fchown, %function; +fchown: +.globl fchownat +.type fchownat, %function; +fchownat: +.globl fclose +.type fclose, %function; +fclose: +.globl fcntl +.type fcntl, %function; +fcntl: +.globl fcvt +.type fcvt, %function; +fcvt: +.globl fdatasync +.type fdatasync, %function; +fdatasync: .globl fdim .type fdim, %function; fdim: @@ -1621,12 +1774,141 @@ fdimf: .globl fdiml .type fdiml, %function; fdiml: +.weak fdopen +.type fdopen, %function; +fdopen: +.globl fdopendir +.type fdopendir, %function; +fdopendir: +.globl feclearexcept +.type feclearexcept, %function; +feclearexcept: +.globl fegetenv +.type fegetenv, %function; +fegetenv: +.globl fegetexceptflag +.type fegetexceptflag, %function; +fegetexceptflag: +.globl fegetround +.type fegetround, %function; +fegetround: +.globl feholdexcept +.type feholdexcept, %function; +feholdexcept: +.globl feof +.type feof, %function; +feof: +.weak feof_unlocked +.type feof_unlocked, %function; +feof_unlocked: +.globl feraiseexcept +.type feraiseexcept, %function; +feraiseexcept: +.globl ferror +.type ferror, %function; +ferror: +.weak ferror_unlocked +.type ferror_unlocked, %function; +ferror_unlocked: +.globl fesetenv +.type fesetenv, %function; +fesetenv: +.globl fesetexceptflag +.type fesetexceptflag, %function; +fesetexceptflag: +.globl fesetround +.type fesetround, %function; +fesetround: +.globl fetestexcept +.type fetestexcept, %function; +fetestexcept: +.globl feupdateenv +.type feupdateenv, %function; +feupdateenv: +.globl fexecve +.type fexecve, %function; +fexecve: +.globl fflush +.type fflush, %function; +fflush: +.weak fflush_unlocked +.type fflush_unlocked, %function; +fflush_unlocked: +.globl ffs +.type ffs, %function; +ffs: +.globl ffsl +.type ffsl, %function; +ffsl: +.globl ffsll +.type ffsll, %function; +ffsll: +.globl fgetc +.type fgetc, %function; +fgetc: +.weak fgetc_unlocked +.type fgetc_unlocked, %function; +fgetc_unlocked: +.globl fgetgrent +.type fgetgrent, %function; +fgetgrent: +.globl fgetln +.type fgetln, %function; +fgetln: +.globl fgetpos +.type fgetpos, %function; +fgetpos: +.weak fgetpos64 +.type fgetpos64, %function; +fgetpos64: +.globl fgetpwent +.type fgetpwent, %function; +fgetpwent: +.globl fgets +.type fgets, %function; +fgets: +.weak fgets_unlocked +.type fgets_unlocked, %function; +fgets_unlocked: +.globl fgetspent +.type fgetspent, %function; +fgetspent: +.globl fgetwc +.type fgetwc, %function; +fgetwc: +.weak fgetwc_unlocked +.type fgetwc_unlocked, %function; +fgetwc_unlocked: +.globl fgetws +.type fgetws, %function; +fgetws: +.weak fgetws_unlocked +.type fgetws_unlocked, %function; +fgetws_unlocked: +.globl fgetxattr +.type fgetxattr, %function; +fgetxattr: +.globl fileno +.type fileno, %function; +fileno: +.weak fileno_unlocked +.type fileno_unlocked, %function; +fileno_unlocked: .globl finite .type finite, %function; finite: .globl finitef .type finitef, %function; finitef: +.globl flistxattr +.type flistxattr, %function; +flistxattr: +.globl flock +.type flock, %function; +flock: +.globl flockfile +.type flockfile, %function; +flockfile: .globl floor .type floor, %function; floor: @@ -1636,12 +1918,33 @@ floorf: .globl floorl .type floorl, %function; floorl: +.globl fma +.type fma, %function; +fma: +.globl fmaf +.type fmaf, %function; +fmaf: .globl fmal .type fmal, %function; fmal: +.globl fmax +.type fmax, %function; +fmax: +.globl fmaxf +.type fmaxf, %function; +fmaxf: .globl fmaxl .type fmaxl, %function; fmaxl: +.globl fmemopen +.type fmemopen, %function; +fmemopen: +.globl fmin +.type fmin, %function; +fmin: +.globl fminf +.type fminf, %function; +fminf: .globl fminl .type fminl, %function; fminl: @@ -1654,6 +1957,87 @@ fmodf: .globl fmodl .type fmodl, %function; fmodl: +.globl fmtmsg +.type fmtmsg, %function; +fmtmsg: +.globl fnmatch +.type fnmatch, %function; +fnmatch: +.globl fopen +.type fopen, %function; +fopen: +.weak fopen64 +.type fopen64, %function; +fopen64: +.globl fopencookie +.type fopencookie, %function; +fopencookie: +.globl fork +.type fork, %function; +fork: +.globl forkpty +.type forkpty, %function; +forkpty: +.globl fpathconf +.type fpathconf, %function; +fpathconf: +.globl fprintf +.type fprintf, %function; +fprintf: +.weak fpurge +.type fpurge, %function; +fpurge: +.globl fputc +.type fputc, %function; +fputc: +.weak fputc_unlocked +.type fputc_unlocked, %function; +fputc_unlocked: +.globl fputs +.type fputs, %function; +fputs: +.weak fputs_unlocked +.type fputs_unlocked, %function; +fputs_unlocked: +.globl fputwc +.type fputwc, %function; +fputwc: +.weak fputwc_unlocked +.type fputwc_unlocked, %function; +fputwc_unlocked: +.globl fputws +.type fputws, %function; +fputws: +.weak fputws_unlocked +.type fputws_unlocked, %function; +fputws_unlocked: +.globl fread +.type fread, %function; +fread: +.weak fread_unlocked +.type fread_unlocked, %function; +fread_unlocked: +.globl free +.type free, %function; +free: +.globl freeaddrinfo +.type freeaddrinfo, %function; +freeaddrinfo: +.globl freeifaddrs +.type freeifaddrs, %function; +freeifaddrs: +.globl freelocale +.type freelocale, %function; +freelocale: +.globl fremovexattr +.type fremovexattr, %function; +fremovexattr: +.globl freopen +.type freopen, %function; +freopen: +.weak freopen64 +.type freopen64, %function; +freopen64: .globl frexp .type frexp, %function; frexp: @@ -1663,6 +2047,489 @@ frexpf: .globl frexpl .type frexpl, %function; frexpl: +.globl fscanf +.type fscanf, %function; +fscanf: +.globl fseek +.type fseek, %function; +fseek: +.weak fseeko +.type fseeko, %function; +fseeko: +.weak fseeko64 +.type fseeko64, %function; +fseeko64: +.globl fsetpos +.type fsetpos, %function; +fsetpos: +.weak fsetpos64 +.type fsetpos64, %function; +fsetpos64: +.globl fsetxattr +.type fsetxattr, %function; +fsetxattr: +.globl fstat +.type fstat, %function; +fstat: +.weak fstat64 +.type fstat64, %function; +fstat64: +.globl fstatat +.type fstatat, %function; +fstatat: +.weak fstatat64 +.type fstatat64, %function; +fstatat64: +.weak fstatfs +.type fstatfs, %function; +fstatfs: +.weak fstatfs64 +.type fstatfs64, %function; +fstatfs64: +.globl fstatvfs +.type fstatvfs, %function; +fstatvfs: +.weak fstatvfs64 +.type fstatvfs64, %function; +fstatvfs64: +.globl fsync +.type fsync, %function; +fsync: +.globl ftell +.type ftell, %function; +ftell: +.weak ftello +.type ftello, %function; +ftello: +.weak ftello64 +.type ftello64, %function; +ftello64: +.globl ftime +.type ftime, %function; +ftime: +.globl ftok +.type ftok, %function; +ftok: +.globl ftruncate +.type ftruncate, %function; +ftruncate: +.weak ftruncate64 +.type ftruncate64, %function; +ftruncate64: +.globl ftrylockfile +.type ftrylockfile, %function; +ftrylockfile: +.globl ftw +.type ftw, %function; +ftw: +.weak ftw64 +.type ftw64, %function; +ftw64: +.globl funlockfile +.type funlockfile, %function; +funlockfile: +.globl futimens +.type futimens, %function; +futimens: +.globl futimes +.type futimes, %function; +futimes: +WEAK64 futimesat +.type futimesat, %function; +futimesat: +.globl fwide +.type fwide, %function; +fwide: +.globl fwprintf +.type fwprintf, %function; +fwprintf: +.globl fwrite +.type fwrite, %function; +fwrite: +.weak fwrite_unlocked +.type fwrite_unlocked, %function; +fwrite_unlocked: +.globl fwscanf +.type fwscanf, %function; +fwscanf: +.globl gai_strerror +.type gai_strerror, %function; +gai_strerror: +.globl gcvt +.type gcvt, %function; +gcvt: +.globl get_avphys_pages +.type get_avphys_pages, %function; +get_avphys_pages: +.globl get_current_dir_name +.type get_current_dir_name, %function; +get_current_dir_name: +.globl get_nprocs +.type get_nprocs, %function; +get_nprocs: +.globl get_nprocs_conf +.type get_nprocs_conf, %function; +get_nprocs_conf: +.globl get_phys_pages +.type get_phys_pages, %function; +get_phys_pages: +.globl getaddrinfo +.type getaddrinfo, %function; +getaddrinfo: +.weak getauxval +.type getauxval, %function; +getauxval: +.globl getc +.type getc, %function; +getc: +.globl getc_unlocked +.type getc_unlocked, %function; +getc_unlocked: +.globl getchar +.type getchar, %function; +getchar: +.globl getchar_unlocked +.type getchar_unlocked, %function; +getchar_unlocked: +.globl getcwd +.type getcwd, %function; +getcwd: +.globl getdate +.type getdate, %function; +getdate: +.globl getdelim +.type getdelim, %function; +getdelim: +.globl getdents +.type getdents, %function; +getdents: +.weak getdents64 +.type getdents64, %function; +getdents64: +.globl getdomainname +.type getdomainname, %function; +getdomainname: +.globl getdtablesize +.type getdtablesize, %function; +getdtablesize: +.globl getegid +.type getegid, %function; +getegid: +.globl getentropy +.type getentropy, %function; +getentropy: +.globl getenv +.type getenv, %function; +getenv: +.globl geteuid +.type geteuid, %function; +geteuid: +.globl getgid +.type getgid, %function; +getgid: +.globl getgrent +.type getgrent, %function; +getgrent: +.globl getgrgid +.type getgrgid, %function; +getgrgid: +.globl getgrgid_r +.type getgrgid_r, %function; +getgrgid_r: +.globl getgrnam +.type getgrnam, %function; +getgrnam: +.globl getgrnam_r +.type getgrnam_r, %function; +getgrnam_r: +.globl getgrouplist +.type getgrouplist, %function; +getgrouplist: +.globl getgroups +.type getgroups, %function; +getgroups: +.globl gethostbyaddr +.type gethostbyaddr, %function; +gethostbyaddr: +.globl gethostbyaddr_r +.type gethostbyaddr_r, %function; +gethostbyaddr_r: +.globl gethostbyname +.type gethostbyname, %function; +gethostbyname: +.globl gethostbyname2 +.type gethostbyname2, %function; +gethostbyname2: +.globl gethostbyname2_r +.type gethostbyname2_r, %function; +gethostbyname2_r: +.globl gethostbyname_r +.type gethostbyname_r, %function; +gethostbyname_r: +.globl gethostent +.type gethostent, %function; +gethostent: +.globl gethostid +.type gethostid, %function; +gethostid: +.globl gethostname +.type gethostname, %function; +gethostname: +.globl getifaddrs +.type getifaddrs, %function; +getifaddrs: +.globl getitimer +.type getitimer, %function; +getitimer: +.globl getline +.type getline, %function; +getline: +.globl getloadavg +.type getloadavg, %function; +getloadavg: +.globl getlogin +.type getlogin, %function; +getlogin: +.globl getlogin_r +.type getlogin_r, %function; +getlogin_r: +.globl getmntent +.type getmntent, %function; +getmntent: +.globl getmntent_r +.type getmntent_r, %function; +getmntent_r: +.globl getnameinfo +.type getnameinfo, %function; +getnameinfo: +.globl getnetbyaddr +.type getnetbyaddr, %function; +getnetbyaddr: +.globl getnetbyname +.type getnetbyname, %function; +getnetbyname: +.globl getnetent +.type getnetent, %function; +getnetent: +.globl getopt +.type getopt, %function; +getopt: +.globl getopt_long +.type getopt_long, %function; +getopt_long: +.globl getopt_long_only +.type getopt_long_only, %function; +getopt_long_only: +.globl getpagesize +.type getpagesize, %function; +getpagesize: +.globl getpass +.type getpass, %function; +getpass: +.globl getpeername +.type getpeername, %function; +getpeername: +.globl getpgid +.type getpgid, %function; +getpgid: +.globl getpgrp +.type getpgrp, %function; +getpgrp: +.globl getpid +.type getpid, %function; +getpid: +.globl getppid +.type getppid, %function; +getppid: +.globl getpriority +.type getpriority, %function; +getpriority: +.globl getprotobyname +.type getprotobyname, %function; +getprotobyname: +.globl getprotobynumber +.type getprotobynumber, %function; +getprotobynumber: +.globl getprotoent +.type getprotoent, %function; +getprotoent: +.globl getpwent +.type getpwent, %function; +getpwent: +.globl getpwnam +.type getpwnam, %function; +getpwnam: +.globl getpwnam_r +.type getpwnam_r, %function; +getpwnam_r: +.globl getpwuid +.type getpwuid, %function; +getpwuid: +.globl getpwuid_r +.type getpwuid_r, %function; +getpwuid_r: +.globl getrandom +.type getrandom, %function; +getrandom: +.globl getresgid +.type getresgid, %function; +getresgid: +.globl getresuid +.type getresuid, %function; +getresuid: +.globl getrlimit +.type getrlimit, %function; +getrlimit: +.weak getrlimit64 +.type getrlimit64, %function; +getrlimit64: +.globl getrusage +.type getrusage, %function; +getrusage: +.globl gets +.type gets, %function; +gets: +.globl getservbyname +.type getservbyname, %function; +getservbyname: +.globl getservbyname_r +.type getservbyname_r, %function; +getservbyname_r: +.globl getservbyport +.type getservbyport, %function; +getservbyport: +.globl getservbyport_r +.type getservbyport_r, %function; +getservbyport_r: +.globl getservent +.type getservent, %function; +getservent: +.globl getsid +.type getsid, %function; +getsid: +.globl getsockname +.type getsockname, %function; +getsockname: +.globl getsockopt +.type getsockopt, %function; +getsockopt: +.globl getspent +.type getspent, %function; +getspent: +.globl getspnam +.type getspnam, %function; +getspnam: +.globl getspnam_r +.type getspnam_r, %function; +getspnam_r: +.globl getsubopt +.type getsubopt, %function; +getsubopt: +.globl gettext +.type gettext, %function; +gettext: +.globl gettid +.type gettid, %function; +gettid: +.globl gettimeofday +.type gettimeofday, %function; +gettimeofday: +.globl getuid +.type getuid, %function; +getuid: +.globl getusershell +.type getusershell, %function; +getusershell: +.weak getutent +.type getutent, %function; +getutent: +.weak getutid +.type getutid, %function; +getutid: +.weak getutline +.type getutline, %function; +getutline: +.globl getutxent +.type getutxent, %function; +getutxent: +.globl getutxid +.type getutxid, %function; +getutxid: +.globl getutxline +.type getutxline, %function; +getutxline: +.globl getw +.type getw, %function; +getw: +.globl getwc +.type getwc, %function; +getwc: +.weak getwc_unlocked +.type getwc_unlocked, %function; +getwc_unlocked: +.globl getwchar +.type getwchar, %function; +getwchar: +.weak getwchar_unlocked +.type getwchar_unlocked, %function; +getwchar_unlocked: +.globl getxattr +.type getxattr, %function; +getxattr: +.globl glob +.type glob, %function; +glob: +.weak glob64 +.type glob64, %function; +glob64: +.globl globfree +.type globfree, %function; +globfree: +.weak globfree64 +.type globfree64, %function; +globfree64: +.globl gmtime +.type gmtime, %function; +gmtime: +WEAK64 gmtime_r +.type gmtime_r, %function; +gmtime_r: +.globl grantpt +.type grantpt, %function; +grantpt: +.globl hasmntopt +.type hasmntopt, %function; +hasmntopt: +.globl hcreate +.type hcreate, %function; +hcreate: +.weak hcreate_r +.type hcreate_r, %function; +hcreate_r: +.globl hdestroy +.type hdestroy, %function; +hdestroy: +.weak hdestroy_r +.type hdestroy_r, %function; +hdestroy_r: +.globl herror +.type herror, %function; +herror: +.globl hsearch +.type hsearch, %function; +hsearch: +.weak hsearch_r +.type hsearch_r, %function; +hsearch_r: +.globl hstrerror +.type hstrerror, %function; +hstrerror: +.globl htonl +.type htonl, %function; +htonl: +.globl htons +.type htons, %function; +htons: .globl hypot .type hypot, %function; hypot: @@ -1672,6 +2539,27 @@ hypotf: .globl hypotl .type hypotl, %function; hypotl: +.globl iconv +.type iconv, %function; +iconv: +.globl iconv_close +.type iconv_close, %function; +iconv_close: +.globl iconv_open +.type iconv_open, %function; +iconv_open: +.globl if_freenameindex +.type if_freenameindex, %function; +if_freenameindex: +.globl if_indextoname +.type if_indextoname, %function; +if_indextoname: +.globl if_nameindex +.type if_nameindex, %function; +if_nameindex: +.globl if_nametoindex +.type if_nametoindex, %function; +if_nametoindex: .globl ilogb .type ilogb, %function; ilogb: @@ -1681,42 +2569,289 @@ ilogbf: .globl ilogbl .type ilogbl, %function; ilogbl: +.globl imaxabs +.type imaxabs, %function; +imaxabs: +.globl imaxdiv +.type imaxdiv, %function; +imaxdiv: +.globl index +.type index, %function; +index: +.globl inet_addr +.type inet_addr, %function; +inet_addr: +.weak inet_aton +.type inet_aton, %function; +inet_aton: +.globl inet_lnaof +.type inet_lnaof, %function; +inet_lnaof: +.globl inet_makeaddr +.type inet_makeaddr, %function; +inet_makeaddr: +.globl inet_netof +.type inet_netof, %function; +inet_netof: +.globl inet_network +.type inet_network, %function; +inet_network: +.globl inet_ntoa +.type inet_ntoa, %function; +inet_ntoa: +.globl inet_ntop +.type inet_ntop, %function; +inet_ntop: +.globl inet_pton +.type inet_pton, %function; +inet_pton: +.globl init_module +.type init_module, %function; +init_module: +.globl initgroups +.type initgroups, %function; +initgroups: +.globl initstate +.type initstate, %function; +initstate: +.globl inotify_add_watch +.type inotify_add_watch, %function; +inotify_add_watch: +.globl inotify_init +.type inotify_init, %function; +inotify_init: +.globl inotify_init1 +.type inotify_init1, %function; +inotify_init1: +.globl inotify_rm_watch +.type inotify_rm_watch, %function; +inotify_rm_watch: +.globl insque +.type insque, %function; +insque: +.globl ioctl +.type ioctl, %function; +ioctl: +#if !defined(ARCH_riscv64) && !defined(ARCH_aarch64) +.globl ioperm +.type ioperm, %function; +ioperm: +#endif +#if !defined(ARCH_riscv64) && !defined(ARCH_aarch64) +.globl iopl +.type iopl, %function; +iopl: +#endif +.globl isalnum +.type isalnum, %function; +isalnum: +.weak isalnum_l +.type isalnum_l, %function; +isalnum_l: +.globl isalpha +.type isalpha, %function; +isalpha: +.weak isalpha_l +.type isalpha_l, %function; +isalpha_l: +.globl isascii +.type isascii, %function; +isascii: +.globl isastream +.type isastream, %function; +isastream: +.globl isatty +.type isatty, %function; +isatty: +.globl isblank +.type isblank, %function; +isblank: +.weak isblank_l +.type isblank_l, %function; +isblank_l: +.globl iscntrl +.type iscntrl, %function; +iscntrl: +.weak iscntrl_l +.type iscntrl_l, %function; +iscntrl_l: +.globl isdigit +.type isdigit, %function; +isdigit: +.weak isdigit_l +.type isdigit_l, %function; +isdigit_l: +.globl isgraph +.type isgraph, %function; +isgraph: +.weak isgraph_l +.type isgraph_l, %function; +isgraph_l: +.globl islower +.type islower, %function; +islower: +.weak islower_l +.type islower_l, %function; +islower_l: +.globl isprint +.type isprint, %function; +isprint: +.weak isprint_l +.type isprint_l, %function; +isprint_l: +.globl ispunct +.type ispunct, %function; +ispunct: +.weak ispunct_l +.type ispunct_l, %function; +ispunct_l: +.globl issetugid +.type issetugid, %function; +issetugid: +.globl isspace +.type isspace, %function; +isspace: +.weak isspace_l +.type isspace_l, %function; +isspace_l: +.globl isupper +.type isupper, %function; +isupper: +.weak isupper_l +.type isupper_l, %function; +isupper_l: +.globl iswalnum +.type iswalnum, %function; +iswalnum: +.weak iswalnum_l +.type iswalnum_l, %function; +iswalnum_l: +.globl iswalpha +.type iswalpha, %function; +iswalpha: +.weak iswalpha_l +.type iswalpha_l, %function; +iswalpha_l: +.globl iswblank +.type iswblank, %function; +iswblank: +.weak iswblank_l +.type iswblank_l, %function; +iswblank_l: +.globl iswcntrl +.type iswcntrl, %function; +iswcntrl: +.weak iswcntrl_l +.type iswcntrl_l, %function; +iswcntrl_l: +.globl iswctype +.type iswctype, %function; +iswctype: +.weak iswctype_l +.type iswctype_l, %function; +iswctype_l: +.globl iswdigit +.type iswdigit, %function; +iswdigit: +.weak iswdigit_l +.type iswdigit_l, %function; +iswdigit_l: +.globl iswgraph +.type iswgraph, %function; +iswgraph: +.weak iswgraph_l +.type iswgraph_l, %function; +iswgraph_l: +.globl iswlower +.type iswlower, %function; +iswlower: +.weak iswlower_l +.type iswlower_l, %function; +iswlower_l: +.globl iswprint +.type iswprint, %function; +iswprint: +.weak iswprint_l +.type iswprint_l, %function; +iswprint_l: +.globl iswpunct +.type iswpunct, %function; +iswpunct: +.weak iswpunct_l +.type iswpunct_l, %function; +iswpunct_l: +.globl iswspace +.type iswspace, %function; +iswspace: +.weak iswspace_l +.type iswspace_l, %function; +iswspace_l: +.globl iswupper +.type iswupper, %function; +iswupper: +.weak iswupper_l +.type iswupper_l, %function; +iswupper_l: +.globl iswxdigit +.type iswxdigit, %function; +iswxdigit: +.weak iswxdigit_l +.type iswxdigit_l, %function; +iswxdigit_l: +.globl isxdigit +.type isxdigit, %function; +isxdigit: +.weak isxdigit_l +.type isxdigit_l, %function; +isxdigit_l: .globl j0 .type j0, %function; j0: -.globl y0 -.type y0, %function; -y0: .globl j0f .type j0f, %function; j0f: -.globl y0f -.type y0f, %function; -y0f: .globl j1 .type j1, %function; j1: -.globl y1 -.type y1, %function; -y1: .globl j1f .type j1f, %function; j1f: -.globl y1f -.type y1f, %function; -y1f: .globl jn .type jn, %function; jn: -.globl yn -.type yn, %function; -yn: .globl jnf .type jnf, %function; jnf: -.globl ynf -.type ynf, %function; -ynf: +.globl jrand48 +.type jrand48, %function; +jrand48: +.globl kill +.type kill, %function; +kill: +.globl killpg +.type killpg, %function; +killpg: +.globl klogctl +.type klogctl, %function; +klogctl: +.globl l64a +.type l64a, %function; +l64a: +.globl labs +.type labs, %function; +labs: +.globl lchmod +.type lchmod, %function; +lchmod: +.globl lchown +.type lchown, %function; +lchown: +.globl lckpwdf +.type lckpwdf, %function; +lckpwdf: +.globl lcong48 +.type lcong48, %function; +lcong48: .globl ldexp .type ldexp, %function; ldexp: @@ -1726,6 +2861,12 @@ ldexpf: .globl ldexpl .type ldexpl, %function; ldexpl: +.globl ldiv +.type ldiv, %function; +ldiv: +.globl lfind +.type lfind, %function; +lfind: .globl lgamma .type lgamma, %function; lgamma: @@ -1738,15 +2879,42 @@ lgammaf: .weak lgammaf_r .type lgammaf_r, %function; lgammaf_r: -.weak lgammal_r -.type lgammal_r, %function; -lgammal_r: -.globl __lgammal_r -.type __lgammal_r, %function; -__lgammal_r: .globl lgammal .type lgammal, %function; lgammal: +.weak lgammal_r +.type lgammal_r, %function; +lgammal_r: +.globl lgetxattr +.type lgetxattr, %function; +lgetxattr: +.globl link +.type link, %function; +link: +.globl linkat +.type linkat, %function; +linkat: +.globl lio_listio +.type lio_listio, %function; +lio_listio: +.weak lio_listio64 +.type lio_listio64, %function; +lio_listio64: +.globl listen +.type listen, %function; +listen: +.globl listxattr +.type listxattr, %function; +listxattr: +.globl llabs +.type llabs, %function; +llabs: +.globl lldiv +.type lldiv, %function; +lldiv: +.globl llistxattr +.type llistxattr, %function; +llistxattr: .globl llrint .type llrint, %function; llrint: @@ -1765,6 +2933,21 @@ llroundf: .globl llroundl .type llroundl, %function; llroundl: +.globl localeconv +.type localeconv, %function; +localeconv: +.globl localtime +.type localtime, %function; +localtime: +WEAK64 localtime_r +.type localtime_r, %function; +localtime_r: +.globl lockf +.type lockf, %function; +lockf: +.weak lockf64 +.type lockf64, %function; +lockf64: .globl log .type log, %function; log: @@ -1807,9 +2990,21 @@ logbl: .globl logf .type logf, %function; logf: +.globl login_tty +.type login_tty, %function; +login_tty: .globl logl .type logl, %function; logl: +.globl longjmp +.type longjmp, %function; +longjmp: +.globl lrand48 +.type lrand48, %function; +lrand48: +.globl lremovexattr +.type lremovexattr, %function; +lremovexattr: .globl lrint .type lrint, %function; lrint: @@ -1828,423 +3023,162 @@ lroundf: .globl lroundl .type lroundl, %function; lroundl: -.globl modf -.type modf, %function; -modf: -.globl modff -.type modff, %function; -modff: -.globl modfl -.type modfl, %function; -modfl: -.globl nan -.type nan, %function; -nan: -.globl nanf -.type nanf, %function; -nanf: -.globl nanl -.type nanl, %function; -nanl: -.globl nearbyint -.type nearbyint, %function; -nearbyint: -.globl nearbyintf -.type nearbyintf, %function; -nearbyintf: -.globl nearbyintl -.type nearbyintl, %function; -nearbyintl: -.globl nextafter -.type nextafter, %function; -nextafter: -.globl nextafterf -.type nextafterf, %function; -nextafterf: -.globl nextafterl -.type nextafterl, %function; -nextafterl: -.globl nexttoward -.type nexttoward, %function; -nexttoward: -.globl nexttowardf -.type nexttowardf, %function; -nexttowardf: -.globl nexttowardl -.type nexttowardl, %function; -nexttowardl: -.globl pow -.type pow, %function; -pow: -.globl powf -.type powf, %function; -powf: -.globl powl -.type powl, %function; -powl: -.globl remainder -.type remainder, %function; -remainder: -.weak drem -.type drem, %function; -drem: -.weak dremf -.type dremf, %function; -dremf: -.globl remainderf -.type remainderf, %function; -remainderf: -.globl remainderl -.type remainderl, %function; -remainderl: -.globl remquo -.type remquo, %function; -remquo: -.globl remquof -.type remquof, %function; -remquof: -.globl remquol -.type remquol, %function; -remquol: -.globl rint -.type rint, %function; -rint: -.globl rintf -.type rintf, %function; -rintf: -.globl rintl -.type rintl, %function; -rintl: -.globl copysign -.type copysign, %function; -copysign: -.globl copysignf -.type copysignf, %function; -copysignf: -.globl fabs -.type fabs, %function; -fabs: -.globl fabsf -.type fabsf, %function; -fabsf: -.globl fma -.type fma, %function; -fma: -.globl fmaf -.type fmaf, %function; -fmaf: -.globl fmax -.type fmax, %function; -fmax: -.globl fmaxf -.type fmaxf, %function; -fmaxf: -.globl fmin -.type fmin, %function; -fmin: -.globl fminf -.type fminf, %function; -fminf: -.globl sqrt -.type sqrt, %function; -sqrt: -.globl sqrtf -.type sqrtf, %function; -sqrtf: -.globl round -.type round, %function; -round: -.globl roundf -.type roundf, %function; -roundf: -.globl roundl -.type roundl, %function; -roundl: -.globl scalb -.type scalb, %function; -scalb: -.globl scalbf -.type scalbf, %function; -scalbf: -.globl scalbln -.type scalbln, %function; -scalbln: -.globl scalblnf -.type scalblnf, %function; -scalblnf: -.globl scalblnl -.type scalblnl, %function; -scalblnl: -.globl scalbn -.type scalbn, %function; -scalbn: -.globl scalbnf -.type scalbnf, %function; -scalbnf: -.globl scalbnl -.type scalbnl, %function; -scalbnl: -.globl significand -.type significand, %function; -significand: -.globl significandf -.type significandf, %function; -significandf: -.globl sin -.type sin, %function; -sin: -.globl sincos -.type sincos, %function; -sincos: -.globl sincosf -.type sincosf, %function; -sincosf: -.globl sincosl -.type sincosl, %function; -sincosl: -.globl sinf -.type sinf, %function; -sinf: -.globl sinh -.type sinh, %function; -sinh: -.globl sinhf -.type sinhf, %function; -sinhf: -.globl sinhl -.type sinhl, %function; -sinhl: -.globl sinl -.type sinl, %function; -sinl: -.globl sqrtl -.type sqrtl, %function; -sqrtl: -.globl tan -.type tan, %function; -tan: -.globl tanf -.type tanf, %function; -tanf: -.globl tanh -.type tanh, %function; -tanh: -.globl tanhf -.type tanhf, %function; -tanhf: -.globl tanhl -.type tanhl, %function; -tanhl: -.globl tanl -.type tanl, %function; -tanl: -.globl tgamma -.type tgamma, %function; -tgamma: -.globl tgammaf -.type tgammaf, %function; -tgammaf: -.globl tgammal -.type tgammal, %function; -tgammal: -.globl trunc -.type trunc, %function; -trunc: -.globl truncf -.type truncf, %function; -truncf: -.globl truncl -.type truncl, %function; -truncl: -.globl a64l -.type a64l, %function; -a64l: -.globl l64a -.type l64a, %function; -l64a: -.weak __xpg_basename -.type __xpg_basename, %function; -__xpg_basename: -.globl basename -.type basename, %function; -basename: -.globl dirname -.type dirname, %function; -dirname: -.globl ffs -.type ffs, %function; -ffs: -.globl ffsl -.type ffsl, %function; -ffsl: -.globl ffsll -.type ffsll, %function; -ffsll: -.globl fmtmsg -.type fmtmsg, %function; -fmtmsg: -.globl forkpty -.type forkpty, %function; -forkpty: -.globl get_current_dir_name -.type get_current_dir_name, %function; -get_current_dir_name: -.weak getauxval -.type getauxval, %function; -getauxval: -.globl getdomainname -.type getdomainname, %function; -getdomainname: -.globl getentropy -.type getentropy, %function; -getentropy: -.globl gethostid -.type gethostid, %function; -gethostid: -.weak __posix_getopt -.type __posix_getopt, %function; -__posix_getopt: -.globl getopt -.type getopt, %function; -getopt: -.globl getopt_long -.type getopt_long, %function; -getopt_long: -.globl getopt_long_only -.type getopt_long_only, %function; -getopt_long_only: -.globl getpriority -.type getpriority, %function; -getpriority: -.globl getresgid -.type getresgid, %function; -getresgid: -.globl getresuid -.type getresuid, %function; -getresuid: -.weak getrlimit64 -.type getrlimit64, %function; -getrlimit64: -.globl getrlimit -.type getrlimit, %function; -getrlimit: -.globl getrusage -.type getrusage, %function; -getrusage: -.globl getsubopt -.type getsubopt, %function; -getsubopt: -.globl initgroups -.type initgroups, %function; -initgroups: -.globl ioctl -.type ioctl, %function; -ioctl: -.globl issetugid -.type issetugid, %function; -issetugid: -.weak lockf64 -.type lockf64, %function; -lockf64: -.globl lockf -.type lockf, %function; -lockf: -.globl login_tty -.type login_tty, %function; -login_tty: -.globl setmntent -.type setmntent, %function; -setmntent: -.globl endmntent -.type endmntent, %function; -endmntent: -.globl getmntent_r -.type getmntent_r, %function; -getmntent_r: -.globl getmntent -.type getmntent, %function; -getmntent: -.globl addmntent -.type addmntent, %function; -addmntent: -.globl hasmntopt -.type hasmntopt, %function; -hasmntopt: -.weak nftw64 -.type nftw64, %function; -nftw64: -.globl nftw -.type nftw, %function; -nftw: -.globl openpty -.type openpty, %function; -openpty: -.globl ptsname -.type ptsname, %function; -ptsname: -.globl posix_openpt -.type posix_openpt, %function; -posix_openpt: -.globl grantpt -.type grantpt, %function; -grantpt: -.globl unlockpt -.type unlockpt, %function; -unlockpt: -.weak ptsname_r -.type ptsname_r, %function; -ptsname_r: -.globl realpath -.type realpath, %function; -realpath: -.globl setdomainname -.type setdomainname, %function; -setdomainname: -.globl setpriority -.type setpriority, %function; -setpriority: -.globl setrlimit -.type setrlimit, %function; -setrlimit: -.weak setrlimit64 -.type setrlimit64, %function; -setrlimit64: -.globl syscall -.type syscall, %function; -syscall: -.globl setlogmask -.type setlogmask, %function; -setlogmask: -.globl closelog -.type closelog, %function; -closelog: -.globl openlog -.type openlog, %function; -openlog: -.globl syslog -.type syslog, %function; -syslog: -.weak vsyslog -.type vsyslog, %function; -vsyslog: -.globl uname -.type uname, %function; -uname: -.globl wordexp -.type wordexp, %function; -wordexp: -.globl wordfree -.type wordfree, %function; -wordfree: +.globl lsearch +.type lsearch, %function; +lsearch: +.weak lseek +.type lseek, %function; +lseek: +.weak lseek64 +.type lseek64, %function; +lseek64: +.globl lsetxattr +.type lsetxattr, %function; +lsetxattr: +.globl lstat +.type lstat, %function; +lstat: +.weak lstat64 +.type lstat64, %function; +lstat64: +.globl lutimes +.type lutimes, %function; +lutimes: .weak madvise .type madvise, %function; madvise: +.weak malloc +.type malloc, %function; +malloc: +.globl malloc_usable_size +.type malloc_usable_size, %function; +malloc_usable_size: +.globl mblen +.type mblen, %function; +mblen: +.globl mbrlen +.type mbrlen, %function; +mbrlen: +.globl mbrtoc16 +.type mbrtoc16, %function; +mbrtoc16: +.globl mbrtoc32 +.type mbrtoc32, %function; +mbrtoc32: +.globl mbrtowc +.type mbrtowc, %function; +mbrtowc: +.globl mbsinit +.type mbsinit, %function; +mbsinit: +.globl mbsnrtowcs +.type mbsnrtowcs, %function; +mbsnrtowcs: +.globl mbsrtowcs +.type mbsrtowcs, %function; +mbsrtowcs: +.globl mbstowcs +.type mbstowcs, %function; +mbstowcs: +.globl mbtowc +.type mbtowc, %function; +mbtowc: +.globl memalign +.type memalign, %function; +memalign: +.weak membarrier +.type membarrier, %function; +membarrier: +.globl memccpy +.type memccpy, %function; +memccpy: +.globl memchr +.type memchr, %function; +memchr: +.globl memcmp +.type memcmp, %function; +memcmp: +.globl memcpy +.type memcpy, %function; +memcpy: +.globl memfd_create +.type memfd_create, %function; +memfd_create: +.globl memmem +.type memmem, %function; +memmem: +.globl memmove +.type memmove, %function; +memmove: +.globl mempcpy +.type mempcpy, %function; +mempcpy: +.weak memrchr +.type memrchr, %function; +memrchr: +.globl memset +.type memset, %function; +memset: .globl mincore .type mincore, %function; mincore: +.globl mkdir +.type mkdir, %function; +mkdir: +.globl mkdirat +.type mkdirat, %function; +mkdirat: +.globl mkdtemp +.type mkdtemp, %function; +mkdtemp: +.globl mkfifo +.type mkfifo, %function; +mkfifo: +.globl mkfifoat +.type mkfifoat, %function; +mkfifoat: +.globl mknod +.type mknod, %function; +mknod: +.globl mknodat +.type mknodat, %function; +mknodat: +.globl mkostemp +.type mkostemp, %function; +mkostemp: +.weak mkostemp64 +.type mkostemp64, %function; +mkostemp64: +.weak mkostemps +.type mkostemps, %function; +mkostemps: +.weak mkostemps64 +.type mkostemps64, %function; +mkostemps64: +.globl mkstemp +.type mkstemp, %function; +mkstemp: +.weak mkstemp64 +.type mkstemp64, %function; +mkstemp64: +.globl mkstemps +.type mkstemps, %function; +mkstemps: +.weak mkstemps64 +.type mkstemps64, %function; +mkstemps64: +.globl mktemp +.type mktemp, %function; +mktemp: +.globl mktime +.type mktime, %function; +mktime: .globl mlock .type mlock, %function; mlock: +.globl mlock2 +.type mlock2, %function; +mlock2: .globl mlockall .type mlockall, %function; mlockall: @@ -2254,33 +3188,21 @@ mmap: .weak mmap64 .type mmap64, %function; mmap64: +.globl modf +.type modf, %function; +modf: +.globl modff +.type modff, %function; +modff: +.globl modfl +.type modfl, %function; +modfl: +.globl mount +.type mount, %function; +mount: .weak mprotect .type mprotect, %function; mprotect: -.weak mremap -.type mremap, %function; -mremap: -.globl msync -.type msync, %function; -msync: -.globl munlock -.type munlock, %function; -munlock: -.globl munlockall -.type munlockall, %function; -munlockall: -.weak munmap -.type munmap, %function; -munmap: -.globl posix_madvise -.type posix_madvise, %function; -posix_madvise: -.globl shm_open -.type shm_open, %function; -shm_open: -.globl shm_unlink -.type shm_unlink, %function; -shm_unlink: .globl mq_close .type mq_close, %function; mq_close: @@ -2311,519 +3233,234 @@ mq_timedsend: .globl mq_unlink .type mq_unlink, %function; mq_unlink: -.globl btowc -.type btowc, %function; -btowc: -.globl c16rtomb -.type c16rtomb, %function; -c16rtomb: -.globl c32rtomb -.type c32rtomb, %function; -c32rtomb: -.globl mblen -.type mblen, %function; -mblen: -.globl mbrlen -.type mbrlen, %function; -mbrlen: -.globl mbrtoc16 -.type mbrtoc16, %function; -mbrtoc16: -.globl mbrtoc32 -.type mbrtoc32, %function; -mbrtoc32: -.globl mbrtowc -.type mbrtowc, %function; -mbrtowc: -.globl mbsinit -.type mbsinit, %function; -mbsinit: -.globl mbsnrtowcs -.type mbsnrtowcs, %function; -mbsnrtowcs: -.globl mbsrtowcs -.type mbsrtowcs, %function; -mbsrtowcs: -.globl mbstowcs -.type mbstowcs, %function; -mbstowcs: -.globl mbtowc -.type mbtowc, %function; -mbtowc: -.globl wcrtomb -.type wcrtomb, %function; -wcrtomb: -.globl wcsnrtombs -.type wcsnrtombs, %function; -wcsnrtombs: -.globl wcsrtombs -.type wcsrtombs, %function; -wcsrtombs: -.globl wcstombs -.type wcstombs, %function; -wcstombs: -.globl wctob -.type wctob, %function; -wctob: -.globl wctomb -.type wctomb, %function; -wctomb: -.globl accept -.type accept, %function; -accept: -.globl accept4 -.type accept4, %function; -accept4: -.globl bind -.type bind, %function; -bind: -.globl connect -.type connect, %function; -connect: -.globl dn_comp -.type dn_comp, %function; -dn_comp: -.weak dn_expand -.type dn_expand, %function; -dn_expand: -.globl dn_skipname -.type dn_skipname, %function; -dn_skipname: -.weak setnetent -.type setnetent, %function; -setnetent: -.globl sethostent -.type sethostent, %function; -sethostent: -.globl gethostent -.type gethostent, %function; -gethostent: -.globl getnetent -.type getnetent, %function; -getnetent: -.globl endhostent -.type endhostent, %function; -endhostent: -.weak endnetent -.type endnetent, %function; -endnetent: -.globl ether_aton_r -.type ether_aton_r, %function; -ether_aton_r: -.globl ether_aton -.type ether_aton, %function; -ether_aton: -.globl ether_ntoa_r -.type ether_ntoa_r, %function; -ether_ntoa_r: -.globl ether_ntoa -.type ether_ntoa, %function; -ether_ntoa: -.globl ether_line -.type ether_line, %function; -ether_line: -.globl ether_ntohost -.type ether_ntohost, %function; -ether_ntohost: -.globl ether_hostton -.type ether_hostton, %function; -ether_hostton: -.globl freeaddrinfo -.type freeaddrinfo, %function; -freeaddrinfo: -.globl gai_strerror -.type gai_strerror, %function; -gai_strerror: -.globl getaddrinfo -.type getaddrinfo, %function; -getaddrinfo: -.globl gethostbyaddr -.type gethostbyaddr, %function; -gethostbyaddr: -.globl gethostbyaddr_r -.type gethostbyaddr_r, %function; -gethostbyaddr_r: -.globl gethostbyname -.type gethostbyname, %function; -gethostbyname: -.globl gethostbyname2 -.type gethostbyname2, %function; -gethostbyname2: -.globl gethostbyname2_r -.type gethostbyname2_r, %function; -gethostbyname2_r: -.globl gethostbyname_r -.type gethostbyname_r, %function; -gethostbyname_r: -.globl freeifaddrs -.type freeifaddrs, %function; -freeifaddrs: -.globl getifaddrs -.type getifaddrs, %function; -getifaddrs: -.globl getnameinfo -.type getnameinfo, %function; -getnameinfo: -.globl getpeername -.type getpeername, %function; -getpeername: -.globl getservbyname -.type getservbyname, %function; -getservbyname: -.globl getservbyname_r -.type getservbyname_r, %function; -getservbyname_r: -.globl getservbyport -.type getservbyport, %function; -getservbyport: -.globl getservbyport_r -.type getservbyport_r, %function; -getservbyport_r: -.globl getsockname -.type getsockname, %function; -getsockname: -.globl getsockopt -.type getsockopt, %function; -getsockopt: -.globl __h_errno_location -.type __h_errno_location, %function; -__h_errno_location: -.globl herror -.type herror, %function; -herror: -.globl hstrerror -.type hstrerror, %function; -hstrerror: -.globl htonl -.type htonl, %function; -htonl: -.globl htons -.type htons, %function; -htons: -.globl if_freenameindex -.type if_freenameindex, %function; -if_freenameindex: -.globl if_indextoname -.type if_indextoname, %function; -if_indextoname: -.globl if_nameindex -.type if_nameindex, %function; -if_nameindex: -.globl if_nametoindex -.type if_nametoindex, %function; -if_nametoindex: -.globl inet_addr -.type inet_addr, %function; -inet_addr: -.weak inet_aton -.type inet_aton, %function; -inet_aton: -.globl inet_network -.type inet_network, %function; -inet_network: -.globl inet_makeaddr -.type inet_makeaddr, %function; -inet_makeaddr: -.globl inet_lnaof -.type inet_lnaof, %function; -inet_lnaof: -.globl inet_netof -.type inet_netof, %function; -inet_netof: -.globl inet_ntoa -.type inet_ntoa, %function; -inet_ntoa: -.globl inet_ntop -.type inet_ntop, %function; -inet_ntop: -.globl inet_pton -.type inet_pton, %function; -inet_pton: -.globl listen -.type listen, %function; -listen: -.globl getnetbyaddr -.type getnetbyaddr, %function; -getnetbyaddr: -.globl getnetbyname -.type getnetbyname, %function; -getnetbyname: +.globl mrand48 +.type mrand48, %function; +mrand48: +.weak mremap +.type mremap, %function; +mremap: +.globl msgctl +.type msgctl, %function; +msgctl: +.globl msgget +.type msgget, %function; +msgget: +.globl msgrcv +.type msgrcv, %function; +msgrcv: +.globl msgsnd +.type msgsnd, %function; +msgsnd: +.globl msync +.type msync, %function; +msync: +.globl mtx_destroy +.type mtx_destroy, %function; +mtx_destroy: +.globl mtx_init +.type mtx_init, %function; +mtx_init: +.globl mtx_lock +.type mtx_lock, %function; +mtx_lock: +.globl mtx_timedlock +.type mtx_timedlock, %function; +mtx_timedlock: +.globl mtx_trylock +.type mtx_trylock, %function; +mtx_trylock: +.globl mtx_unlock +.type mtx_unlock, %function; +mtx_unlock: +.globl munlock +.type munlock, %function; +munlock: +.globl munlockall +.type munlockall, %function; +munlockall: +.weak munmap +.type munmap, %function; +munmap: +.globl name_to_handle_at +.type name_to_handle_at, %function; +name_to_handle_at: +.globl nan +.type nan, %function; +nan: +.globl nanf +.type nanf, %function; +nanf: +.globl nanl +.type nanl, %function; +nanl: +.globl nanosleep +.type nanosleep, %function; +nanosleep: +.globl nearbyint +.type nearbyint, %function; +nearbyint: +.globl nearbyintf +.type nearbyintf, %function; +nearbyintf: +.globl nearbyintl +.type nearbyintl, %function; +nearbyintl: +.weak newlocale +.type newlocale, %function; +newlocale: +.globl nextafter +.type nextafter, %function; +nextafter: +.globl nextafterf +.type nextafterf, %function; +nextafterf: +.globl nextafterl +.type nextafterl, %function; +nextafterl: +.globl nexttoward +.type nexttoward, %function; +nexttoward: +.globl nexttowardf +.type nexttowardf, %function; +nexttowardf: +.globl nexttowardl +.type nexttowardl, %function; +nexttowardl: +.globl nftw +.type nftw, %function; +nftw: +.weak nftw64 +.type nftw64, %function; +nftw64: +.globl ngettext +.type ngettext, %function; +ngettext: +.globl nice +.type nice, %function; +nice: +.weak nl_langinfo +.type nl_langinfo, %function; +nl_langinfo: +.weak nl_langinfo_l +.type nl_langinfo_l, %function; +nl_langinfo_l: +.globl nrand48 +.type nrand48, %function; +nrand48: .globl ns_get16 .type ns_get16, %function; ns_get16: .globl ns_get32 .type ns_get32, %function; ns_get32: +.globl ns_initparse +.type ns_initparse, %function; +ns_initparse: +.globl ns_name_uncompress +.type ns_name_uncompress, %function; +ns_name_uncompress: +.globl ns_parserr +.type ns_parserr, %function; +ns_parserr: .globl ns_put16 .type ns_put16, %function; ns_put16: .globl ns_put32 .type ns_put32, %function; ns_put32: -.globl ns_initparse -.type ns_initparse, %function; -ns_initparse: .globl ns_skiprr .type ns_skiprr, %function; ns_skiprr: -.globl ns_parserr -.type ns_parserr, %function; -ns_parserr: -.globl ns_name_uncompress -.type ns_name_uncompress, %function; -ns_name_uncompress: .globl ntohl .type ntohl, %function; ntohl: .globl ntohs .type ntohs, %function; ntohs: -.globl endprotoent -.type endprotoent, %function; -endprotoent: -.globl setprotoent -.type setprotoent, %function; -setprotoent: -.globl getprotoent -.type getprotoent, %function; -getprotoent: -.globl getprotobyname -.type getprotobyname, %function; -getprotobyname: -.globl getprotobynumber -.type getprotobynumber, %function; -getprotobynumber: -.globl recv -.type recv, %function; -recv: -.globl recvfrom -.type recvfrom, %function; -recvfrom: -.globl recvmmsg -.type recvmmsg, %function; -recvmmsg: -.globl recvmsg -.type recvmsg, %function; -recvmsg: -.globl res_init -.type res_init, %function; -res_init: -.weak res_mkquery -.type res_mkquery, %function; -res_mkquery: -.globl res_query -.type res_query, %function; -res_query: -.weak res_search -.type res_search, %function; -res_search: -.globl res_querydomain -.type res_querydomain, %function; -res_querydomain: -.weak res_send -.type res_send, %function; -res_send: -.globl __res_state -.type __res_state, %function; -__res_state: -.globl send -.type send, %function; -send: -.globl sendmmsg -.type sendmmsg, %function; -sendmmsg: -.globl sendmsg -.type sendmsg, %function; -sendmsg: -.globl sendto -.type sendto, %function; -sendto: -.globl endservent -.type endservent, %function; -endservent: -.globl setservent -.type setservent, %function; -setservent: -.globl getservent -.type getservent, %function; -getservent: -.globl setsockopt -.type setsockopt, %function; -setsockopt: -.globl shutdown -.type shutdown, %function; -shutdown: -.globl sockatmark -.type sockatmark, %function; -sockatmark: -.globl socket -.type socket, %function; -socket: -.globl socketpair -.type socketpair, %function; -socketpair: -.globl fgetgrent -.type fgetgrent, %function; -fgetgrent: -.globl fgetpwent -.type fgetpwent, %function; -fgetpwent: -.globl fgetspent -.type fgetspent, %function; -fgetspent: -.globl getgrnam_r -.type getgrnam_r, %function; -getgrnam_r: -.globl getgrgid_r -.type getgrgid_r, %function; -getgrgid_r: -.weak endgrent -.type endgrent, %function; -endgrent: -.globl setgrent -.type setgrent, %function; -setgrent: -.globl getgrent -.type getgrent, %function; -getgrent: -.globl getgrgid -.type getgrgid, %function; -getgrgid: -.globl getgrnam -.type getgrnam, %function; -getgrnam: -.globl getgrouplist -.type getgrouplist, %function; -getgrouplist: -.globl getpwnam_r -.type getpwnam_r, %function; -getpwnam_r: -.globl getpwuid_r -.type getpwuid_r, %function; -getpwuid_r: -.weak endpwent -.type endpwent, %function; -endpwent: -.globl setpwent -.type setpwent, %function; -setpwent: -.globl getpwent -.type getpwent, %function; -getpwent: -.globl getpwuid -.type getpwuid, %function; -getpwuid: -.globl getpwnam -.type getpwnam, %function; -getpwnam: -.globl setspent -.type setspent, %function; -setspent: -.globl endspent -.type endspent, %function; -endspent: -.globl getspent -.type getspent, %function; -getspent: -.globl getspnam -.type getspnam, %function; -getspnam: -.globl getspnam_r -.type getspnam_r, %function; -getspnam_r: -.globl lckpwdf -.type lckpwdf, %function; -lckpwdf: -.globl ulckpwdf -.type ulckpwdf, %function; -ulckpwdf: -.globl putgrent -.type putgrent, %function; -putgrent: -.globl putpwent -.type putpwent, %function; -putpwent: -.globl putspent -.type putspent, %function; -putspent: -.globl erand48 -.type erand48, %function; -erand48: -.globl drand48 -.type drand48, %function; -drand48: -.globl lcong48 -.type lcong48, %function; -lcong48: -.globl nrand48 -.type nrand48, %function; -nrand48: -.globl lrand48 -.type lrand48, %function; -lrand48: -.globl jrand48 -.type jrand48, %function; -jrand48: -.globl mrand48 -.type mrand48, %function; -mrand48: -.globl srand -.type srand, %function; -srand: -.globl rand -.type rand, %function; -rand: -.globl rand_r -.type rand_r, %function; -rand_r: -.globl srandom -.type srandom, %function; -srandom: -.globl initstate -.type initstate, %function; -initstate: -.globl setstate -.type setstate, %function; -setstate: -.globl random -.type random, %function; -random: -.globl seed48 -.type seed48, %function; -seed48: -.globl srand48 -.type srand48, %function; -srand48: -.globl _Fork -.type _Fork, %function; -_Fork: -.globl execl -.type execl, %function; -execl: -.globl execle -.type execle, %function; -execle: -.globl execlp -.type execlp, %function; -execlp: -.globl execv -.type execv, %function; -execv: -.globl execve -.type execve, %function; -execve: -.weak execvpe -.type execvpe, %function; -execvpe: -.globl execvp -.type execvp, %function; -execvp: -.globl fexecve -.type fexecve, %function; -fexecve: -.globl fork -.type fork, %function; -fork: +.globl open +.type open, %function; +open: +.weak open64 +.type open64, %function; +open64: +.globl open_by_handle_at +.type open_by_handle_at, %function; +open_by_handle_at: +.globl open_memstream +.type open_memstream, %function; +open_memstream: +.globl open_wmemstream +.type open_wmemstream, %function; +open_wmemstream: +.globl openat +.type openat, %function; +openat: +.weak openat64 +.type openat64, %function; +openat64: +.globl opendir +.type opendir, %function; +opendir: +.globl openlog +.type openlog, %function; +openlog: +.globl openpty +.type openpty, %function; +openpty: +.globl pathconf +.type pathconf, %function; +pathconf: +.globl pause +.type pause, %function; +pause: +.globl pclose +.type pclose, %function; +pclose: +.globl perror +.type perror, %function; +perror: +.globl personality +.type personality, %function; +personality: +.globl pipe +.type pipe, %function; +pipe: +.globl pipe2 +.type pipe2, %function; +pipe2: +.globl pivot_root +.type pivot_root, %function; +pivot_root: +.globl poll +.type poll, %function; +poll: +.globl popen +.type popen, %function; +popen: +.globl posix_close +.type posix_close, %function; +posix_close: +.globl posix_fadvise +.type posix_fadvise, %function; +posix_fadvise: +.weak posix_fadvise64 +.type posix_fadvise64, %function; +posix_fadvise64: +.globl posix_fallocate +.type posix_fallocate, %function; +posix_fallocate: +.weak posix_fallocate64 +.type posix_fallocate64, %function; +posix_fallocate64: +.globl posix_madvise +.type posix_madvise, %function; +posix_madvise: +.globl posix_memalign +.type posix_memalign, %function; +posix_memalign: +.globl posix_openpt +.type posix_openpt, %function; +posix_openpt: .globl posix_spawn .type posix_spawn, %function; posix_spawn: @@ -2857,6 +3494,12 @@ posix_spawnattr_getflags: .globl posix_spawnattr_getpgroup .type posix_spawnattr_getpgroup, %function; posix_spawnattr_getpgroup: +.globl posix_spawnattr_getschedparam +.type posix_spawnattr_getschedparam, %function; +posix_spawnattr_getschedparam: +.globl posix_spawnattr_getschedpolicy +.type posix_spawnattr_getschedpolicy, %function; +posix_spawnattr_getschedpolicy: .globl posix_spawnattr_getsigdefault .type posix_spawnattr_getsigdefault, %function; posix_spawnattr_getsigdefault: @@ -2866,24 +3509,18 @@ posix_spawnattr_getsigmask: .globl posix_spawnattr_init .type posix_spawnattr_init, %function; posix_spawnattr_init: -.globl posix_spawnattr_getschedparam -.type posix_spawnattr_getschedparam, %function; -posix_spawnattr_getschedparam: -.globl posix_spawnattr_setschedparam -.type posix_spawnattr_setschedparam, %function; -posix_spawnattr_setschedparam: -.globl posix_spawnattr_getschedpolicy -.type posix_spawnattr_getschedpolicy, %function; -posix_spawnattr_getschedpolicy: -.globl posix_spawnattr_setschedpolicy -.type posix_spawnattr_setschedpolicy, %function; -posix_spawnattr_setschedpolicy: .globl posix_spawnattr_setflags .type posix_spawnattr_setflags, %function; posix_spawnattr_setflags: .globl posix_spawnattr_setpgroup .type posix_spawnattr_setpgroup, %function; posix_spawnattr_setpgroup: +.globl posix_spawnattr_setschedparam +.type posix_spawnattr_setschedparam, %function; +posix_spawnattr_setschedparam: +.globl posix_spawnattr_setschedpolicy +.type posix_spawnattr_setschedpolicy, %function; +posix_spawnattr_setschedpolicy: .globl posix_spawnattr_setsigdefault .type posix_spawnattr_setsigdefault, %function; posix_spawnattr_setsigdefault: @@ -2893,1386 +3530,66 @@ posix_spawnattr_setsigmask: .globl posix_spawnp .type posix_spawnp, %function; posix_spawnp: -.globl system -.type system, %function; -system: -.globl vfork -.type vfork, %function; -vfork: -.globl wait -.type wait, %function; -wait: -.globl waitid -.type waitid, %function; -waitid: -.globl waitpid -.type waitpid, %function; -waitpid: -.globl fnmatch -.type fnmatch, %function; -fnmatch: -.globl glob -.type glob, %function; -glob: -.weak glob64 -.type glob64, %function; -glob64: -.globl globfree -.type globfree, %function; -globfree: -.weak globfree64 -.type globfree64, %function; -globfree64: -.globl regcomp -.type regcomp, %function; -regcomp: -.globl regfree -.type regfree, %function; -regfree: -.globl regerror -.type regerror, %function; -regerror: -.globl regexec -.type regexec, %function; -regexec: -.globl sched_setaffinity -.type sched_setaffinity, %function; -sched_setaffinity: -.globl pthread_setaffinity_np -.type pthread_setaffinity_np, %function; -pthread_setaffinity_np: -.globl sched_getaffinity -.type sched_getaffinity, %function; -sched_getaffinity: -.globl pthread_getaffinity_np -.type pthread_getaffinity_np, %function; -pthread_getaffinity_np: -.globl __sched_cpucount -.type __sched_cpucount, %function; -__sched_cpucount: -.globl sched_get_priority_max -.type sched_get_priority_max, %function; -sched_get_priority_max: -.globl sched_get_priority_min -.type sched_get_priority_min, %function; -sched_get_priority_min: -.globl sched_getcpu -.type sched_getcpu, %function; -sched_getcpu: -.globl sched_getparam -.type sched_getparam, %function; -sched_getparam: -.globl sched_getscheduler -.type sched_getscheduler, %function; -sched_getscheduler: -.globl sched_rr_get_interval -.type sched_rr_get_interval, %function; -sched_rr_get_interval: -.globl sched_setparam -.type sched_setparam, %function; -sched_setparam: -.globl sched_setscheduler -.type sched_setscheduler, %function; -sched_setscheduler: -.globl sched_yield -.type sched_yield, %function; -sched_yield: -.globl hcreate -.type hcreate, %function; -hcreate: -.weak hcreate_r -.type hcreate_r, %function; -hcreate_r: -.globl hdestroy -.type hdestroy, %function; -hdestroy: -.weak hdestroy_r -.type hdestroy_r, %function; -hdestroy_r: -.globl hsearch -.type hsearch, %function; -hsearch: -.weak hsearch_r -.type hsearch_r, %function; -hsearch_r: -.globl insque -.type insque, %function; -insque: -.globl remque -.type remque, %function; -remque: -.globl lsearch -.type lsearch, %function; -lsearch: -.globl lfind -.type lfind, %function; -lfind: -.globl tdelete -.type tdelete, %function; -tdelete: -.globl tdestroy -.type tdestroy, %function; -tdestroy: -.globl tfind -.type tfind, %function; -tfind: -.globl tsearch -.type tsearch, %function; -tsearch: -.globl twalk -.type twalk, %function; -twalk: -.globl poll -.type poll, %function; -poll: +.globl pow +.type pow, %function; +pow: +.weak pow10 +.type pow10, %function; +pow10: +.weak pow10f +.type pow10f, %function; +pow10f: +.weak pow10l +.type pow10l, %function; +pow10l: +.globl powf +.type powf, %function; +powf: +.globl powl +.type powl, %function; +powl: +.globl ppoll +.type ppoll, %function; +ppoll: +.globl prctl +.type prctl, %function; +prctl: +.globl pread +.type pread, %function; +pread: +.weak pread64 +.type pread64, %function; +pread64: +.globl preadv +.type preadv, %function; +preadv: +.weak preadv64 +.type preadv64, %function; +preadv64: +.globl printf +.type printf, %function; +printf: +.globl prlimit +.type prlimit, %function; +prlimit: +.weak prlimit64 +.type prlimit64, %function; +prlimit64: +.globl process_vm_readv +.type process_vm_readv, %function; +process_vm_readv: +.globl process_vm_writev +.type process_vm_writev, %function; +process_vm_writev: .globl pselect .type pselect, %function; pselect: -.globl select -.type select, %function; -select: -.globl _longjmp -.type _longjmp, %function; -_longjmp: -#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) -.globl __longjmp -.type __longjmp, %function; -__longjmp: -#endif -.globl longjmp -.type longjmp, %function; -longjmp: -.globl _setjmp -.type _setjmp, %function; -_setjmp: -.globl setjmp -.type setjmp, %function; -setjmp: -.globl __setjmp -.type __setjmp, %function; -__setjmp: -.globl getitimer -.type getitimer, %function; -getitimer: -.globl kill -.type kill, %function; -kill: -.globl killpg -.type killpg, %function; -killpg: .globl psiginfo .type psiginfo, %function; psiginfo: .globl psignal .type psignal, %function; psignal: -.globl raise -.type raise, %function; -raise: -.globl __sigsetjmp -.type __sigsetjmp, %function; -__sigsetjmp: -.globl sigsetjmp -.type sigsetjmp, %function; -sigsetjmp: -.globl setitimer -.type setitimer, %function; -setitimer: -.weak sigaction -.type sigaction, %function; -sigaction: -.globl sigaddset -.type sigaddset, %function; -sigaddset: -.globl sigaltstack -.type sigaltstack, %function; -sigaltstack: -.globl sigandset -.type sigandset, %function; -sigandset: -.globl sigdelset -.type sigdelset, %function; -sigdelset: -.globl sigemptyset -.type sigemptyset, %function; -sigemptyset: -.globl sigfillset -.type sigfillset, %function; -sigfillset: -.globl sighold -.type sighold, %function; -sighold: -.globl sigignore -.type sigignore, %function; -sigignore: -.globl siginterrupt -.type siginterrupt, %function; -siginterrupt: -.globl sigisemptyset -.type sigisemptyset, %function; -sigisemptyset: -.globl sigismember -.type sigismember, %function; -sigismember: -.globl siglongjmp -.type siglongjmp, %function; -siglongjmp: -.globl signal -.type signal, %function; -signal: -.weak __sysv_signal -.type __sysv_signal, %function; -__sysv_signal: -.weak bsd_signal -.type bsd_signal, %function; -bsd_signal: -.globl sigorset -.type sigorset, %function; -sigorset: -.globl sigpause -.type sigpause, %function; -sigpause: -.globl sigpending -.type sigpending, %function; -sigpending: -.globl sigprocmask -.type sigprocmask, %function; -sigprocmask: -.globl sigqueue -.type sigqueue, %function; -sigqueue: -.globl sigrelse -.type sigrelse, %function; -sigrelse: -.globl __libc_current_sigrtmax -.type __libc_current_sigrtmax, %function; -__libc_current_sigrtmax: -.globl __libc_current_sigrtmin -.type __libc_current_sigrtmin, %function; -__libc_current_sigrtmin: -.globl sigset -.type sigset, %function; -sigset: -.globl sigsuspend -.type sigsuspend, %function; -sigsuspend: -.globl sigtimedwait -.type sigtimedwait, %function; -sigtimedwait: -.globl sigwait -.type sigwait, %function; -sigwait: -.globl sigwaitinfo -.type sigwaitinfo, %function; -sigwaitinfo: -WEAK64 __fxstat64 -.type __fxstat64, %function; -__fxstat64: -#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_powerpc) -.globl __fxstat -.type __fxstat, %function; -__fxstat: -#endif -#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_powerpc) -.globl __fxstatat -.type __fxstatat, %function; -__fxstatat: -#endif -WEAK64 __fxstatat64 -.type __fxstatat64, %function; -__fxstatat64: -WEAK64 __lxstat64 -.type __lxstat64, %function; -__lxstat64: -#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_powerpc) -.globl __lxstat -.type __lxstat, %function; -__lxstat: -#endif -#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_powerpc) -.globl __xstat -.type __xstat, %function; -__xstat: -#endif -WEAK64 __xstat64 -.type __xstat64, %function; -__xstat64: -.globl __xmknod -.type __xmknod, %function; -__xmknod: -.globl __xmknodat -.type __xmknodat, %function; -__xmknodat: -.globl chmod -.type chmod, %function; -chmod: -.globl fchmod -.type fchmod, %function; -fchmod: -.globl fchmodat -.type fchmodat, %function; -fchmodat: -.weak fstat64 -.type fstat64, %function; -fstat64: -.globl fstat -.type fstat, %function; -fstat: -.globl fstatat -.type fstatat, %function; -fstatat: -.weak fstatat64 -.type fstatat64, %function; -fstatat64: -.globl futimens -.type futimens, %function; -futimens: -WEAK64 futimesat -.type futimesat, %function; -futimesat: -.globl lchmod -.type lchmod, %function; -lchmod: -.weak lstat64 -.type lstat64, %function; -lstat64: -.globl lstat -.type lstat, %function; -lstat: -.globl mkdir -.type mkdir, %function; -mkdir: -.globl mkdirat -.type mkdirat, %function; -mkdirat: -.globl mkfifo -.type mkfifo, %function; -mkfifo: -.globl mkfifoat -.type mkfifoat, %function; -mkfifoat: -.globl mknod -.type mknod, %function; -mknod: -.globl mknodat -.type mknodat, %function; -mknodat: -.globl stat -.type stat, %function; -stat: -.weak stat64 -.type stat64, %function; -stat64: -.weak statfs -.type statfs, %function; -statfs: -.weak statfs64 -.type statfs64, %function; -statfs64: -.weak fstatfs -.type fstatfs, %function; -fstatfs: -.weak fstatfs64 -.type fstatfs64, %function; -fstatfs64: -.weak statvfs64 -.type statvfs64, %function; -statvfs64: -.globl statvfs -.type statvfs, %function; -statvfs: -.weak fstatvfs64 -.type fstatvfs64, %function; -fstatvfs64: -.globl fstatvfs -.type fstatvfs, %function; -fstatvfs: -.globl umask -.type umask, %function; -umask: -.globl utimensat -.type utimensat, %function; -utimensat: -.weak fdopen -.type fdopen, %function; -fdopen: -.globl __overflow -.type __overflow, %function; -.protected __overflow -__overflow: -.globl __uflow -.type __uflow, %function; -.protected __uflow -__uflow: -.globl asprintf -.type asprintf, %function; -asprintf: -.weak clearerr_unlocked -.type clearerr_unlocked, %function; -clearerr_unlocked: -.globl clearerr -.type clearerr, %function; -clearerr: -.globl dprintf -.type dprintf, %function; -dprintf: -.globl _flushlbf -.type _flushlbf, %function; -_flushlbf: -.globl __fsetlocking -.type __fsetlocking, %function; -__fsetlocking: -.globl __fwriting -.type __fwriting, %function; -__fwriting: -.globl __freading -.type __freading, %function; -__freading: -.globl __freadable -.type __freadable, %function; -__freadable: -.globl __fwritable -.type __fwritable, %function; -__fwritable: -.globl __flbf -.type __flbf, %function; -__flbf: -.globl __fbufsize -.type __fbufsize, %function; -__fbufsize: -.globl __fpending -.type __fpending, %function; -__fpending: -.globl __fpurge -.type __fpurge, %function; -__fpurge: -.weak fpurge -.type fpurge, %function; -fpurge: -.globl __freadahead -.type __freadahead, %function; -__freadahead: -.globl __freadptr -.type __freadptr, %function; -__freadptr: -.globl __freadptrinc -.type __freadptrinc, %function; -__freadptrinc: -.globl __fseterr -.type __fseterr, %function; -__fseterr: -.globl fclose -.type fclose, %function; -fclose: -.weak _IO_feof_unlocked -.type _IO_feof_unlocked, %function; -_IO_feof_unlocked: -.globl feof -.type feof, %function; -feof: -.weak feof_unlocked -.type feof_unlocked, %function; -feof_unlocked: -.globl ferror -.type ferror, %function; -ferror: -.weak ferror_unlocked -.type ferror_unlocked, %function; -ferror_unlocked: -.weak _IO_ferror_unlocked -.type _IO_ferror_unlocked, %function; -_IO_ferror_unlocked: -.weak fflush_unlocked -.type fflush_unlocked, %function; -fflush_unlocked: -.globl fflush -.type fflush, %function; -fflush: -.globl fgetc -.type fgetc, %function; -fgetc: -.globl fgetln -.type fgetln, %function; -fgetln: -.globl fgetpos -.type fgetpos, %function; -fgetpos: -.weak fgetpos64 -.type fgetpos64, %function; -fgetpos64: -.weak fgets_unlocked -.type fgets_unlocked, %function; -fgets_unlocked: -.globl fgets -.type fgets, %function; -fgets: -.weak getwc_unlocked -.type getwc_unlocked, %function; -getwc_unlocked: -.weak fgetwc_unlocked -.type fgetwc_unlocked, %function; -fgetwc_unlocked: -.globl __fgetwc_unlocked -.type __fgetwc_unlocked, %function; -__fgetwc_unlocked: -.globl fgetwc -.type fgetwc, %function; -fgetwc: -.weak fgetws_unlocked -.type fgetws_unlocked, %function; -fgetws_unlocked: -.globl fgetws -.type fgetws, %function; -fgetws: -.weak fileno_unlocked -.type fileno_unlocked, %function; -fileno_unlocked: -.globl fileno -.type fileno, %function; -fileno: -.globl flockfile -.type flockfile, %function; -flockfile: -.globl fmemopen -.type fmemopen, %function; -fmemopen: -.weak fopen64 -.type fopen64, %function; -fopen64: -.globl fopen -.type fopen, %function; -fopen: -.globl fopencookie -.type fopencookie, %function; -fopencookie: -.globl fprintf -.type fprintf, %function; -fprintf: -.globl fputc -.type fputc, %function; -fputc: -.weak fputs_unlocked -.type fputs_unlocked, %function; -fputs_unlocked: -.globl fputs -.type fputs, %function; -fputs: -.weak putwc_unlocked -.type putwc_unlocked, %function; -putwc_unlocked: -.weak fputwc_unlocked -.type fputwc_unlocked, %function; -fputwc_unlocked: -.globl __fputwc_unlocked -.type __fputwc_unlocked, %function; -__fputwc_unlocked: -.globl fputwc -.type fputwc, %function; -fputwc: -.globl fputws -.type fputws, %function; -fputws: -.weak fputws_unlocked -.type fputws_unlocked, %function; -fputws_unlocked: -.globl fread -.type fread, %function; -fread: -.weak fread_unlocked -.type fread_unlocked, %function; -fread_unlocked: -.weak freopen64 -.type freopen64, %function; -freopen64: -.globl freopen -.type freopen, %function; -freopen: -.weak __isoc99_fscanf -.type __isoc99_fscanf, %function; -__isoc99_fscanf: -.globl fscanf -.type fscanf, %function; -fscanf: -.weak fseeko -.type fseeko, %function; -fseeko: -.weak fseeko64 -.type fseeko64, %function; -fseeko64: -.globl fseek -.type fseek, %function; -fseek: -.globl fsetpos -.type fsetpos, %function; -fsetpos: -.weak fsetpos64 -.type fsetpos64, %function; -fsetpos64: -.weak ftello -.type ftello, %function; -ftello: -.weak ftello64 -.type ftello64, %function; -ftello64: -.globl ftell -.type ftell, %function; -ftell: -.globl ftrylockfile -.type ftrylockfile, %function; -ftrylockfile: -.globl funlockfile -.type funlockfile, %function; -funlockfile: -.globl fwide -.type fwide, %function; -fwide: -.globl fwprintf -.type fwprintf, %function; -fwprintf: -.weak fwrite_unlocked -.type fwrite_unlocked, %function; -fwrite_unlocked: -.globl fwrite -.type fwrite, %function; -fwrite: -.globl fwscanf -.type fwscanf, %function; -fwscanf: -.weak __isoc99_fwscanf -.type __isoc99_fwscanf, %function; -__isoc99_fwscanf: -.globl getc -.type getc, %function; -getc: -.weak _IO_getc -.type _IO_getc, %function; -_IO_getc: -.weak _IO_getc_unlocked -.type _IO_getc_unlocked, %function; -_IO_getc_unlocked: -.globl getc_unlocked -.type getc_unlocked, %function; -getc_unlocked: -.weak fgetc_unlocked -.type fgetc_unlocked, %function; -fgetc_unlocked: -.globl getchar -.type getchar, %function; -getchar: -.globl getchar_unlocked -.type getchar_unlocked, %function; -getchar_unlocked: -.weak __getdelim -.type __getdelim, %function; -__getdelim: -.globl getdelim -.type getdelim, %function; -getdelim: -.globl getline -.type getline, %function; -getline: -.globl gets -.type gets, %function; -gets: -.globl getw -.type getw, %function; -getw: -.globl getwc -.type getwc, %function; -getwc: -.globl getwchar -.type getwchar, %function; -getwchar: -.weak getwchar_unlocked -.type getwchar_unlocked, %function; -getwchar_unlocked: -.globl open_memstream -.type open_memstream, %function; -open_memstream: -.globl open_wmemstream -.type open_wmemstream, %function; -open_wmemstream: -.globl pclose -.type pclose, %function; -pclose: -.globl perror -.type perror, %function; -perror: -.globl popen -.type popen, %function; -popen: -.globl printf -.type printf, %function; -printf: -.globl putc -.type putc, %function; -putc: -.weak _IO_putc -.type _IO_putc, %function; -_IO_putc: -.weak _IO_putc_unlocked -.type _IO_putc_unlocked, %function; -_IO_putc_unlocked: -.globl putc_unlocked -.type putc_unlocked, %function; -putc_unlocked: -.weak fputc_unlocked -.type fputc_unlocked, %function; -fputc_unlocked: -.globl putchar -.type putchar, %function; -putchar: -.globl putchar_unlocked -.type putchar_unlocked, %function; -putchar_unlocked: -.globl puts -.type puts, %function; -puts: -.globl putw -.type putw, %function; -putw: -.globl putwc -.type putwc, %function; -putwc: -.globl putwchar -.type putwchar, %function; -putwchar: -.weak putwchar_unlocked -.type putwchar_unlocked, %function; -putwchar_unlocked: -.globl remove -.type remove, %function; -remove: -.globl rename -.type rename, %function; -rename: -.globl rewind -.type rewind, %function; -rewind: -.weak __isoc99_scanf -.type __isoc99_scanf, %function; -__isoc99_scanf: -.globl scanf -.type scanf, %function; -scanf: -.globl setbuf -.type setbuf, %function; -setbuf: -.globl setbuffer -.type setbuffer, %function; -setbuffer: -.globl setlinebuf -.type setlinebuf, %function; -setlinebuf: -.globl setvbuf -.type setvbuf, %function; -setvbuf: -.globl snprintf -.type snprintf, %function; -snprintf: -.globl sprintf -.type sprintf, %function; -sprintf: -.weak __isoc99_sscanf -.type __isoc99_sscanf, %function; -__isoc99_sscanf: -.globl sscanf -.type sscanf, %function; -sscanf: -.globl swprintf -.type swprintf, %function; -swprintf: -.globl swscanf -.type swscanf, %function; -swscanf: -.weak __isoc99_swscanf -.type __isoc99_swscanf, %function; -__isoc99_swscanf: -.globl tempnam -.type tempnam, %function; -tempnam: -.globl tmpfile -.type tmpfile, %function; -tmpfile: -.weak tmpfile64 -.type tmpfile64, %function; -tmpfile64: -.globl tmpnam -.type tmpnam, %function; -tmpnam: -.globl ungetc -.type ungetc, %function; -ungetc: -.globl ungetwc -.type ungetwc, %function; -ungetwc: -.globl vasprintf -.type vasprintf, %function; -vasprintf: -.globl vdprintf -.type vdprintf, %function; -vdprintf: -.globl vfprintf -.type vfprintf, %function; -vfprintf: -.weak __isoc99_vfscanf -.type __isoc99_vfscanf, %function; -__isoc99_vfscanf: -.globl vfscanf -.type vfscanf, %function; -vfscanf: -.globl vfwprintf -.type vfwprintf, %function; -vfwprintf: -.globl vfwscanf -.type vfwscanf, %function; -vfwscanf: -.weak __isoc99_vfwscanf -.type __isoc99_vfwscanf, %function; -__isoc99_vfwscanf: -.globl vprintf -.type vprintf, %function; -vprintf: -.weak __isoc99_vscanf -.type __isoc99_vscanf, %function; -__isoc99_vscanf: -.globl vscanf -.type vscanf, %function; -vscanf: -.globl vsnprintf -.type vsnprintf, %function; -vsnprintf: -.globl vsprintf -.type vsprintf, %function; -vsprintf: -.globl vsscanf -.type vsscanf, %function; -vsscanf: -.weak __isoc99_vsscanf -.type __isoc99_vsscanf, %function; -__isoc99_vsscanf: -.globl vswprintf -.type vswprintf, %function; -vswprintf: -.weak __isoc99_vswscanf -.type __isoc99_vswscanf, %function; -__isoc99_vswscanf: -.globl vswscanf -.type vswscanf, %function; -vswscanf: -.globl vwprintf -.type vwprintf, %function; -vwprintf: -.globl vwscanf -.type vwscanf, %function; -vwscanf: -.weak __isoc99_vwscanf -.type __isoc99_vwscanf, %function; -__isoc99_vwscanf: -.globl wprintf -.type wprintf, %function; -wprintf: -.weak __isoc99_wscanf -.type __isoc99_wscanf, %function; -__isoc99_wscanf: -.globl wscanf -.type wscanf, %function; -wscanf: -.globl abs -.type abs, %function; -abs: -.globl atof -.type atof, %function; -atof: -.globl atoi -.type atoi, %function; -atoi: -.globl atol -.type atol, %function; -atol: -.globl atoll -.type atoll, %function; -atoll: -.globl bsearch -.type bsearch, %function; -bsearch: -.globl div -.type div, %function; -div: -.globl ecvt -.type ecvt, %function; -ecvt: -.globl fcvt -.type fcvt, %function; -fcvt: -.globl gcvt -.type gcvt, %function; -gcvt: -.globl imaxabs -.type imaxabs, %function; -imaxabs: -.globl imaxdiv -.type imaxdiv, %function; -imaxdiv: -.globl labs -.type labs, %function; -labs: -.globl ldiv -.type ldiv, %function; -ldiv: -.globl llabs -.type llabs, %function; -llabs: -.globl lldiv -.type lldiv, %function; -lldiv: -.globl qsort -.type qsort, %function; -qsort: -.weak __strtof_l -.type __strtof_l, %function; -__strtof_l: -.weak strtof_l -.type strtof_l, %function; -strtof_l: -.globl strtof -.type strtof, %function; -strtof: -.globl strtod -.type strtod, %function; -strtod: -.weak __strtod_l -.type __strtod_l, %function; -__strtod_l: -.weak strtod_l -.type strtod_l, %function; -strtod_l: -.weak strtold_l -.type strtold_l, %function; -strtold_l: -.globl strtold -.type strtold, %function; -strtold: -.weak __strtold_l -.type __strtold_l, %function; -__strtold_l: -.globl strtoull -.type strtoull, %function; -strtoull: -.weak __strtoull_internal -.type __strtoull_internal, %function; -__strtoull_internal: -.globl strtoll -.type strtoll, %function; -strtoll: -.weak __strtoll_internal -.type __strtoll_internal, %function; -__strtoll_internal: -.globl strtoul -.type strtoul, %function; -strtoul: -.weak __strtoul_internal -.type __strtoul_internal, %function; -__strtoul_internal: -.weak __strtol_internal -.type __strtol_internal, %function; -__strtol_internal: -.globl strtol -.type strtol, %function; -strtol: -.globl strtoimax -.type strtoimax, %function; -strtoimax: -.weak __strtoimax_internal -.type __strtoimax_internal, %function; -__strtoimax_internal: -.globl strtoumax -.type strtoumax, %function; -strtoumax: -.weak __strtoumax_internal -.type __strtoumax_internal, %function; -__strtoumax_internal: -.globl wcstof -.type wcstof, %function; -wcstof: -.globl wcstod -.type wcstod, %function; -wcstod: -.globl wcstold -.type wcstold, %function; -wcstold: -.globl wcstoull -.type wcstoull, %function; -wcstoull: -.globl wcstoll -.type wcstoll, %function; -wcstoll: -.globl wcstoul -.type wcstoul, %function; -wcstoul: -.globl wcstol -.type wcstol, %function; -wcstol: -.globl wcstoimax -.type wcstoimax, %function; -wcstoimax: -.globl wcstoumax -.type wcstoumax, %function; -wcstoumax: -.globl bcmp -.type bcmp, %function; -bcmp: -.globl bcopy -.type bcopy, %function; -bcopy: -.globl bzero -.type bzero, %function; -bzero: -.globl explicit_bzero -.type explicit_bzero, %function; -explicit_bzero: -.globl index -.type index, %function; -index: -.globl memccpy -.type memccpy, %function; -memccpy: -.globl memchr -.type memchr, %function; -memchr: -.globl memcmp -.type memcmp, %function; -memcmp: -.globl memcpy -.type memcpy, %function; -memcpy: -.globl memmem -.type memmem, %function; -memmem: -.globl memmove -.type memmove, %function; -memmove: -.globl mempcpy -.type mempcpy, %function; -mempcpy: -.weak memrchr -.type memrchr, %function; -memrchr: -.globl memset -.type memset, %function; -memset: -.globl rindex -.type rindex, %function; -rindex: -.weak stpcpy -.type stpcpy, %function; -stpcpy: -.weak stpncpy -.type stpncpy, %function; -stpncpy: -.globl strcasecmp -.type strcasecmp, %function; -strcasecmp: -.weak strcasecmp_l -.type strcasecmp_l, %function; -strcasecmp_l: -.globl __strcasecmp_l -.type __strcasecmp_l, %function; -__strcasecmp_l: -.globl strcasestr -.type strcasestr, %function; -strcasestr: -.globl strcat -.type strcat, %function; -strcat: -.globl strchr -.type strchr, %function; -strchr: -.weak strchrnul -.type strchrnul, %function; -strchrnul: -.globl strcmp -.type strcmp, %function; -strcmp: -.globl strcpy -.type strcpy, %function; -strcpy: -.globl strcspn -.type strcspn, %function; -strcspn: -.globl strdup -.type strdup, %function; -strdup: -.globl strerror_r -.type strerror_r, %function; -strerror_r: -.weak __xpg_strerror_r -.type __xpg_strerror_r, %function; -__xpg_strerror_r: -.globl strlcat -.type strlcat, %function; -strlcat: -.globl strlcpy -.type strlcpy, %function; -strlcpy: -.globl strlen -.type strlen, %function; -strlen: -.globl strncasecmp -.type strncasecmp, %function; -strncasecmp: -.globl __strncasecmp_l -.type __strncasecmp_l, %function; -__strncasecmp_l: -.weak strncasecmp_l -.type strncasecmp_l, %function; -strncasecmp_l: -.globl strncat -.type strncat, %function; -strncat: -.globl strncmp -.type strncmp, %function; -strncmp: -.globl strncpy -.type strncpy, %function; -strncpy: -.globl strndup -.type strndup, %function; -strndup: -.globl strnlen -.type strnlen, %function; -strnlen: -.globl strpbrk -.type strpbrk, %function; -strpbrk: -.globl strrchr -.type strrchr, %function; -strrchr: -.globl strsep -.type strsep, %function; -strsep: -.globl strsignal -.type strsignal, %function; -strsignal: -.globl strspn -.type strspn, %function; -strspn: -.globl strstr -.type strstr, %function; -strstr: -.globl strtok -.type strtok, %function; -strtok: -.globl strtok_r -.type strtok_r, %function; -strtok_r: -.globl strverscmp -.type strverscmp, %function; -strverscmp: -.globl swab -.type swab, %function; -swab: -.globl wcpcpy -.type wcpcpy, %function; -wcpcpy: -.globl wcpncpy -.type wcpncpy, %function; -wcpncpy: -.globl wcscasecmp -.type wcscasecmp, %function; -wcscasecmp: -.globl wcscasecmp_l -.type wcscasecmp_l, %function; -wcscasecmp_l: -.globl wcscat -.type wcscat, %function; -wcscat: -.globl wcschr -.type wcschr, %function; -wcschr: -.globl wcscmp -.type wcscmp, %function; -wcscmp: -.globl wcscpy -.type wcscpy, %function; -wcscpy: -.globl wcscspn -.type wcscspn, %function; -wcscspn: -.globl wcsdup -.type wcsdup, %function; -wcsdup: -.globl wcslen -.type wcslen, %function; -wcslen: -.globl wcsncasecmp -.type wcsncasecmp, %function; -wcsncasecmp: -.globl wcsncasecmp_l -.type wcsncasecmp_l, %function; -wcsncasecmp_l: -.globl wcsncat -.type wcsncat, %function; -wcsncat: -.globl wcsncmp -.type wcsncmp, %function; -wcsncmp: -.globl wcsncpy -.type wcsncpy, %function; -wcsncpy: -.globl wcsnlen -.type wcsnlen, %function; -wcsnlen: -.globl wcspbrk -.type wcspbrk, %function; -wcspbrk: -.globl wcsrchr -.type wcsrchr, %function; -wcsrchr: -.globl wcsspn -.type wcsspn, %function; -wcsspn: -.globl wcsstr -.type wcsstr, %function; -wcsstr: -.globl wcstok -.type wcstok, %function; -wcstok: -.globl wcswcs -.type wcswcs, %function; -wcswcs: -.globl wmemchr -.type wmemchr, %function; -wmemchr: -.globl wmemcmp -.type wmemcmp, %function; -wmemcmp: -.globl wmemcpy -.type wmemcpy, %function; -wmemcpy: -.globl wmemmove -.type wmemmove, %function; -wmemmove: -.globl wmemset -.type wmemset, %function; -wmemset: -.globl mkdtemp -.type mkdtemp, %function; -mkdtemp: -.globl mkostemp -.type mkostemp, %function; -mkostemp: -.weak mkostemp64 -.type mkostemp64, %function; -mkostemp64: -.weak mkostemps -.type mkostemps, %function; -mkostemps: -.weak mkostemps64 -.type mkostemps64, %function; -mkostemps64: -.globl mkstemp -.type mkstemp, %function; -mkstemp: -.weak mkstemp64 -.type mkstemp64, %function; -mkstemp64: -.globl mkstemps -.type mkstemps, %function; -mkstemps: -.weak mkstemps64 -.type mkstemps64, %function; -mkstemps64: -.globl mktemp -.type mktemp, %function; -mktemp: -.globl cfgetospeed -.type cfgetospeed, %function; -cfgetospeed: -.globl cfgetispeed -.type cfgetispeed, %function; -cfgetispeed: -.globl cfmakeraw -.type cfmakeraw, %function; -cfmakeraw: -.globl cfsetospeed -.type cfsetospeed, %function; -cfsetospeed: -.weak cfsetspeed -.type cfsetspeed, %function; -cfsetspeed: -.globl cfsetispeed -.type cfsetispeed, %function; -cfsetispeed: -.globl tcdrain -.type tcdrain, %function; -tcdrain: -.globl tcflow -.type tcflow, %function; -tcflow: -.globl tcflush -.type tcflush, %function; -tcflush: -.globl tcgetattr -.type tcgetattr, %function; -tcgetattr: -.globl tcgetsid -.type tcgetsid, %function; -tcgetsid: -.globl tcgetwinsize -.type tcgetwinsize, %function; -tcgetwinsize: -.globl tcsendbreak -.type tcsendbreak, %function; -tcsendbreak: -.globl tcsetattr -.type tcsetattr, %function; -tcsetattr: -.globl tcsetwinsize -.type tcsetwinsize, %function; -tcsetwinsize: -.globl __tls_get_addr -.type __tls_get_addr, %function; -__tls_get_addr: -.globl call_once -.type call_once, %function; -call_once: -.globl cnd_broadcast -.type cnd_broadcast, %function; -cnd_broadcast: -.globl cnd_destroy -.type cnd_destroy, %function; -cnd_destroy: -.globl cnd_init -.type cnd_init, %function; -cnd_init: -.globl cnd_signal -.type cnd_signal, %function; -cnd_signal: -.globl cnd_timedwait -.type cnd_timedwait, %function; -cnd_timedwait: -.globl cnd_wait -.type cnd_wait, %function; -cnd_wait: -.globl mtx_destroy -.type mtx_destroy, %function; -mtx_destroy: -.globl mtx_init -.type mtx_init, %function; -mtx_init: -.globl mtx_lock -.type mtx_lock, %function; -mtx_lock: -.globl mtx_timedlock -.type mtx_timedlock, %function; -mtx_timedlock: -.globl mtx_trylock -.type mtx_trylock, %function; -mtx_trylock: -.globl mtx_unlock -.type mtx_unlock, %function; -mtx_unlock: .globl pthread_atfork .type pthread_atfork, %function; pthread_atfork: @@ -4303,30 +3620,6 @@ pthread_attr_getstack: .globl pthread_attr_getstacksize .type pthread_attr_getstacksize, %function; pthread_attr_getstacksize: -.globl pthread_barrierattr_getpshared -.type pthread_barrierattr_getpshared, %function; -pthread_barrierattr_getpshared: -.globl pthread_condattr_getclock -.type pthread_condattr_getclock, %function; -pthread_condattr_getclock: -.globl pthread_condattr_getpshared -.type pthread_condattr_getpshared, %function; -pthread_condattr_getpshared: -.globl pthread_mutexattr_getprotocol -.type pthread_mutexattr_getprotocol, %function; -pthread_mutexattr_getprotocol: -.globl pthread_mutexattr_getpshared -.type pthread_mutexattr_getpshared, %function; -pthread_mutexattr_getpshared: -.globl pthread_mutexattr_getrobust -.type pthread_mutexattr_getrobust, %function; -pthread_mutexattr_getrobust: -.globl pthread_mutexattr_gettype -.type pthread_mutexattr_gettype, %function; -pthread_mutexattr_gettype: -.globl pthread_rwlockattr_getpshared -.type pthread_rwlockattr_getpshared, %function; -pthread_rwlockattr_getpshared: .globl pthread_attr_init .type pthread_attr_init, %function; pthread_attr_init: @@ -4366,6 +3659,9 @@ pthread_barrier_wait: .globl pthread_barrierattr_destroy .type pthread_barrierattr_destroy, %function; pthread_barrierattr_destroy: +.globl pthread_barrierattr_getpshared +.type pthread_barrierattr_getpshared, %function; +pthread_barrierattr_getpshared: .globl pthread_barrierattr_init .type pthread_barrierattr_init, %function; pthread_barrierattr_init: @@ -4375,12 +3671,6 @@ pthread_barrierattr_setpshared: .globl pthread_cancel .type pthread_cancel, %function; pthread_cancel: -.globl _pthread_cleanup_push -.type _pthread_cleanup_push, %function; -_pthread_cleanup_push: -.globl _pthread_cleanup_pop -.type _pthread_cleanup_pop, %function; -_pthread_cleanup_pop: .globl pthread_cond_broadcast .type pthread_cond_broadcast, %function; pthread_cond_broadcast: @@ -4402,6 +3692,12 @@ pthread_cond_wait: .globl pthread_condattr_destroy .type pthread_condattr_destroy, %function; pthread_condattr_destroy: +.globl pthread_condattr_getclock +.type pthread_condattr_getclock, %function; +pthread_condattr_getclock: +.globl pthread_condattr_getpshared +.type pthread_condattr_getpshared, %function; +pthread_condattr_getpshared: .globl pthread_condattr_init .type pthread_condattr_init, %function; pthread_condattr_init: @@ -4411,24 +3707,24 @@ pthread_condattr_setclock: .globl pthread_condattr_setpshared .type pthread_condattr_setpshared, %function; pthread_condattr_setpshared: -.weak pthread_exit -.type pthread_exit, %function; -pthread_exit: .weak pthread_create .type pthread_create, %function; pthread_create: .weak pthread_detach .type pthread_detach, %function; pthread_detach: -.weak thrd_detach -.type thrd_detach, %function; -thrd_detach: .weak pthread_equal .type pthread_equal, %function; pthread_equal: -.weak thrd_equal -.type thrd_equal, %function; -thrd_equal: +.weak pthread_exit +.type pthread_exit, %function; +pthread_exit: +.globl pthread_getaffinity_np +.type pthread_getaffinity_np, %function; +pthread_getaffinity_np: +.globl pthread_getattr_default_np +.type pthread_getattr_default_np, %function; +pthread_getattr_default_np: .globl pthread_getattr_np .type pthread_getattr_np, %function; pthread_getattr_np: @@ -4438,24 +3734,18 @@ pthread_getconcurrency: .globl pthread_getcpuclockid .type pthread_getcpuclockid, %function; pthread_getcpuclockid: +.globl pthread_getname_np +.type pthread_getname_np, %function; +pthread_getname_np: .globl pthread_getschedparam .type pthread_getschedparam, %function; pthread_getschedparam: -.weak tss_get -.type tss_get, %function; -tss_get: .weak pthread_getspecific .type pthread_getspecific, %function; pthread_getspecific: .weak pthread_join .type pthread_join, %function; pthread_join: -WEAK64 pthread_timedjoin_np -.type pthread_timedjoin_np, %function; -pthread_timedjoin_np: -.weak pthread_tryjoin_np -.type pthread_tryjoin_np, %function; -pthread_tryjoin_np: .weak pthread_key_create .type pthread_key_create, %function; pthread_key_create: @@ -4495,6 +3785,18 @@ pthread_mutex_unlock: .globl pthread_mutexattr_destroy .type pthread_mutexattr_destroy, %function; pthread_mutexattr_destroy: +.globl pthread_mutexattr_getprotocol +.type pthread_mutexattr_getprotocol, %function; +pthread_mutexattr_getprotocol: +.globl pthread_mutexattr_getpshared +.type pthread_mutexattr_getpshared, %function; +pthread_mutexattr_getpshared: +.globl pthread_mutexattr_getrobust +.type pthread_mutexattr_getrobust, %function; +pthread_mutexattr_getrobust: +.globl pthread_mutexattr_gettype +.type pthread_mutexattr_gettype, %function; +pthread_mutexattr_gettype: .globl pthread_mutexattr_init .type pthread_mutexattr_init, %function; pthread_mutexattr_init: @@ -4543,6 +3845,9 @@ pthread_rwlock_wrlock: .globl pthread_rwlockattr_destroy .type pthread_rwlockattr_destroy, %function; pthread_rwlockattr_destroy: +.globl pthread_rwlockattr_getpshared +.type pthread_rwlockattr_getpshared, %function; +pthread_rwlockattr_getpshared: .globl pthread_rwlockattr_init .type pthread_rwlockattr_init, %function; pthread_rwlockattr_init: @@ -4552,15 +3857,12 @@ pthread_rwlockattr_setpshared: .weak pthread_self .type pthread_self, %function; pthread_self: -.weak thrd_current -.type thrd_current, %function; -thrd_current: +.globl pthread_setaffinity_np +.type pthread_setaffinity_np, %function; +pthread_setaffinity_np: .globl pthread_setattr_default_np .type pthread_setattr_default_np, %function; pthread_setattr_default_np: -.globl pthread_getattr_default_np -.type pthread_getattr_default_np, %function; -pthread_getattr_default_np: .weak pthread_setcancelstate .type pthread_setcancelstate, %function; pthread_setcancelstate: @@ -4603,330 +3905,123 @@ pthread_spin_unlock: .weak pthread_testcancel .type pthread_testcancel, %function; pthread_testcancel: -.globl sem_destroy -.type sem_destroy, %function; -sem_destroy: -.globl sem_getvalue -.type sem_getvalue, %function; -sem_getvalue: -.globl sem_init -.type sem_init, %function; -sem_init: -.globl sem_open -.type sem_open, %function; -sem_open: -.globl sem_close -.type sem_close, %function; -sem_close: -.globl sem_post -.type sem_post, %function; -sem_post: -.globl sem_timedwait -.type sem_timedwait, %function; -sem_timedwait: -.globl sem_trywait -.type sem_trywait, %function; -sem_trywait: -.globl sem_unlink -.type sem_unlink, %function; -sem_unlink: -.globl sem_wait -.type sem_wait, %function; -sem_wait: -.globl thrd_create -.type thrd_create, %function; -thrd_create: -.globl thrd_exit -.type thrd_exit, %function; -thrd_exit: -.globl thrd_join -.type thrd_join, %function; -thrd_join: -.globl thrd_sleep -.type thrd_sleep, %function; -thrd_sleep: -.globl thrd_yield -.type thrd_yield, %function; -thrd_yield: -.globl tss_create -.type tss_create, %function; -tss_create: -.globl tss_delete -.type tss_delete, %function; -tss_delete: -.globl tss_set -.type tss_set, %function; -tss_set: -.weak tzset -.type tzset, %function; -tzset: -.globl asctime -.type asctime, %function; -asctime: -.weak asctime_r -.type asctime_r, %function; -asctime_r: -.globl clock -.type clock, %function; -clock: -.globl clock_getcpuclockid -.type clock_getcpuclockid, %function; -clock_getcpuclockid: -.globl clock_getres -.type clock_getres, %function; -clock_getres: -WEAK64 clock_gettime -.type clock_gettime, %function; -clock_gettime: -WEAK64 clock_nanosleep -.type clock_nanosleep, %function; -clock_nanosleep: -.globl clock_settime -.type clock_settime, %function; -clock_settime: -.globl ctime -.type ctime, %function; -ctime: -.globl ctime_r -.type ctime_r, %function; -ctime_r: -.globl difftime -.type difftime, %function; -difftime: -.globl ftime -.type ftime, %function; -ftime: -.globl getdate -.type getdate, %function; -getdate: -.globl gettimeofday -.type gettimeofday, %function; -gettimeofday: -.globl gmtime -.type gmtime, %function; -gmtime: -WEAK64 gmtime_r -.type gmtime_r, %function; -gmtime_r: -.globl localtime -.type localtime, %function; -localtime: -WEAK64 localtime_r -.type localtime_r, %function; -localtime_r: -.globl mktime -.type mktime, %function; -mktime: -.globl nanosleep -.type nanosleep, %function; -nanosleep: -.weak strftime_l -.type strftime_l, %function; -strftime_l: -.globl strftime -.type strftime, %function; -strftime: -.globl strptime -.type strptime, %function; -strptime: -.globl time -.type time, %function; -time: -.globl timegm -.type timegm, %function; -timegm: -.globl timer_create -.type timer_create, %function; -timer_create: -.globl timer_delete -.type timer_delete, %function; -timer_delete: -.globl timer_getoverrun -.type timer_getoverrun, %function; -timer_getoverrun: -.globl timer_gettime -.type timer_gettime, %function; -timer_gettime: -.globl timer_settime -.type timer_settime, %function; -timer_settime: -.globl times -.type times, %function; -times: -.globl timespec_get -.type timespec_get, %function; -timespec_get: -.globl utime -.type utime, %function; -utime: -.globl __wcsftime_l -.type __wcsftime_l, %function; -__wcsftime_l: -.weak wcsftime_l -.type wcsftime_l, %function; -wcsftime_l: -.globl wcsftime -.type wcsftime, %function; -wcsftime: -.globl _exit -.type _exit, %function; -_exit: -.globl access -.type access, %function; -access: -.globl acct -.type acct, %function; -acct: -.globl alarm -.type alarm, %function; -alarm: -.globl chdir -.type chdir, %function; -chdir: -.globl chown -.type chown, %function; -chown: -.globl close -.type close, %function; -close: -.globl ctermid -.type ctermid, %function; -ctermid: -.globl dup -.type dup, %function; -dup: -.globl dup2 -.type dup2, %function; -dup2: -.weak dup3 -.type dup3, %function; -dup3: -.globl faccessat -.type faccessat, %function; -faccessat: -.globl fchdir -.type fchdir, %function; -fchdir: -.globl fchown -.type fchown, %function; -fchown: -.globl fchownat -.type fchownat, %function; -fchownat: -.globl fdatasync -.type fdatasync, %function; -fdatasync: -.globl fsync -.type fsync, %function; -fsync: -.weak ftruncate64 -.type ftruncate64, %function; -ftruncate64: -.globl ftruncate -.type ftruncate, %function; -ftruncate: -.globl getcwd -.type getcwd, %function; -getcwd: -.globl getegid -.type getegid, %function; -getegid: -.globl geteuid -.type geteuid, %function; -geteuid: -.globl getgid -.type getgid, %function; -getgid: -.globl getgroups -.type getgroups, %function; -getgroups: -.globl gethostname -.type gethostname, %function; -gethostname: -.globl getlogin -.type getlogin, %function; -getlogin: -.globl getlogin_r -.type getlogin_r, %function; -getlogin_r: -.globl getpgid -.type getpgid, %function; -getpgid: -.globl getpgrp -.type getpgrp, %function; -getpgrp: -.globl getpid -.type getpid, %function; -getpid: -.globl getppid -.type getppid, %function; -getppid: -.globl getsid -.type getsid, %function; -getsid: -.globl getuid -.type getuid, %function; -getuid: -.globl isatty -.type isatty, %function; -isatty: -.globl lchown -.type lchown, %function; -lchown: -.globl link -.type link, %function; -link: -.globl linkat -.type linkat, %function; -linkat: -.weak lseek -.type lseek, %function; -lseek: -.weak lseek64 -.type lseek64, %function; -lseek64: -.globl nice -.type nice, %function; -nice: -.globl pause -.type pause, %function; -pause: -.globl pipe -.type pipe, %function; -pipe: -.globl pipe2 -.type pipe2, %function; -pipe2: -.globl posix_close -.type posix_close, %function; -posix_close: -.weak pread64 -.type pread64, %function; -pread64: -.globl pread -.type pread, %function; -pread: -.globl preadv -.type preadv, %function; -preadv: -.weak preadv64 -.type preadv64, %function; -preadv64: +WEAK64 pthread_timedjoin_np +.type pthread_timedjoin_np, %function; +pthread_timedjoin_np: +.weak pthread_tryjoin_np +.type pthread_tryjoin_np, %function; +pthread_tryjoin_np: +.globl ptrace +.type ptrace, %function; +ptrace: +.globl ptsname +.type ptsname, %function; +ptsname: +.weak ptsname_r +.type ptsname_r, %function; +ptsname_r: +.globl putc +.type putc, %function; +putc: +.globl putc_unlocked +.type putc_unlocked, %function; +putc_unlocked: +.globl putchar +.type putchar, %function; +putchar: +.globl putchar_unlocked +.type putchar_unlocked, %function; +putchar_unlocked: +.globl putenv +.type putenv, %function; +putenv: +.globl putgrent +.type putgrent, %function; +putgrent: +.globl putpwent +.type putpwent, %function; +putpwent: +.globl puts +.type puts, %function; +puts: +.globl putspent +.type putspent, %function; +putspent: +.weak pututline +.type pututline, %function; +pututline: +.globl pututxline +.type pututxline, %function; +pututxline: +.globl putw +.type putw, %function; +putw: +.globl putwc +.type putwc, %function; +putwc: +.weak putwc_unlocked +.type putwc_unlocked, %function; +putwc_unlocked: +.globl putwchar +.type putwchar, %function; +putwchar: +.weak putwchar_unlocked +.type putwchar_unlocked, %function; +putwchar_unlocked: .globl pwrite .type pwrite, %function; pwrite: .weak pwrite64 .type pwrite64, %function; pwrite64: -.weak pwritev64 -.type pwritev64, %function; -pwritev64: .globl pwritev .type pwritev, %function; pwritev: +.weak pwritev64 +.type pwritev64, %function; +pwritev64: +.globl qsort +.type qsort, %function; +qsort: +.weak qsort_r +.type qsort_r, %function; +qsort_r: +.globl quick_exit +.type quick_exit, %function; +quick_exit: +.globl quotactl +.type quotactl, %function; +quotactl: +.globl raise +.type raise, %function; +raise: +.globl rand +.type rand, %function; +rand: +.globl rand_r +.type rand_r, %function; +rand_r: +.globl random +.type random, %function; +random: .globl read .type read, %function; read: +.globl readahead +.type readahead, %function; +readahead: +.globl readdir +.type readdir, %function; +readdir: +.weak readdir64 +.type readdir64, %function; +readdir64: +.weak readdir64_r +.type readdir64_r, %function; +readdir64_r: +.globl readdir_r +.type readdir_r, %function; +readdir_r: .globl readlink .type readlink, %function; readlink: @@ -4936,27 +4031,353 @@ readlinkat: .globl readv .type readv, %function; readv: +.globl realloc +.type realloc, %function; +realloc: +.globl reallocarray +.type reallocarray, %function; +reallocarray: +.globl realpath +.type realpath, %function; +realpath: +.globl reboot +.type reboot, %function; +reboot: +.globl recv +.type recv, %function; +recv: +.globl recvfrom +.type recvfrom, %function; +recvfrom: +.globl recvmmsg +.type recvmmsg, %function; +recvmmsg: +.globl recvmsg +.type recvmsg, %function; +recvmsg: +.globl regcomp +.type regcomp, %function; +regcomp: +.globl regerror +.type regerror, %function; +regerror: +.globl regexec +.type regexec, %function; +regexec: +.globl regfree +.type regfree, %function; +regfree: +.globl remainder +.type remainder, %function; +remainder: +.globl remainderf +.type remainderf, %function; +remainderf: +.globl remainderl +.type remainderl, %function; +remainderl: +.globl remap_file_pages +.type remap_file_pages, %function; +remap_file_pages: +.globl remove +.type remove, %function; +remove: +.globl removexattr +.type removexattr, %function; +removexattr: +.globl remque +.type remque, %function; +remque: +.globl remquo +.type remquo, %function; +remquo: +.globl remquof +.type remquof, %function; +remquof: +.globl remquol +.type remquol, %function; +remquol: +.globl rename +.type rename, %function; +rename: .globl renameat .type renameat, %function; renameat: +.globl res_init +.type res_init, %function; +res_init: +.weak res_mkquery +.type res_mkquery, %function; +res_mkquery: +.globl res_query +.type res_query, %function; +res_query: +.globl res_querydomain +.type res_querydomain, %function; +res_querydomain: +.weak res_search +.type res_search, %function; +res_search: +.weak res_send +.type res_send, %function; +res_send: +.globl rewind +.type rewind, %function; +rewind: +.globl rewinddir +.type rewinddir, %function; +rewinddir: +.globl rindex +.type rindex, %function; +rindex: +.globl rint +.type rint, %function; +rint: +.globl rintf +.type rintf, %function; +rintf: +.globl rintl +.type rintl, %function; +rintl: +#if !defined(ARCH_mips) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) +.weak riscv_flush_icache +.type riscv_flush_icache, %function; +riscv_flush_icache: +#endif .globl rmdir .type rmdir, %function; rmdir: +.globl round +.type round, %function; +round: +.globl roundf +.type roundf, %function; +roundf: +.globl roundl +.type roundl, %function; +roundl: +.globl sbrk +.type sbrk, %function; +sbrk: +.globl scalb +.type scalb, %function; +scalb: +.globl scalbf +.type scalbf, %function; +scalbf: +.globl scalbln +.type scalbln, %function; +scalbln: +.globl scalblnf +.type scalblnf, %function; +scalblnf: +.globl scalblnl +.type scalblnl, %function; +scalblnl: +.globl scalbn +.type scalbn, %function; +scalbn: +.globl scalbnf +.type scalbnf, %function; +scalbnf: +.globl scalbnl +.type scalbnl, %function; +scalbnl: +.globl scandir +.type scandir, %function; +scandir: +.weak scandir64 +.type scandir64, %function; +scandir64: +.globl scanf +.type scanf, %function; +scanf: +.globl sched_get_priority_max +.type sched_get_priority_max, %function; +sched_get_priority_max: +.globl sched_get_priority_min +.type sched_get_priority_min, %function; +sched_get_priority_min: +.globl sched_getaffinity +.type sched_getaffinity, %function; +sched_getaffinity: +.globl sched_getcpu +.type sched_getcpu, %function; +sched_getcpu: +.globl sched_getparam +.type sched_getparam, %function; +sched_getparam: +.globl sched_getscheduler +.type sched_getscheduler, %function; +sched_getscheduler: +.globl sched_rr_get_interval +.type sched_rr_get_interval, %function; +sched_rr_get_interval: +.globl sched_setaffinity +.type sched_setaffinity, %function; +sched_setaffinity: +.globl sched_setparam +.type sched_setparam, %function; +sched_setparam: +.globl sched_setscheduler +.type sched_setscheduler, %function; +sched_setscheduler: +.globl sched_yield +.type sched_yield, %function; +sched_yield: +.globl secure_getenv +.type secure_getenv, %function; +secure_getenv: +.globl seed48 +.type seed48, %function; +seed48: +.globl seekdir +.type seekdir, %function; +seekdir: +.globl select +.type select, %function; +select: +.globl sem_close +.type sem_close, %function; +sem_close: +.globl sem_destroy +.type sem_destroy, %function; +sem_destroy: +.globl sem_getvalue +.type sem_getvalue, %function; +sem_getvalue: +.globl sem_init +.type sem_init, %function; +sem_init: +.globl sem_open +.type sem_open, %function; +sem_open: +.globl sem_post +.type sem_post, %function; +sem_post: +.globl sem_timedwait +.type sem_timedwait, %function; +sem_timedwait: +.globl sem_trywait +.type sem_trywait, %function; +sem_trywait: +.globl sem_unlink +.type sem_unlink, %function; +sem_unlink: +.globl sem_wait +.type sem_wait, %function; +sem_wait: +.globl semctl +.type semctl, %function; +semctl: +.globl semget +.type semget, %function; +semget: +.globl semop +.type semop, %function; +semop: +.globl semtimedop +.type semtimedop, %function; +semtimedop: +.globl send +.type send, %function; +send: +.globl sendfile +.type sendfile, %function; +sendfile: +.weak sendfile64 +.type sendfile64, %function; +sendfile64: +.globl sendmmsg +.type sendmmsg, %function; +sendmmsg: +.globl sendmsg +.type sendmsg, %function; +sendmsg: +.globl sendto +.type sendto, %function; +sendto: +.globl setbuf +.type setbuf, %function; +setbuf: +.globl setbuffer +.type setbuffer, %function; +setbuffer: +.globl setdomainname +.type setdomainname, %function; +setdomainname: .globl setegid .type setegid, %function; setegid: +.globl setenv +.type setenv, %function; +setenv: .globl seteuid .type seteuid, %function; seteuid: +.globl setfsgid +.type setfsgid, %function; +setfsgid: +.globl setfsuid +.type setfsuid, %function; +setfsuid: .globl setgid .type setgid, %function; setgid: +.globl setgrent +.type setgrent, %function; +setgrent: +.globl setgroups +.type setgroups, %function; +setgroups: +.globl sethostent +.type sethostent, %function; +sethostent: +.globl sethostname +.type sethostname, %function; +sethostname: +.globl setitimer +.type setitimer, %function; +setitimer: +.globl setjmp +.type setjmp, %function; +setjmp: +.globl setkey +.type setkey, %function; +setkey: +.globl setlinebuf +.type setlinebuf, %function; +setlinebuf: +.globl setlocale +.type setlocale, %function; +setlocale: +.globl setlogmask +.type setlogmask, %function; +setlogmask: +.globl setmntent +.type setmntent, %function; +setmntent: +.weak setnetent +.type setnetent, %function; +setnetent: +.globl setns +.type setns, %function; +setns: .globl setpgid .type setpgid, %function; setpgid: .globl setpgrp .type setpgrp, %function; setpgrp: +.globl setpriority +.type setpriority, %function; +setpriority: +.globl setprotoent +.type setprotoent, %function; +setprotoent: +.globl setpwent +.type setpwent, %function; +setpwent: .globl setregid .type setregid, %function; setregid: @@ -4969,15 +4390,426 @@ setresuid: .globl setreuid .type setreuid, %function; setreuid: +.globl setrlimit +.type setrlimit, %function; +setrlimit: +.weak setrlimit64 +.type setrlimit64, %function; +setrlimit64: +.globl setservent +.type setservent, %function; +setservent: .globl setsid .type setsid, %function; setsid: +.globl setsockopt +.type setsockopt, %function; +setsockopt: +.globl setspent +.type setspent, %function; +setspent: +.globl setstate +.type setstate, %function; +setstate: +.globl settimeofday +.type settimeofday, %function; +settimeofday: .globl setuid .type setuid, %function; setuid: +.globl setusershell +.type setusershell, %function; +setusershell: +.weak setutent +.type setutent, %function; +setutent: +.globl setutxent +.type setutxent, %function; +setutxent: +.globl setvbuf +.type setvbuf, %function; +setvbuf: +.globl setxattr +.type setxattr, %function; +setxattr: +.globl shm_open +.type shm_open, %function; +shm_open: +.globl shm_unlink +.type shm_unlink, %function; +shm_unlink: +.globl shmat +.type shmat, %function; +shmat: +.globl shmctl +.type shmctl, %function; +shmctl: +.globl shmdt +.type shmdt, %function; +shmdt: +.globl shmget +.type shmget, %function; +shmget: +.globl shutdown +.type shutdown, %function; +shutdown: +.weak sigaction +.type sigaction, %function; +sigaction: +.globl sigaddset +.type sigaddset, %function; +sigaddset: +.globl sigaltstack +.type sigaltstack, %function; +sigaltstack: +.globl sigandset +.type sigandset, %function; +sigandset: +.globl sigdelset +.type sigdelset, %function; +sigdelset: +.globl sigemptyset +.type sigemptyset, %function; +sigemptyset: +.globl sigfillset +.type sigfillset, %function; +sigfillset: +.globl sighold +.type sighold, %function; +sighold: +.globl sigignore +.type sigignore, %function; +sigignore: +.globl siginterrupt +.type siginterrupt, %function; +siginterrupt: +.globl sigisemptyset +.type sigisemptyset, %function; +sigisemptyset: +.globl sigismember +.type sigismember, %function; +sigismember: +.globl siglongjmp +.type siglongjmp, %function; +siglongjmp: +.globl signal +.type signal, %function; +signal: +.globl signalfd +.type signalfd, %function; +signalfd: +.globl significand +.type significand, %function; +significand: +.globl significandf +.type significandf, %function; +significandf: +.globl sigorset +.type sigorset, %function; +sigorset: +.globl sigpause +.type sigpause, %function; +sigpause: +.globl sigpending +.type sigpending, %function; +sigpending: +.globl sigprocmask +.type sigprocmask, %function; +sigprocmask: +.globl sigqueue +.type sigqueue, %function; +sigqueue: +.globl sigrelse +.type sigrelse, %function; +sigrelse: +.globl sigset +.type sigset, %function; +sigset: +.globl sigsetjmp +.type sigsetjmp, %function; +sigsetjmp: +.globl sigsuspend +.type sigsuspend, %function; +sigsuspend: +.globl sigtimedwait +.type sigtimedwait, %function; +sigtimedwait: +.globl sigwait +.type sigwait, %function; +sigwait: +.globl sigwaitinfo +.type sigwaitinfo, %function; +sigwaitinfo: +.globl sin +.type sin, %function; +sin: +.globl sincos +.type sincos, %function; +sincos: +.globl sincosf +.type sincosf, %function; +sincosf: +.globl sincosl +.type sincosl, %function; +sincosl: +.globl sinf +.type sinf, %function; +sinf: +.globl sinh +.type sinh, %function; +sinh: +.globl sinhf +.type sinhf, %function; +sinhf: +.globl sinhl +.type sinhl, %function; +sinhl: +.globl sinl +.type sinl, %function; +sinl: .globl sleep .type sleep, %function; sleep: +.globl snprintf +.type snprintf, %function; +snprintf: +.globl sockatmark +.type sockatmark, %function; +sockatmark: +.globl socket +.type socket, %function; +socket: +.globl socketpair +.type socketpair, %function; +socketpair: +.globl splice +.type splice, %function; +splice: +.globl sprintf +.type sprintf, %function; +sprintf: +.globl sqrt +.type sqrt, %function; +sqrt: +.globl sqrtf +.type sqrtf, %function; +sqrtf: +.globl sqrtl +.type sqrtl, %function; +sqrtl: +.globl srand +.type srand, %function; +srand: +.globl srand48 +.type srand48, %function; +srand48: +.globl srandom +.type srandom, %function; +srandom: +.globl sscanf +.type sscanf, %function; +sscanf: +.globl stat +.type stat, %function; +stat: +.weak stat64 +.type stat64, %function; +stat64: +.weak statfs +.type statfs, %function; +statfs: +.weak statfs64 +.type statfs64, %function; +statfs64: +.globl statvfs +.type statvfs, %function; +statvfs: +.weak statvfs64 +.type statvfs64, %function; +statvfs64: +.globl stime +.type stime, %function; +stime: +.weak stpcpy +.type stpcpy, %function; +stpcpy: +.weak stpncpy +.type stpncpy, %function; +stpncpy: +.globl strcasecmp +.type strcasecmp, %function; +strcasecmp: +.weak strcasecmp_l +.type strcasecmp_l, %function; +strcasecmp_l: +.globl strcasestr +.type strcasestr, %function; +strcasestr: +.globl strcat +.type strcat, %function; +strcat: +.globl strchr +.type strchr, %function; +strchr: +.weak strchrnul +.type strchrnul, %function; +strchrnul: +.globl strcmp +.type strcmp, %function; +strcmp: +.globl strcoll +.type strcoll, %function; +strcoll: +.weak strcoll_l +.type strcoll_l, %function; +strcoll_l: +.globl strcpy +.type strcpy, %function; +strcpy: +.globl strcspn +.type strcspn, %function; +strcspn: +.globl strdup +.type strdup, %function; +strdup: +.globl strerror +.type strerror, %function; +strerror: +.weak strerror_l +.type strerror_l, %function; +strerror_l: +.globl strerror_r +.type strerror_r, %function; +strerror_r: +.globl strfmon +.type strfmon, %function; +strfmon: +.globl strfmon_l +.type strfmon_l, %function; +strfmon_l: +.globl strftime +.type strftime, %function; +strftime: +.weak strftime_l +.type strftime_l, %function; +strftime_l: +.globl strlcat +.type strlcat, %function; +strlcat: +.globl strlcpy +.type strlcpy, %function; +strlcpy: +.globl strlen +.type strlen, %function; +strlen: +.globl strncasecmp +.type strncasecmp, %function; +strncasecmp: +.weak strncasecmp_l +.type strncasecmp_l, %function; +strncasecmp_l: +.globl strncat +.type strncat, %function; +strncat: +.globl strncmp +.type strncmp, %function; +strncmp: +.globl strncpy +.type strncpy, %function; +strncpy: +.globl strndup +.type strndup, %function; +strndup: +.globl strnlen +.type strnlen, %function; +strnlen: +.globl strpbrk +.type strpbrk, %function; +strpbrk: +.globl strptime +.type strptime, %function; +strptime: +.globl strrchr +.type strrchr, %function; +strrchr: +.globl strsep +.type strsep, %function; +strsep: +.globl strsignal +.type strsignal, %function; +strsignal: +.globl strspn +.type strspn, %function; +strspn: +.globl strstr +.type strstr, %function; +strstr: +.globl strtod +.type strtod, %function; +strtod: +.globl strtod_l +.type strtod_l, %function; +strtod_l: +.globl strtof +.type strtof, %function; +strtof: +.globl strtof_l +.type strtof_l, %function; +strtof_l: +.globl strtoimax +.type strtoimax, %function; +strtoimax: +.globl strtok +.type strtok, %function; +strtok: +.globl strtok_r +.type strtok_r, %function; +strtok_r: +.globl strtol +.type strtol, %function; +strtol: +.globl strtold +.type strtold, %function; +strtold: +.globl strtold_l +.type strtold_l, %function; +strtold_l: +.globl strtoll +.type strtoll, %function; +strtoll: +.globl strtoul +.type strtoul, %function; +strtoul: +.globl strtoull +.type strtoull, %function; +strtoull: +.globl strtoumax +.type strtoumax, %function; +strtoumax: +.globl strverscmp +.type strverscmp, %function; +strverscmp: +.globl strxfrm +.type strxfrm, %function; +strxfrm: +.weak strxfrm_l +.type strxfrm_l, %function; +strxfrm_l: +.globl swab +.type swab, %function; +swab: +.globl swapoff +.type swapoff, %function; +swapoff: +.globl swapon +.type swapon, %function; +swapon: +.globl swprintf +.type swprintf, %function; +swprintf: +.globl swscanf +.type swscanf, %function; +swscanf: .globl symlink .type symlink, %function; symlink: @@ -4987,419 +4819,618 @@ symlinkat: .globl sync .type sync, %function; sync: +.globl sync_file_range +.type sync_file_range, %function; +sync_file_range: +.globl syncfs +.type syncfs, %function; +syncfs: +.globl syscall +.type syscall, %function; +syscall: +.globl sysconf +.type sysconf, %function; +sysconf: +.weak sysinfo +.type sysinfo, %function; +sysinfo: +.globl syslog +.type syslog, %function; +syslog: +.globl system +.type system, %function; +system: +.globl tan +.type tan, %function; +tan: +.globl tanf +.type tanf, %function; +tanf: +.globl tanh +.type tanh, %function; +tanh: +.globl tanhf +.type tanhf, %function; +tanhf: +.globl tanhl +.type tanhl, %function; +tanhl: +.globl tanl +.type tanl, %function; +tanl: +.globl tcdrain +.type tcdrain, %function; +tcdrain: +.globl tcflow +.type tcflow, %function; +tcflow: +.globl tcflush +.type tcflush, %function; +tcflush: +.globl tcgetattr +.type tcgetattr, %function; +tcgetattr: .globl tcgetpgrp .type tcgetpgrp, %function; tcgetpgrp: +.globl tcgetsid +.type tcgetsid, %function; +tcgetsid: +.globl tcgetwinsize +.type tcgetwinsize, %function; +tcgetwinsize: +.globl tcsendbreak +.type tcsendbreak, %function; +tcsendbreak: +.globl tcsetattr +.type tcsetattr, %function; +tcsetattr: .globl tcsetpgrp .type tcsetpgrp, %function; tcsetpgrp: -.weak truncate64 -.type truncate64, %function; -truncate64: +.globl tcsetwinsize +.type tcsetwinsize, %function; +tcsetwinsize: +.globl tdelete +.type tdelete, %function; +tdelete: +.globl tdestroy +.type tdestroy, %function; +tdestroy: +.globl tee +.type tee, %function; +tee: +.globl telldir +.type telldir, %function; +telldir: +.globl tempnam +.type tempnam, %function; +tempnam: +.globl textdomain +.type textdomain, %function; +textdomain: +.globl tfind +.type tfind, %function; +tfind: +.globl tgamma +.type tgamma, %function; +tgamma: +.globl tgammaf +.type tgammaf, %function; +tgammaf: +.globl tgammal +.type tgammal, %function; +tgammal: +.globl thrd_create +.type thrd_create, %function; +thrd_create: +.weak thrd_current +.type thrd_current, %function; +thrd_current: +.weak thrd_detach +.type thrd_detach, %function; +thrd_detach: +.weak thrd_equal +.type thrd_equal, %function; +thrd_equal: +.globl thrd_exit +.type thrd_exit, %function; +thrd_exit: +.globl thrd_join +.type thrd_join, %function; +thrd_join: +.globl thrd_sleep +.type thrd_sleep, %function; +thrd_sleep: +.globl thrd_yield +.type thrd_yield, %function; +thrd_yield: +.globl time +.type time, %function; +time: +.globl timegm +.type timegm, %function; +timegm: +.globl timer_create +.type timer_create, %function; +timer_create: +.globl timer_delete +.type timer_delete, %function; +timer_delete: +.globl timer_getoverrun +.type timer_getoverrun, %function; +timer_getoverrun: +.globl timer_gettime +.type timer_gettime, %function; +timer_gettime: +.globl timer_settime +.type timer_settime, %function; +timer_settime: +.globl timerfd_create +.type timerfd_create, %function; +timerfd_create: +.globl timerfd_gettime +.type timerfd_gettime, %function; +timerfd_gettime: +.globl timerfd_settime +.type timerfd_settime, %function; +timerfd_settime: +.globl times +.type times, %function; +times: +.globl timespec_get +.type timespec_get, %function; +timespec_get: +.globl tmpfile +.type tmpfile, %function; +tmpfile: +.weak tmpfile64 +.type tmpfile64, %function; +tmpfile64: +.globl tmpnam +.type tmpnam, %function; +tmpnam: +.globl toascii +.type toascii, %function; +toascii: +.globl tolower +.type tolower, %function; +tolower: +.weak tolower_l +.type tolower_l, %function; +tolower_l: +.globl toupper +.type toupper, %function; +toupper: +.weak toupper_l +.type toupper_l, %function; +toupper_l: +.globl towctrans +.type towctrans, %function; +towctrans: +.weak towctrans_l +.type towctrans_l, %function; +towctrans_l: +.globl towlower +.type towlower, %function; +towlower: +.weak towlower_l +.type towlower_l, %function; +towlower_l: +.globl towupper +.type towupper, %function; +towupper: +.weak towupper_l +.type towupper_l, %function; +towupper_l: +.globl trunc +.type trunc, %function; +trunc: .globl truncate .type truncate, %function; truncate: +.weak truncate64 +.type truncate64, %function; +truncate64: +.globl truncf +.type truncf, %function; +truncf: +.globl truncl +.type truncl, %function; +truncl: +.globl tsearch +.type tsearch, %function; +tsearch: +.globl tss_create +.type tss_create, %function; +tss_create: +.globl tss_delete +.type tss_delete, %function; +tss_delete: +.weak tss_get +.type tss_get, %function; +tss_get: +.globl tss_set +.type tss_set, %function; +tss_set: .globl ttyname .type ttyname, %function; ttyname: .globl ttyname_r .type ttyname_r, %function; ttyname_r: +.globl twalk +.type twalk, %function; +twalk: +.weak tzset +.type tzset, %function; +tzset: .globl ualarm .type ualarm, %function; ualarm: +.globl ulckpwdf +.type ulckpwdf, %function; +ulckpwdf: +.globl ulimit +.type ulimit, %function; +ulimit: +.globl umask +.type umask, %function; +umask: +.globl umount +.type umount, %function; +umount: +.globl umount2 +.type umount2, %function; +umount2: +.globl uname +.type uname, %function; +uname: +.globl ungetc +.type ungetc, %function; +ungetc: +.globl ungetwc +.type ungetwc, %function; +ungetwc: .globl unlink .type unlink, %function; unlink: .globl unlinkat .type unlinkat, %function; unlinkat: +.globl unlockpt +.type unlockpt, %function; +unlockpt: +.globl unsetenv +.type unsetenv, %function; +unsetenv: +.globl unshare +.type unshare, %function; +unshare: +.weak updwtmp +.type updwtmp, %function; +updwtmp: +.globl updwtmpx +.type updwtmpx, %function; +updwtmpx: +.weak uselocale +.type uselocale, %function; +uselocale: .globl usleep .type usleep, %function; usleep: +.globl utime +.type utime, %function; +utime: +.globl utimensat +.type utimensat, %function; +utimensat: +.globl utimes +.type utimes, %function; +utimes: +.weak utmpname +.type utmpname, %function; +utmpname: +.weak utmpxname +.type utmpxname, %function; +utmpxname: +.globl valloc +.type valloc, %function; +valloc: +.globl vasprintf +.type vasprintf, %function; +vasprintf: +.globl vdprintf +.type vdprintf, %function; +vdprintf: +.globl verr +.type verr, %function; +verr: +.globl verrx +.type verrx, %function; +verrx: +.globl versionsort +.type versionsort, %function; +versionsort: +.weak versionsort64 +.type versionsort64, %function; +versionsort64: +.globl vfork +.type vfork, %function; +vfork: +.globl vfprintf +.type vfprintf, %function; +vfprintf: +.globl vfscanf +.type vfscanf, %function; +vfscanf: +.globl vfwprintf +.type vfwprintf, %function; +vfwprintf: +.globl vfwscanf +.type vfwscanf, %function; +vfwscanf: +.globl vhangup +.type vhangup, %function; +vhangup: +.globl vmsplice +.type vmsplice, %function; +vmsplice: +.globl vprintf +.type vprintf, %function; +vprintf: +.globl vscanf +.type vscanf, %function; +vscanf: +.globl vsnprintf +.type vsnprintf, %function; +vsnprintf: +.globl vsprintf +.type vsprintf, %function; +vsprintf: +.globl vsscanf +.type vsscanf, %function; +vsscanf: +.globl vswprintf +.type vswprintf, %function; +vswprintf: +.globl vswscanf +.type vswscanf, %function; +vswscanf: +.weak vsyslog +.type vsyslog, %function; +vsyslog: +.globl vwarn +.type vwarn, %function; +vwarn: +.globl vwarnx +.type vwarnx, %function; +vwarnx: +.globl vwprintf +.type vwprintf, %function; +vwprintf: +.globl vwscanf +.type vwscanf, %function; +vwscanf: +.globl wait +.type wait, %function; +wait: +.globl wait3 +.type wait3, %function; +wait3: +.globl wait4 +.type wait4, %function; +wait4: +.globl waitid +.type waitid, %function; +waitid: +.globl waitpid +.type waitpid, %function; +waitpid: +.globl warn +.type warn, %function; +warn: +.globl warnx +.type warnx, %function; +warnx: +.globl wcpcpy +.type wcpcpy, %function; +wcpcpy: +.globl wcpncpy +.type wcpncpy, %function; +wcpncpy: +.globl wcrtomb +.type wcrtomb, %function; +wcrtomb: +.globl wcscasecmp +.type wcscasecmp, %function; +wcscasecmp: +.globl wcscasecmp_l +.type wcscasecmp_l, %function; +wcscasecmp_l: +.globl wcscat +.type wcscat, %function; +wcscat: +.globl wcschr +.type wcschr, %function; +wcschr: +.globl wcscmp +.type wcscmp, %function; +wcscmp: +.globl wcscoll +.type wcscoll, %function; +wcscoll: +.weak wcscoll_l +.type wcscoll_l, %function; +wcscoll_l: +.globl wcscpy +.type wcscpy, %function; +wcscpy: +.globl wcscspn +.type wcscspn, %function; +wcscspn: +.globl wcsdup +.type wcsdup, %function; +wcsdup: +.globl wcsftime +.type wcsftime, %function; +wcsftime: +.weak wcsftime_l +.type wcsftime_l, %function; +wcsftime_l: +.globl wcslen +.type wcslen, %function; +wcslen: +.globl wcsncasecmp +.type wcsncasecmp, %function; +wcsncasecmp: +.globl wcsncasecmp_l +.type wcsncasecmp_l, %function; +wcsncasecmp_l: +.globl wcsncat +.type wcsncat, %function; +wcsncat: +.globl wcsncmp +.type wcsncmp, %function; +wcsncmp: +.globl wcsncpy +.type wcsncpy, %function; +wcsncpy: +.globl wcsnlen +.type wcsnlen, %function; +wcsnlen: +.globl wcsnrtombs +.type wcsnrtombs, %function; +wcsnrtombs: +.globl wcspbrk +.type wcspbrk, %function; +wcspbrk: +.globl wcsrchr +.type wcsrchr, %function; +wcsrchr: +.globl wcsrtombs +.type wcsrtombs, %function; +wcsrtombs: +.globl wcsspn +.type wcsspn, %function; +wcsspn: +.globl wcsstr +.type wcsstr, %function; +wcsstr: +.globl wcstod +.type wcstod, %function; +wcstod: +.globl wcstof +.type wcstof, %function; +wcstof: +.globl wcstoimax +.type wcstoimax, %function; +wcstoimax: +.globl wcstok +.type wcstok, %function; +wcstok: +.globl wcstol +.type wcstol, %function; +wcstol: +.globl wcstold +.type wcstold, %function; +wcstold: +.globl wcstoll +.type wcstoll, %function; +wcstoll: +.globl wcstombs +.type wcstombs, %function; +wcstombs: +.globl wcstoul +.type wcstoul, %function; +wcstoul: +.globl wcstoull +.type wcstoull, %function; +wcstoull: +.globl wcstoumax +.type wcstoumax, %function; +wcstoumax: +.globl wcswcs +.type wcswcs, %function; +wcswcs: +.globl wcswidth +.type wcswidth, %function; +wcswidth: +.globl wcsxfrm +.type wcsxfrm, %function; +wcsxfrm: +.weak wcsxfrm_l +.type wcsxfrm_l, %function; +wcsxfrm_l: +.globl wctob +.type wctob, %function; +wctob: +.globl wctomb +.type wctomb, %function; +wctomb: +.globl wctrans +.type wctrans, %function; +wctrans: +.weak wctrans_l +.type wctrans_l, %function; +wctrans_l: +.globl wctype +.type wctype, %function; +wctype: +.weak wctype_l +.type wctype_l, %function; +wctype_l: +.globl wcwidth +.type wcwidth, %function; +wcwidth: +.globl wmemchr +.type wmemchr, %function; +wmemchr: +.globl wmemcmp +.type wmemcmp, %function; +wmemcmp: +.globl wmemcpy +.type wmemcpy, %function; +wmemcpy: +.globl wmemmove +.type wmemmove, %function; +wmemmove: +.globl wmemset +.type wmemset, %function; +wmemset: +.globl wordexp +.type wordexp, %function; +wordexp: +.globl wordfree +.type wordfree, %function; +wordfree: +.globl wprintf +.type wprintf, %function; +wprintf: .globl write .type write, %function; write: .globl writev .type writev, %function; writev: -.globl _dlstart -.type _dlstart, %function; -_dlstart: -.weak _dl_debug_state -.type _dl_debug_state, %function; -_dl_debug_state: -.globl __dls2b -.type __dls2b, %function; -__dls2b: -.globl __dls3 -.type __dls3, %function; -__dls3: -.globl dlopen -.type dlopen, %function; -dlopen: -.globl dladdr -.type dladdr, %function; -dladdr: -.globl dl_iterate_phdr -.type dl_iterate_phdr, %function; -dl_iterate_phdr: -.data.rel.ro -.globl stderr -.type stderr, %object; -.size stderr, PTR_SIZE_BYTES -stderr: -.globl stdin -.type stdin, %object; -.size stdin, PTR_SIZE_BYTES -stdin: -.globl stdout -.type stdout, %object; -.size stdout, PTR_SIZE_BYTES -stdout: -.data -.globl optind -.type optind, %object; -.size optind, 4 -optind: -.globl opterr -.type opterr, %object; -.size opterr, 4 -opterr: -.globl _dl_debug_addr -.type _dl_debug_addr, %object; -.size _dl_debug_addr, PTR_SIZE_BYTES -_dl_debug_addr: -.bss -.weak ___environ -.type ___environ, %object; -.size ___environ, PTR_SIZE_BYTES -___environ: -.weak _environ -.type _environ, %object; -.size _environ, PTR_SIZE_BYTES -_environ: -.globl __environ -.type __environ, %object; -.size __environ, PTR_SIZE_BYTES -__environ: -.weak environ -.type environ, %object; -.size environ, PTR_SIZE_BYTES -environ: -.globl __stack_chk_guard -.type __stack_chk_guard, %object; -.size __stack_chk_guard, PTR_SIZE_BYTES -__stack_chk_guard: -.weak program_invocation_short_name -.type program_invocation_short_name, %object; -.size program_invocation_short_name, PTR_SIZE_BYTES -program_invocation_short_name: -.globl __progname -.type __progname, %object; -.size __progname, PTR_SIZE_BYTES -__progname: -.weak program_invocation_name -.type program_invocation_name, %object; -.size program_invocation_name, PTR_SIZE_BYTES -program_invocation_name: -.globl __progname_full -.type __progname_full, %object; -.size __progname_full, PTR_SIZE_BYTES -__progname_full: -.globl __signgam -.type __signgam, %object; -.size __signgam, 4 -__signgam: -.weak signgam -.type signgam, %object; -.size signgam, 4 -signgam: -.globl __optreset -.type __optreset, %object; -.size __optreset, 4 -__optreset: -.weak optreset -.type optreset, %object; -.size optreset, 4 -optreset: -.globl __optpos -.type __optpos, %object; -.size __optpos, 4 -__optpos: -.globl optarg -.type optarg, %object; -.size optarg, PTR_SIZE_BYTES -optarg: -.globl optopt -.type optopt, %object; -.size optopt, 4 -optopt: -.globl h_errno -.type h_errno, %object; -.size h_errno, 4 -h_errno: -.globl __timezone -.type __timezone, %object; -.size __timezone, PTR_SIZE_BYTES -__timezone: -.weak timezone -.type timezone, %object; -.size timezone, PTR_SIZE_BYTES -timezone: -.globl __daylight -.type __daylight, %object; -.size __daylight, 4 -__daylight: -.weak daylight -.type daylight, %object; -.size daylight, 4 -daylight: -.globl __tzname -.type __tzname, %object; -.size __tzname, PTR2_SIZE_BYTES -__tzname: -.weak tzname -.type tzname, %object; -.size tzname, PTR2_SIZE_BYTES -tzname: -.globl getdate_err -.type getdate_err, %object; -.size getdate_err, 4 -getdate_err: -.text -#ifdef PTR32 -.globl __aio_suspend_time64 -.type __aio_suspend_time64, %function; -__aio_suspend_time64: -.globl __semtimedop_time64 -.type __semtimedop_time64, %function; -__semtimedop_time64: -.globl __dlsym_time64 -.type __dlsym_time64, %function; -__dlsym_time64: -.globl __futimes_time64 -.type __futimes_time64, %function; -__futimes_time64: -.globl __lutimes_time64 -.type __lutimes_time64, %function; -__lutimes_time64: -.globl __adjtime64 -.type __adjtime64, %function; -__adjtime64: -.globl __adjtimex_time64 -.type __adjtimex_time64, %function; -__adjtimex_time64: -#endif -#if !defined(ARCH_riscv64) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) -.globl _flush_cache -.type _flush_cache, %function; -_flush_cache: -#endif -#if !defined(ARCH_riscv64) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) -.weak cacheflush -.type cacheflush, %function; -cacheflush: -#endif -#if !defined(ARCH_riscv64) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) -.globl __cachectl -.type __cachectl, %function; -__cachectl: -#endif -#if !defined(ARCH_riscv64) && !defined(ARCH_i386) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) -.weak cachectl -.type cachectl, %function; -cachectl: -#endif -#ifdef PTR32 -.globl __clock_adjtime64 -.type __clock_adjtime64, %function; -__clock_adjtime64: -#endif -#if !defined(ARCH_riscv64) && !defined(ARCH_aarch64) -.globl ioperm -.type ioperm, %function; -ioperm: -#endif -#if !defined(ARCH_riscv64) && !defined(ARCH_aarch64) -.globl iopl -.type iopl, %function; -iopl: -#endif -#ifdef PTR32 -.globl __ppoll_time64 -.type __ppoll_time64, %function; -__ppoll_time64: -.globl __settimeofday_time64 -.type __settimeofday_time64, %function; -__settimeofday_time64: -.globl __stime64 -.type __stime64, %function; -__stime64: -.globl __timerfd_settime64 -.type __timerfd_settime64, %function; -__timerfd_settime64: -.globl __timerfd_gettime64 -.type __timerfd_gettime64, %function; -__timerfd_gettime64: -.globl __utimes_time64 -.type __utimes_time64, %function; -__utimes_time64: -.globl __wait3_time64 -.type __wait3_time64, %function; -__wait3_time64: -.globl __wait4_time64 -.type __wait4_time64, %function; -__wait4_time64: -.globl __getrusage_time64 -.type __getrusage_time64, %function; -__getrusage_time64: -.globl __mq_timedreceive_time64 -.type __mq_timedreceive_time64, %function; -__mq_timedreceive_time64: -.globl __mq_timedsend_time64 -.type __mq_timedsend_time64, %function; -__mq_timedsend_time64: -.globl __recvmmsg_time64 -.type __recvmmsg_time64, %function; -__recvmmsg_time64: -.globl __sched_rr_get_interval_time64 -.type __sched_rr_get_interval_time64, %function; -__sched_rr_get_interval_time64: -.globl __pselect_time64 -.type __pselect_time64, %function; -__pselect_time64: -.globl __select_time64 -.type __select_time64, %function; -__select_time64: -.globl __getitimer_time64 -.type __getitimer_time64, %function; -__getitimer_time64: -.globl __setitimer_time64 -.type __setitimer_time64, %function; -__setitimer_time64: -.globl __sigtimedwait_time64 -.type __sigtimedwait_time64, %function; -__sigtimedwait_time64: -.globl __fstat_time64 -.type __fstat_time64, %function; -__fstat_time64: -.globl __fstatat_time64 -.type __fstatat_time64, %function; -__fstatat_time64: -.globl __futimens_time64 -.type __futimens_time64, %function; -__futimens_time64: -.weak __futimesat_time64 -.type __futimesat_time64, %function; -__futimesat_time64: -.globl __lstat_time64 -.type __lstat_time64, %function; -__lstat_time64: -.globl __stat_time64 -.type __stat_time64, %function; -__stat_time64: -.globl __utimensat_time64 -.type __utimensat_time64, %function; -__utimensat_time64: -.globl __cnd_timedwait_time64 -.type __cnd_timedwait_time64, %function; -__cnd_timedwait_time64: -.globl __mtx_timedlock_time64 -.type __mtx_timedlock_time64, %function; -__mtx_timedlock_time64: -.weak __pthread_cond_timedwait_time64 -.type __pthread_cond_timedwait_time64, %function; -__pthread_cond_timedwait_time64: -.weak __pthread_timedjoin_np_time64 -.type __pthread_timedjoin_np_time64, %function; -__pthread_timedjoin_np_time64: -.weak __pthread_mutex_timedlock_time64 -.type __pthread_mutex_timedlock_time64, %function; -__pthread_mutex_timedlock_time64: -.weak __pthread_rwlock_timedrdlock_time64 -.type __pthread_rwlock_timedrdlock_time64, %function; -__pthread_rwlock_timedrdlock_time64: -.weak __pthread_rwlock_timedwrlock_time64 -.type __pthread_rwlock_timedwrlock_time64, %function; -__pthread_rwlock_timedwrlock_time64: -.globl __sem_timedwait_time64 -.type __sem_timedwait_time64, %function; -__sem_timedwait_time64: -.globl __thrd_sleep_time64 -.type __thrd_sleep_time64, %function; -__thrd_sleep_time64: -.globl __clock_getres_time64 -.type __clock_getres_time64, %function; -__clock_getres_time64: -.weak __clock_gettime64 -.type __clock_gettime64, %function; -__clock_gettime64: -.weak __clock_nanosleep_time64 -.type __clock_nanosleep_time64, %function; -__clock_nanosleep_time64: -.globl __clock_settime64 -.type __clock_settime64, %function; -__clock_settime64: -.globl __ctime64 -.type __ctime64, %function; -__ctime64: -.globl __ctime64_r -.type __ctime64_r, %function; -__ctime64_r: -.globl __difftime64 -.type __difftime64, %function; -__difftime64: -.globl __ftime64 -.type __ftime64, %function; -__ftime64: -.globl __gettimeofday_time64 -.type __gettimeofday_time64, %function; -__gettimeofday_time64: -.globl __gmtime64 -.type __gmtime64, %function; -__gmtime64: -.weak __gmtime64_r -.type __gmtime64_r, %function; -__gmtime64_r: -.globl __localtime64 -.type __localtime64, %function; -__localtime64: -.weak __localtime64_r -.type __localtime64_r, %function; -__localtime64_r: -.globl __mktime64 -.type __mktime64, %function; -__mktime64: -.globl __nanosleep_time64 -.type __nanosleep_time64, %function; -__nanosleep_time64: -.globl __time64 -.type __time64, %function; -__time64: -.globl __timegm_time64 -.type __timegm_time64, %function; -__timegm_time64: -.globl __timer_gettime64 -.type __timer_gettime64, %function; -__timer_gettime64: -.globl __timer_settime64 -.type __timer_settime64, %function; -__timer_settime64: -.globl __timespec_get_time64 -.type __timespec_get_time64, %function; -__timespec_get_time64: -.globl __utime64 -.type __utime64, %function; -__utime64: -#endif -#if !defined(ARCH_riscv64) && !defined(ARCH_mips) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) -.globl arch_prctl -.type arch_prctl, %function; -arch_prctl: -#endif -#if !defined(ARCH_riscv64) && !defined(ARCH_mips) && !defined(ARCH_x86_64) && !defined(ARCH_powerpc) && !defined(ARCH_powerpc64) && !defined(ARCH_aarch64) -.globl ___tls_get_addr -.type ___tls_get_addr, %function; -___tls_get_addr: -#endif +.globl wscanf +.type wscanf, %function; +wscanf: +.globl y0 +.type y0, %function; +y0: +.globl y0f +.type y0f, %function; +y0f: +.globl y1 +.type y1, %function; +y1: +.globl y1f +.type y1f, %function; +y1f: +.globl yn +.type yn, %function; +yn: +.globl ynf +.type ynf, %function; +ynf: diff --git a/lib/libc/musl/src/complex/cacosf.c b/lib/libc/musl/src/complex/cacosf.c index 2e048540fa..ed8acf0f5a 100644 --- a/lib/libc/musl/src/complex/cacosf.c +++ b/lib/libc/musl/src/complex/cacosf.c @@ -2,8 +2,10 @@ // FIXME +static const float float_pi_2 = M_PI_2; + float complex cacosf(float complex z) { z = casinf(z); - return CMPLXF((float)M_PI_2 - crealf(z), -cimagf(z)); + return CMPLXF(float_pi_2 - crealf(z), -cimagf(z)); } diff --git a/lib/libc/musl/src/complex/catanf.c b/lib/libc/musl/src/complex/catanf.c index ef3907a506..1d569f2dac 100644 --- a/lib/libc/musl/src/complex/catanf.c +++ b/lib/libc/musl/src/complex/catanf.c @@ -61,13 +61,15 @@ static const double DP1 = 3.140625; static const double DP2 = 9.67502593994140625E-4; static const double DP3 = 1.509957990978376432E-7; +static const float float_pi = M_PI; + static float _redupif(float xx) { float x, t; long i; x = xx; - t = x/(float)M_PI; + t = x/float_pi; if (t >= 0.0f) t += 0.5f; else diff --git a/lib/libc/musl/src/complex/cproj.c b/lib/libc/musl/src/complex/cproj.c index 9ae1e17c0d..d2b8f5a972 100644 --- a/lib/libc/musl/src/complex/cproj.c +++ b/lib/libc/musl/src/complex/cproj.c @@ -3,6 +3,6 @@ double complex cproj(double complex z) { if (isinf(creal(z)) || isinf(cimag(z))) - return CMPLX(INFINITY, copysign(0.0, creal(z))); + return CMPLX(INFINITY, copysign(0.0, cimag(z))); return z; } diff --git a/lib/libc/musl/src/complex/cprojf.c b/lib/libc/musl/src/complex/cprojf.c index 03fab339d9..15a874bb2f 100644 --- a/lib/libc/musl/src/complex/cprojf.c +++ b/lib/libc/musl/src/complex/cprojf.c @@ -3,6 +3,6 @@ float complex cprojf(float complex z) { if (isinf(crealf(z)) || isinf(cimagf(z))) - return CMPLXF(INFINITY, copysignf(0.0, crealf(z))); + return CMPLXF(INFINITY, copysignf(0.0, cimagf(z))); return z; } diff --git a/lib/libc/musl/src/complex/cprojl.c b/lib/libc/musl/src/complex/cprojl.c index 38a494c5c4..531ffa1c5e 100644 --- a/lib/libc/musl/src/complex/cprojl.c +++ b/lib/libc/musl/src/complex/cprojl.c @@ -9,7 +9,7 @@ long double complex cprojl(long double complex z) long double complex cprojl(long double complex z) { if (isinf(creall(z)) || isinf(cimagl(z))) - return CMPLXL(INFINITY, copysignl(0.0, creall(z))); + return CMPLXL(INFINITY, copysignl(0.0, cimagl(z))); return z; } #endif diff --git a/lib/libc/musl/src/ctype/nonspacing.h b/lib/libc/musl/src/ctype/nonspacing.h index 5d05a3d1a0..7746f3b603 100644 --- a/lib/libc/musl/src/ctype/nonspacing.h +++ b/lib/libc/musl/src/ctype/nonspacing.h @@ -1,23 +1,23 @@ -16,16,16,18,19,20,21,22,23,24,25,26,27,28,29,30,31,16,16,32,16,16,16,33,34,35, -36,37,38,39,16,16,40,16,16,16,16,16,16,16,16,16,16,16,41,42,16,16,43,16,16,16, +16,16,16,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,16,33,16,16,16,34,35,36, +37,38,39,40,16,16,41,16,16,16,16,16,16,16,16,16,16,16,42,43,16,16,44,16,16,16, 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, -16,16,16,16,16,16,16,16,16,16,44,16,45,46,47,48,16,16,16,16,16,16,16,16,16,16, +16,16,16,16,16,16,16,16,16,16,45,16,46,47,48,49,16,16,16,16,16,16,16,16,16,16, 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, +16,16,16,16,16,16,16,50,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, +16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,51,16,16,52, +53,16,54,55,56,16,16,16,16,16,16,57,16,16,58,16,59,60,61,62,63,64,65,66,67,68, +69,70,16,71,72,73,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, +16,74,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, -16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,49,16,16,50, -51,16,52,53,54,16,16,16,16,16,16,55,16,16,56,16,57,58,59,60,61,62,63,64,65,66, -67,68,16,69,70,71,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, -16,72,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, +16,16,16,75,76,16,16,16,77,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, -16,16,16,73,74,16,16,16,75,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, -16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, -16,16,16,16,16,16,16,76,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, -16,16,77,78,16,16,16,16,16,16,16,79,16,16,16,16,16,80,81,82,16,16,16,16,16,83, -84,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, +16,16,16,16,16,16,16,78,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, +16,16,79,80,16,16,16,16,16,16,16,81,16,16,16,16,16,82,83,84,16,16,16,16,16,85, +86,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, 16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, @@ -35,55 +35,57 @@ 242,7,128,127,0,0,0,0,0,0,0,0,0,0,0,0,242,31,0,63,0,0,0,0,0,0,0,0,0,3,0,0,160, 2,0,0,0,0,0,0,254,127,223,224,255,254,255,255,255,31,64,0,0,0,0,0,0,0,0,0,0,0, 0,224,253,102,0,0,0,195,1,0,30,0,100,32,0,32,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,0, -0,0,28,0,0,0,12,0,0,0,12,0,0,0,0,0,0,0,176,63,64,254,15,32,0,0,0,0,0,120,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,135,1,4,14,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,9,0,0,0,0,0,0,64,127, -229,31,248,159,0,0,0,0,0,0,255,127,0,0,0,0,0,0,0,0,15,0,0,0,0,0,208,23,4,0,0, -0,0,248,15,0,3,0,0,0,60,59,0,0,0,0,0,0,64,163,3,0,0,0,0,0,0,240,207,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,247,255,253,33,16,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255, +0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,28,0,0,0,28,0,0,0,12,0,0,0,12,0,0,0,0,0,0,0,176,63,64,254, +15,32,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,2,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,135,1,4,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +128,9,0,0,0,0,0,0,64,127,229,31,248,159,0,0,0,0,0,0,255,127,0,0,0,0,0,0,0,0, +15,0,0,0,0,0,208,23,4,0,0,0,0,248,15,0,3,0,0,0,60,59,0,0,0,0,0,0,64,163,3,0,0, +0,0,0,0,240,207,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,247,255,253,33,16, +3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255, 251,0,248,0,0,0,124,0,0,0,0,0,0,223,255,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, 255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,3,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0, 0,60,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,128,247,63,0,0,0,192,0,0,0,0,0,0,0,0,0,0,3,0,68,8,0,0,96,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,48,0,0,0,255,255,3,128,0,0,0,0,192,63,0,0,128,255,3,0, -0,0,0,0,7,0,0,0,0,0,200,51,0,0,0,0,32,0,0,0,0,0,0,0,0,126,102,0,8,16,0,0,0,0, -0,16,0,0,0,0,0,0,157,193,2,0,0,0,0,48,64, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,33,0,0,0,0,0,64, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255,255,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,110,240,0,0,0,0,0,135,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0, -0,0,0,0,0,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,192,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,255, -127,0,0,0,0,0,0,128,3,0,0,0,0,0,120,38,0,32,0,0,0,0,0,0,7,0,0,0,128,239,31,0, -0,0,0,0,0,0,8,0,3,0,0,0,0,0,192,127,0,30,0,0,0,0,0,0,0,0,0,0,0,128,211,64,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,248,7,0,0,3,0,0,0,0,0,0,24,1,0,0,0,192, -31,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,92,0,0,64,0,0,0,0,0, -0,0,0,0,0,248,133,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,60,176,1,0,0,48,0,0,0, -0,0,0,0,0,0,0,248,167,1,0,0,0,0,0,0,0,0,0,0,0,0,40,191,0,0,0,0,0,0,0,0,0,0,0, -0,224,188,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -128,255,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,12,1,0,0,0,254,7,0,0,0,0,248,121,128,0, -126,14,0,0,0,0,0,252,127,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,191,0,0,0, -0,0,0,0,0,0,0,252,255,255,252,109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,126,180,191,0, -0,0,0,0,0,0,0,0,163,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,24, -0,0,0,0,0,0,0,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,0,0,0,0,127,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0, -0,128,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,15, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,3,248,255,231,15,0,0,0,60,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,255,255,255,255,255,255,127,248,255,255,255,255,255,31,32,0,16,0,0,248, -254,255,0,0,0,0,0,0,0,0,0, -0,127,255,255,249,219,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,240,7,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,7,0,0,0,0,0,200,51,0,0,0,0,32,0,0, +0,0,0,0,0,0,126,102,0,8,16,0,0,0,0,0,16,0,0,0,0,0,0,157,193,2,0,0,0,0,48,64,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,33,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0,0, +64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,0,0,255, +255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,110,240,0, +0,0,0,0,135,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,240,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,255,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,255,127,0,0,0,0,0,0,128, +3,0,0,0,0,0,120,38,0,32,0,0,0,0,0,0,7,0,0,0,128,239,31,0,0,0,0,0,0,0,8,0,3,0, +0,0,0,0,192,127,0,30,0,0,0,0,0,0,0,0,0,0,0,128,211,64,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,128,248,7,0,0,3,0,0,0,0,0,0,24,1,0,0,0,192,31,31,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,255,92,0,0,64,0,0,0,0,0,0,0,0,0,0,248,133,13,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,60,176,1,0,0,48,0,0,0,0,0,0,0,0,0,0, +248,167,1,0,0,0,0,0,0,0,0,0,0,0,0,40,191,0,0,0,0,0,0,0,0,0,0,0,0,224,188,15,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,255,6,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,240,12,1,0,0,0,254,7,0,0,0,0,248,121,128,0,126,14,0,0,0,0,0,252, +127,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,191,0,0,0,0,0,0,0,0,0,0,252,255, +255,252,109,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,126,180,191,0,0,0,0,0,0,0,0,0,163,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,255, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,0,0,0,0,0,0,128,7,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,15,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,3,248,255,231,15,0,0,0,60,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, +255,255,255,255,127,248,255,255,255,255,255,31,32,0,16,0,0,248,254,255,0,0,0, +0,0,0,0,0,0,0,127,255,255,249,219,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,240,7,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, diff --git a/lib/libc/musl/src/env/__libc_start_main.c b/lib/libc/musl/src/env/__libc_start_main.c index 8fbe526271..c5b277bdcf 100644 --- a/lib/libc/musl/src/env/__libc_start_main.c +++ b/lib/libc/musl/src/env/__libc_start_main.c @@ -69,7 +69,8 @@ weak_alias(libc_start_init, __libc_start_init); typedef int lsm2_fn(int (*)(int,char **,char **), int, char **); static lsm2_fn libc_start_main_stage2; -int __libc_start_main(int (*main)(int,char **,char **), int argc, char **argv) +int __libc_start_main(int (*main)(int,char **,char **), int argc, char **argv, + void (*init_dummy)(), void(*fini_dummy)(), void(*ldso_dummy)()) { char **envp = argv+argc+1; diff --git a/lib/libc/musl/src/env/__stack_chk_fail.c b/lib/libc/musl/src/env/__stack_chk_fail.c index bf5a280ad9..e53526020f 100644 --- a/lib/libc/musl/src/env/__stack_chk_fail.c +++ b/lib/libc/musl/src/env/__stack_chk_fail.c @@ -9,6 +9,15 @@ void __init_ssp(void *entropy) if (entropy) memcpy(&__stack_chk_guard, entropy, sizeof(uintptr_t)); else __stack_chk_guard = (uintptr_t)&__stack_chk_guard * 1103515245; +#if UINTPTR_MAX >= 0xffffffffffffffff + /* Sacrifice 8 bits of entropy on 64bit to prevent leaking/ + * overwriting the canary via string-manipulation functions. + * The NULL byte is on the second byte so that off-by-ones can + * still be detected. Endianness is taken care of + * automatically. */ + ((char *)&__stack_chk_guard)[1] = 0; +#endif + __pthread_self()->canary = __stack_chk_guard; } diff --git a/lib/libc/musl/src/errno/__strerror.h b/lib/libc/musl/src/errno/__strerror.h index 2d992da554..14925907b5 100644 --- a/lib/libc/musl/src/errno/__strerror.h +++ b/lib/libc/musl/src/errno/__strerror.h @@ -102,3 +102,7 @@ E(EDQUOT, "Quota exceeded") E(ENOMEDIUM, "No medium found") E(EMEDIUMTYPE, "Wrong medium type") E(EMULTIHOP, "Multihop attempted") +E(ENOKEY, "Required key not available") +E(EKEYEXPIRED, "Key has expired") +E(EKEYREVOKED, "Key has been revoked") +E(EKEYREJECTED, "Key was rejected by service") diff --git a/lib/libc/musl/src/fenv/powerpc/fenv-sf.c b/lib/libc/musl/src/fenv/powerpc/fenv-sf.c index 85bef40f10..d4248f26f7 100644 --- a/lib/libc/musl/src/fenv/powerpc/fenv-sf.c +++ b/lib/libc/musl/src/fenv/powerpc/fenv-sf.c @@ -1,3 +1,3 @@ -#ifdef _SOFT_FLOAT +#if defined(_SOFT_FLOAT) || defined(__NO_FPRS__) #include "../fenv.c" #endif diff --git a/lib/libc/musl/src/fenv/powerpc/fenv.S b/lib/libc/musl/src/fenv/powerpc/fenv.S index 22cea216a0..55055d0b3a 100644 --- a/lib/libc/musl/src/fenv/powerpc/fenv.S +++ b/lib/libc/musl/src/fenv/powerpc/fenv.S @@ -1,4 +1,4 @@ -#ifndef _SOFT_FLOAT +#if !defined(_SOFT_FLOAT) && !defined(__NO_FPRS__) .global feclearexcept .type feclearexcept,@function feclearexcept: diff --git a/lib/libc/musl/src/include/stdlib.h b/lib/libc/musl/src/include/stdlib.h index e9da20158c..812b04de2f 100644 --- a/lib/libc/musl/src/include/stdlib.h +++ b/lib/libc/musl/src/include/stdlib.h @@ -8,6 +8,7 @@ hidden void __env_rm_add(char *, char *); hidden int __mkostemps(char *, int, int); hidden int __ptsname_r(int, char *, size_t); hidden char *__randname(char *); +hidden void __qsort_r (void *, size_t, size_t, int (*)(const void *, const void *, void *), void *); hidden void *__libc_malloc(size_t); hidden void *__libc_malloc_impl(size_t); diff --git a/lib/libc/musl/src/internal/version.h b/lib/libc/musl/src/internal/version.h index b23e8e2963..a9327dd446 100644 --- a/lib/libc/musl/src/internal/version.h +++ b/lib/libc/musl/src/internal/version.h @@ -1 +1 @@ -#define VERSION "1.2.2" +#define VERSION "1.2.3" diff --git a/lib/libc/musl/src/ldso/dl_iterate_phdr.c b/lib/libc/musl/src/ldso/dl_iterate_phdr.c index 86c87ef835..9546dd3609 100644 --- a/lib/libc/musl/src/ldso/dl_iterate_phdr.c +++ b/lib/libc/musl/src/ldso/dl_iterate_phdr.c @@ -1,5 +1,6 @@ #include <elf.h> #include <link.h> +#include "pthread_impl.h" #include "libc.h" #define AUX_CNT 38 @@ -35,7 +36,7 @@ static int static_dl_iterate_phdr(int(*callback)(struct dl_phdr_info *info, size info.dlpi_subs = 0; if (tls_phdr) { info.dlpi_tls_modid = 1; - info.dlpi_tls_data = (void *)(base + tls_phdr->p_vaddr); + info.dlpi_tls_data = __tls_get_addr((tls_mod_off_t[]){1,0}); } else { info.dlpi_tls_modid = 0; info.dlpi_tls_data = 0; diff --git a/lib/libc/musl/src/legacy/cuserid.c b/lib/libc/musl/src/legacy/cuserid.c index 4e78798ded..dcaf73d4e6 100644 --- a/lib/libc/musl/src/legacy/cuserid.c +++ b/lib/libc/musl/src/legacy/cuserid.c @@ -2,13 +2,21 @@ #include <pwd.h> #include <stdio.h> #include <unistd.h> +#include <string.h> char *cuserid(char *buf) { + static char usridbuf[L_cuserid]; struct passwd pw, *ppw; long pwb[256]; - if (getpwuid_r(geteuid(), &pw, (void *)pwb, sizeof pwb, &ppw)) - return 0; - snprintf(buf, L_cuserid, "%s", pw.pw_name); + if (buf) *buf = 0; + getpwuid_r(geteuid(), &pw, (void *)pwb, sizeof pwb, &ppw); + if (!ppw) + return buf; + size_t len = strnlen(pw.pw_name, L_cuserid); + if (len == L_cuserid) + return buf; + if (!buf) buf = usridbuf; + memcpy(buf, pw.pw_name, len+1); return buf; } diff --git a/lib/libc/musl/src/linux/epoll.c b/lib/libc/musl/src/linux/epoll.c index deff5b101a..93baa8147e 100644 --- a/lib/libc/musl/src/linux/epoll.c +++ b/lib/libc/musl/src/linux/epoll.c @@ -24,9 +24,9 @@ int epoll_ctl(int fd, int op, int fd2, struct epoll_event *ev) int epoll_pwait(int fd, struct epoll_event *ev, int cnt, int to, const sigset_t *sigs) { - int r = __syscall(SYS_epoll_pwait, fd, ev, cnt, to, sigs, _NSIG/8); + int r = __syscall_cp(SYS_epoll_pwait, fd, ev, cnt, to, sigs, _NSIG/8); #ifdef SYS_epoll_wait - if (r==-ENOSYS && !sigs) r = __syscall(SYS_epoll_wait, fd, ev, cnt, to); + if (r==-ENOSYS && !sigs) r = __syscall_cp(SYS_epoll_wait, fd, ev, cnt, to); #endif return __syscall_ret(r); } diff --git a/lib/libc/musl/src/locale/dcngettext.c b/lib/libc/musl/src/locale/dcngettext.c index d1e6c6d13a..0b53286db7 100644 --- a/lib/libc/musl/src/locale/dcngettext.c +++ b/lib/libc/musl/src/locale/dcngettext.c @@ -132,6 +132,9 @@ char *dcngettext(const char *domainname, const char *msgid1, const char *msgid2, struct binding *q; int old_errno = errno; + /* match gnu gettext behaviour */ + if (!msgid1) goto notrans; + if ((unsigned)category >= LC_ALL) goto notrans; if (!domainname) domainname = __gettextdomain(); diff --git a/lib/libc/musl/src/locale/duplocale.c b/lib/libc/musl/src/locale/duplocale.c index 030b64cb0e..5ce33ae6de 100644 --- a/lib/libc/musl/src/locale/duplocale.c +++ b/lib/libc/musl/src/locale/duplocale.c @@ -3,6 +3,11 @@ #include "locale_impl.h" #include "libc.h" +#define malloc __libc_malloc +#define calloc undef +#define realloc undef +#define free undef + locale_t __duplocale(locale_t old) { locale_t new = malloc(sizeof *new); diff --git a/lib/libc/musl/src/locale/strtod_l.c b/lib/libc/musl/src/locale/strtod_l.c new file mode 100644 index 0000000000..574ba148e0 --- /dev/null +++ b/lib/libc/musl/src/locale/strtod_l.c @@ -0,0 +1,22 @@ +#define _GNU_SOURCE +#include <stdlib.h> +#include <locale.h> + +float strtof_l(const char *restrict s, char **restrict p, locale_t l) +{ + return strtof(s, p); +} + +double strtod_l(const char *restrict s, char **restrict p, locale_t l) +{ + return strtod(s, p); +} + +long double strtold_l(const char *restrict s, char **restrict p, locale_t l) +{ + return strtold(s, p); +} + +weak_alias(strtof_l, __strtof_l); +weak_alias(strtod_l, __strtod_l); +weak_alias(strtold_l, __strtold_l); diff --git a/lib/libc/musl/src/malloc/free.c b/lib/libc/musl/src/malloc/free.c index f17a952cb4..3944f7b28f 100644 --- a/lib/libc/musl/src/malloc/free.c +++ b/lib/libc/musl/src/malloc/free.c @@ -2,5 +2,5 @@ void free(void *p) { - return __libc_free(p); + __libc_free(p); } diff --git a/lib/libc/musl/src/malloc/mallocng/aligned_alloc.c b/lib/libc/musl/src/malloc/mallocng/aligned_alloc.c index 3411689600..e0862a83ae 100644 --- a/lib/libc/musl/src/malloc/mallocng/aligned_alloc.c +++ b/lib/libc/musl/src/malloc/mallocng/aligned_alloc.c @@ -22,6 +22,9 @@ void *aligned_alloc(size_t align, size_t len) if (align <= UNIT) align = UNIT; unsigned char *p = malloc(len + align - UNIT); + if (!p) + return 0; + struct meta *g = get_meta(p); int idx = get_slot_index(p); size_t stride = get_stride(g); diff --git a/lib/libc/musl/src/malloc/mallocng/free.c b/lib/libc/musl/src/malloc/mallocng/free.c index 40745f97da..418a085c18 100644 --- a/lib/libc/musl/src/malloc/mallocng/free.c +++ b/lib/libc/musl/src/malloc/mallocng/free.c @@ -119,7 +119,11 @@ void free(void *p) if (((uintptr_t)(start-1) ^ (uintptr_t)end) >= 2*PGSZ && g->last_idx) { unsigned char *base = start + (-(uintptr_t)start & (PGSZ-1)); size_t len = (end-base) & -PGSZ; - if (len) madvise(base, len, MADV_FREE); + if (len) { + int e = errno; + madvise(base, len, MADV_FREE); + errno = e; + } } // atomic free without locking if this is neither first or last slot @@ -139,5 +143,9 @@ void free(void *p) wrlock(); struct mapinfo mi = nontrivial_free(g, idx); unlock(); - if (mi.len) munmap(mi.base, mi.len); + if (mi.len) { + int e = errno; + munmap(mi.base, mi.len); + errno = e; + } } diff --git a/lib/libc/musl/src/malloc/oldmalloc/malloc.c b/lib/libc/musl/src/malloc/oldmalloc/malloc.c index 53f5f959ec..25d00d44de 100644 --- a/lib/libc/musl/src/malloc/oldmalloc/malloc.c +++ b/lib/libc/musl/src/malloc/oldmalloc/malloc.c @@ -11,7 +11,7 @@ #include "malloc_impl.h" #include "fork_impl.h" -#define malloc __libc_malloc +#define malloc __libc_malloc_impl #define realloc __libc_realloc #define free __libc_free @@ -481,12 +481,14 @@ void __bin_chunk(struct chunk *self) if (size > RECLAIM && (size^(size-osize)) > size-osize) { uintptr_t a = (uintptr_t)self + SIZE_ALIGN+PAGE_SIZE-1 & -PAGE_SIZE; uintptr_t b = (uintptr_t)next - SIZE_ALIGN & -PAGE_SIZE; + int e = errno; #if 1 __madvise((void *)a, b-a, MADV_DONTNEED); #else __mmap((void *)a, b-a, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED, -1, 0); #endif + errno = e; } unlock_bin(i); @@ -499,7 +501,9 @@ static void unmap_chunk(struct chunk *self) size_t len = CHUNK_SIZE(self) + extra; /* Crash on double free */ if (extra & 1) a_crash(); + int e = errno; __munmap(base, len); + errno = e; } void free(void *p) diff --git a/lib/libc/musl/src/math/acoshf.c b/lib/libc/musl/src/math/acoshf.c index 8a4ec4d57e..b773d48e2b 100644 --- a/lib/libc/musl/src/math/acoshf.c +++ b/lib/libc/musl/src/math/acoshf.c @@ -15,12 +15,12 @@ float acoshf(float x) uint32_t a = u.i & 0x7fffffff; if (a < 0x3f800000+(1<<23)) - /* |x| < 2, invalid if x < 1 or nan */ + /* |x| < 2, invalid if x < 1 */ /* up to 2ulp error in [1,1.125] */ return log1pf(x-1 + sqrtf((x-1)*(x-1)+2*(x-1))); - if (a < 0x3f800000+(12<<23)) - /* |x| < 0x1p12 */ + if (u.i < 0x3f800000+(12<<23)) + /* 2 <= x < 0x1p12 */ return logf(2*x - 1/(x+sqrtf(x*x-1))); - /* x >= 0x1p12 */ + /* x >= 0x1p12 or x <= -2 or nan */ return logf(x) + 0.693147180559945309417232121458176568f; } diff --git a/lib/libc/musl/src/math/expm1f.c b/lib/libc/musl/src/math/expm1f.c index 297e0b44a2..09a41afe7d 100644 --- a/lib/libc/musl/src/math/expm1f.c +++ b/lib/libc/musl/src/math/expm1f.c @@ -16,7 +16,6 @@ #include "libm.h" static const float -o_threshold = 8.8721679688e+01, /* 0x42b17180 */ ln2_hi = 6.9313812256e-01, /* 0x3f317180 */ ln2_lo = 9.0580006145e-06, /* 0x3717f7d1 */ invln2 = 1.4426950216e+00, /* 0x3fb8aa3b */ @@ -41,7 +40,7 @@ float expm1f(float x) return x; if (sign) return -1; - if (x > o_threshold) { + if (hx > 0x42b17217) { /* x > log(FLT_MAX) */ x *= 0x1p127f; return x; } diff --git a/lib/libc/musl/src/math/fmaf.c b/lib/libc/musl/src/math/fmaf.c index 80f5cd8a33..7c65acf1fc 100644 --- a/lib/libc/musl/src/math/fmaf.c +++ b/lib/libc/musl/src/math/fmaf.c @@ -77,17 +77,16 @@ float fmaf(float x, float y, float z) * If result is inexact, and exactly halfway between two float values, * we need to adjust the low-order bit in the direction of the error. */ -#ifdef FE_TOWARDZERO - fesetround(FE_TOWARDZERO); -#endif - volatile double vxy = xy; /* XXX work around gcc CSE bug */ - double adjusted_result = vxy + z; - fesetround(FE_TONEAREST); - if (result == adjusted_result) { - u.f = adjusted_result; + double err; + int neg = u.i >> 63; + if (neg == (z > xy)) + err = xy - result + z; + else + err = z - result + xy; + if (neg == (err < 0)) u.i++; - adjusted_result = u.f; - } - z = adjusted_result; + else + u.i--; + z = u.f; return z; } diff --git a/lib/libc/musl/src/math/powerpc/fabs.c b/lib/libc/musl/src/math/powerpc/fabs.c index 0efc21ef83..9453a3aa98 100644 --- a/lib/libc/musl/src/math/powerpc/fabs.c +++ b/lib/libc/musl/src/math/powerpc/fabs.c @@ -1,6 +1,6 @@ #include <math.h> -#if defined(_SOFT_FLOAT) || defined(BROKEN_PPC_D_ASM) +#if defined(_SOFT_FLOAT) || defined(__NO_FPRS__) || defined(BROKEN_PPC_D_ASM) #include "../fabs.c" diff --git a/lib/libc/musl/src/math/powerpc/fabsf.c b/lib/libc/musl/src/math/powerpc/fabsf.c index d88b5911c0..2e9da588dd 100644 --- a/lib/libc/musl/src/math/powerpc/fabsf.c +++ b/lib/libc/musl/src/math/powerpc/fabsf.c @@ -1,6 +1,6 @@ #include <math.h> -#ifdef _SOFT_FLOAT +#if defined(_SOFT_FLOAT) || defined(__NO_FPRS__) #include "../fabsf.c" diff --git a/lib/libc/musl/src/math/powerpc/fma.c b/lib/libc/musl/src/math/powerpc/fma.c index 135c990357..0eb2ba1ef5 100644 --- a/lib/libc/musl/src/math/powerpc/fma.c +++ b/lib/libc/musl/src/math/powerpc/fma.c @@ -1,6 +1,6 @@ #include <math.h> -#if defined(_SOFT_FLOAT) || defined(BROKEN_PPC_D_ASM) +#if defined(_SOFT_FLOAT) || defined(__NO_FPRS__) || defined(BROKEN_PPC_D_ASM) #include "../fma.c" diff --git a/lib/libc/musl/src/math/powerpc/fmaf.c b/lib/libc/musl/src/math/powerpc/fmaf.c index a99a2a3ba1..dc1a749d98 100644 --- a/lib/libc/musl/src/math/powerpc/fmaf.c +++ b/lib/libc/musl/src/math/powerpc/fmaf.c @@ -1,6 +1,6 @@ #include <math.h> -#ifdef _SOFT_FLOAT +#if defined(_SOFT_FLOAT) || defined(__NO_FPRS__) #include "../fmaf.c" diff --git a/lib/libc/musl/src/misc/ioctl.c b/lib/libc/musl/src/misc/ioctl.c index 492828119a..35804f026e 100644 --- a/lib/libc/musl/src/misc/ioctl.c +++ b/lib/libc/musl/src/misc/ioctl.c @@ -6,6 +6,7 @@ #include <stddef.h> #include <stdint.h> #include <string.h> +#include <endian.h> #include "syscall.h" #define alignof(t) offsetof(struct { char c; t x; }, x) @@ -53,7 +54,7 @@ static const struct ioctl_compat_map compat_map[] = { { _IOWR('A', 0x23, char[136]), _IOWR('A', 0x23, char[132]), 0, WR, 1, 0 }, { 0, 0, 4, WR, 1, 0 }, /* snd_pcm_sync_ptr (flags only) */ { 0, 0, 32, WR, 1, OFFS(8,12,16,24,28) }, /* snd_pcm_mmap_status */ - { 0, 0, 8, WR, 1, OFFS(0,4) }, /* snd_pcm_mmap_control */ + { 0, 0, 4, WR, 1, 0 }, /* snd_pcm_mmap_control (each member) */ /* VIDIOC_QUERYBUF, VIDIOC_QBUF, VIDIOC_DQBUF, VIDIOC_PREPARE_BUF */ { _IOWR('V', 9, new_misaligned(68)), _IOWR('V', 9, char[68]), 68, WR, 1, OFFS(20, 24) }, @@ -90,7 +91,11 @@ static void convert_ioctl_struct(const struct ioctl_compat_map *map, char *old, * if another exception appears this needs changing. */ convert_ioctl_struct(map+1, old, new, dir); convert_ioctl_struct(map+2, old+4, new+8, dir); - convert_ioctl_struct(map+3, old+68, new+72, dir); + /* snd_pcm_mmap_control, special-cased due to kernel + * type definition having been botched. */ + int adj = BYTE_ORDER==BIG_ENDIAN ? 4 : 0; + convert_ioctl_struct(map+3, old+68, new+72+adj, dir); + convert_ioctl_struct(map+3, old+72, new+76+3*adj, dir); return; } for (int i=0; i < map->noffs; i++) { diff --git a/lib/libc/musl/src/passwd/nscd_query.c b/lib/libc/musl/src/passwd/nscd_query.c index d38e371bcd..dc3406b851 100644 --- a/lib/libc/musl/src/passwd/nscd_query.c +++ b/lib/libc/musl/src/passwd/nscd_query.c @@ -40,7 +40,15 @@ retry: buf[0] = NSCDVERSION; fd = socket(PF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0); - if (fd < 0) return NULL; + if (fd < 0) { + if (errno == EAFNOSUPPORT) { + f = fopen("/dev/null", "re"); + if (f) + errno = errno_save; + return f; + } + return 0; + } if(!(f = fdopen(fd, "r"))) { close(fd); diff --git a/lib/libc/musl/src/process/fdop.h b/lib/libc/musl/src/process/fdop.h index 5adf144387..7cf733b21d 100644 --- a/lib/libc/musl/src/process/fdop.h +++ b/lib/libc/musl/src/process/fdop.h @@ -10,3 +10,8 @@ struct fdop { mode_t mode; char path[]; }; + +#define malloc __libc_malloc +#define calloc __libc_calloc +#define realloc undef +#define free __libc_free diff --git a/lib/libc/musl/src/process/posix_spawn_file_actions_addclose.c b/lib/libc/musl/src/process/posix_spawn_file_actions_addclose.c index cdda597991..0c2ef8fa37 100644 --- a/lib/libc/musl/src/process/posix_spawn_file_actions_addclose.c +++ b/lib/libc/musl/src/process/posix_spawn_file_actions_addclose.c @@ -5,6 +5,7 @@ int posix_spawn_file_actions_addclose(posix_spawn_file_actions_t *fa, int fd) { + if (fd < 0) return EBADF; struct fdop *op = malloc(sizeof *op); if (!op) return ENOMEM; op->cmd = FDOP_CLOSE; diff --git a/lib/libc/musl/src/process/posix_spawn_file_actions_adddup2.c b/lib/libc/musl/src/process/posix_spawn_file_actions_adddup2.c index 0367498fd4..addca4d4f0 100644 --- a/lib/libc/musl/src/process/posix_spawn_file_actions_adddup2.c +++ b/lib/libc/musl/src/process/posix_spawn_file_actions_adddup2.c @@ -5,6 +5,7 @@ int posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t *fa, int srcfd, int fd) { + if (srcfd < 0 || fd < 0) return EBADF; struct fdop *op = malloc(sizeof *op); if (!op) return ENOMEM; op->cmd = FDOP_DUP2; diff --git a/lib/libc/musl/src/process/posix_spawn_file_actions_addfchdir.c b/lib/libc/musl/src/process/posix_spawn_file_actions_addfchdir.c index 436c683d25..e89ede8c3c 100644 --- a/lib/libc/musl/src/process/posix_spawn_file_actions_addfchdir.c +++ b/lib/libc/musl/src/process/posix_spawn_file_actions_addfchdir.c @@ -6,6 +6,7 @@ int posix_spawn_file_actions_addfchdir_np(posix_spawn_file_actions_t *fa, int fd) { + if (fd < 0) return EBADF; struct fdop *op = malloc(sizeof *op); if (!op) return ENOMEM; op->cmd = FDOP_FCHDIR; diff --git a/lib/libc/musl/src/process/posix_spawn_file_actions_addopen.c b/lib/libc/musl/src/process/posix_spawn_file_actions_addopen.c index 368922c76b..82bbcec9eb 100644 --- a/lib/libc/musl/src/process/posix_spawn_file_actions_addopen.c +++ b/lib/libc/musl/src/process/posix_spawn_file_actions_addopen.c @@ -6,6 +6,7 @@ int posix_spawn_file_actions_addopen(posix_spawn_file_actions_t *restrict fa, int fd, const char *restrict path, int flags, mode_t mode) { + if (fd < 0) return EBADF; struct fdop *op = malloc(sizeof *op + strlen(path) + 1); if (!op) return ENOMEM; op->cmd = FDOP_OPEN; diff --git a/lib/libc/musl/src/setjmp/powerpc/longjmp.S b/lib/libc/musl/src/setjmp/powerpc/longjmp.S index e598bd056e..611389fed9 100644 --- a/lib/libc/musl/src/setjmp/powerpc/longjmp.S +++ b/lib/libc/musl/src/setjmp/powerpc/longjmp.S @@ -37,7 +37,37 @@ longjmp: lwz 29, 72(3) lwz 30, 76(3) lwz 31, 80(3) -#ifndef _SOFT_FLOAT +#if defined(_SOFT_FLOAT) || defined(__NO_FPRS__) + mflr 0 + bl 1f + .hidden __hwcap + .long __hwcap-. +1: mflr 4 + lwz 5, 0(4) + lwzx 4, 4, 5 + andis. 4, 4, 0x80 + beq 1f + .long 0x11c35b01 /* evldd 14,88(3) */ + .long 0x11e36301 /* ... */ + .long 0x12036b01 + .long 0x12237301 + .long 0x12437b01 + .long 0x12638301 + .long 0x12838b01 + .long 0x12a39301 + .long 0x12c39b01 + .long 0x12e3a301 + .long 0x1303ab01 + .long 0x1323b301 + .long 0x1343bb01 + .long 0x1363c301 + .long 0x1383cb01 + .long 0x13a3d301 + .long 0x13c3db01 + .long 0x13e3e301 /* evldd 31,224(3) */ + .long 0x11a3eb01 /* evldd 13,232(3) */ +1: mtlr 0 +#else lfd 14,88(3) lfd 15,96(3) lfd 16,104(3) diff --git a/lib/libc/musl/src/setjmp/powerpc/setjmp.S b/lib/libc/musl/src/setjmp/powerpc/setjmp.S index cd91a207f5..f1fcce339e 100644 --- a/lib/libc/musl/src/setjmp/powerpc/setjmp.S +++ b/lib/libc/musl/src/setjmp/powerpc/setjmp.S @@ -37,7 +37,37 @@ setjmp: stw 29, 72(3) stw 30, 76(3) stw 31, 80(3) -#ifndef _SOFT_FLOAT +#if defined(_SOFT_FLOAT) || defined(__NO_FPRS__) + mflr 0 + bl 1f + .hidden __hwcap + .long __hwcap-. +1: mflr 4 + lwz 5, 0(4) + lwzx 4, 4, 5 + andis. 4, 4, 0x80 + beq 1f + .long 0x11c35b21 /* evstdd 14,88(3) */ + .long 0x11e36321 /* ... */ + .long 0x12036b21 + .long 0x12237321 + .long 0x12437b21 + .long 0x12638321 + .long 0x12838b21 + .long 0x12a39321 + .long 0x12c39b21 + .long 0x12e3a321 + .long 0x1303ab21 + .long 0x1323b321 + .long 0x1343bb21 + .long 0x1363c321 + .long 0x1383cb21 + .long 0x13a3d321 + .long 0x13c3db21 + .long 0x13e3e321 /* evstdd 31,224(3) */ + .long 0x11a3eb21 /* evstdd 13,232(3) */ +1: mtlr 0 +#else stfd 14,88(3) stfd 15,96(3) stfd 16,104(3) diff --git a/lib/libc/musl/src/signal/block.c b/lib/libc/musl/src/signal/block.c index d7f6100134..cc8698f0bb 100644 --- a/lib/libc/musl/src/signal/block.c +++ b/lib/libc/musl/src/signal/block.c @@ -3,9 +3,9 @@ #include <signal.h> static const unsigned long all_mask[] = { -#if ULONG_MAX == 0xffffffff && _NSIG == 129 +#if ULONG_MAX == 0xffffffff && _NSIG > 65 -1UL, -1UL, -1UL, -1UL -#elif ULONG_MAX == 0xffffffff +#elif ULONG_MAX == 0xffffffff || _NSIG > 65 -1UL, -1UL #else -1UL diff --git a/lib/libc/musl/src/stdio/fgetws.c b/lib/libc/musl/src/stdio/fgetws.c index b08b30491a..195cb4355a 100644 --- a/lib/libc/musl/src/stdio/fgetws.c +++ b/lib/libc/musl/src/stdio/fgetws.c @@ -1,6 +1,5 @@ #include "stdio_impl.h" #include <wchar.h> -#include <errno.h> wint_t __fgetwc_unlocked(FILE *); @@ -12,10 +11,6 @@ wchar_t *fgetws(wchar_t *restrict s, int n, FILE *restrict f) FLOCK(f); - /* Setup a dummy errno so we can detect EILSEQ. This is - * the only way to catch encoding errors in the form of a - * partial character just before EOF. */ - errno = EAGAIN; for (; n; n--) { wint_t c = __fgetwc_unlocked(f); if (c == WEOF) break; @@ -23,7 +18,7 @@ wchar_t *fgetws(wchar_t *restrict s, int n, FILE *restrict f) if (c == '\n') break; } *p = 0; - if (ferror(f) || errno==EILSEQ) p = s; + if (ferror(f)) p = s; FUNLOCK(f); diff --git a/lib/libc/musl/src/stdio/fseek.c b/lib/libc/musl/src/stdio/fseek.c index 439308f757..c07f7e9526 100644 --- a/lib/libc/musl/src/stdio/fseek.c +++ b/lib/libc/musl/src/stdio/fseek.c @@ -1,7 +1,14 @@ #include "stdio_impl.h" +#include <errno.h> int __fseeko_unlocked(FILE *f, off_t off, int whence) { + /* Fail immediately for invalid whence argument. */ + if (whence != SEEK_CUR && whence != SEEK_SET && whence != SEEK_END) { + errno = EINVAL; + return -1; + } + /* Adjust relative offset for unread data in buffer, if any. */ if (whence == SEEK_CUR && f->rend) off -= f->rend - f->rpos; diff --git a/lib/libc/musl/src/stdio/getdelim.c b/lib/libc/musl/src/stdio/getdelim.c index d2f5b15ab1..df114441c7 100644 --- a/lib/libc/musl/src/stdio/getdelim.c +++ b/lib/libc/musl/src/stdio/getdelim.c @@ -55,9 +55,11 @@ ssize_t getdelim(char **restrict s, size_t *restrict n, int delim, FILE *restric *s = tmp; *n = m; } - memcpy(*s+i, f->rpos, k); - f->rpos += k; - i += k; + if (k) { + memcpy(*s+i, f->rpos, k); + f->rpos += k; + i += k; + } if (z) break; if ((c = getc_unlocked(f)) == EOF) { if (!i || !feof(f)) { diff --git a/lib/libc/musl/src/stdio/popen.c b/lib/libc/musl/src/stdio/popen.c index 92cb57ee93..3ec833941c 100644 --- a/lib/libc/musl/src/stdio/popen.c +++ b/lib/libc/musl/src/stdio/popen.c @@ -31,25 +31,12 @@ FILE *popen(const char *cmd, const char *mode) __syscall(SYS_close, p[1]); return NULL; } - FLOCK(f); - - /* If the child's end of the pipe happens to already be on the final - * fd number to which it will be assigned (either 0 or 1), it must - * be moved to a different fd. Otherwise, there is no safe way to - * remove the close-on-exec flag in the child without also creating - * a file descriptor leak race condition in the parent. */ - if (p[1-op] == 1-op) { - int tmp = fcntl(1-op, F_DUPFD_CLOEXEC, 0); - if (tmp < 0) { - e = errno; - goto fail; - } - __syscall(SYS_close, p[1-op]); - p[1-op] = tmp; - } e = ENOMEM; if (!posix_spawn_file_actions_init(&fa)) { + for (FILE *l = *__ofl_lock(); l; l=l->next) + if (l->pipe_pid && posix_spawn_file_actions_addclose(&fa, l->fd)) + goto fail; if (!posix_spawn_file_actions_adddup2(&fa, p[1-op], 1-op)) { if (!(e = posix_spawn(&pid, "/bin/sh", &fa, 0, (char *[]){ "sh", "-c", (char *)cmd, 0 }, __environ))) { @@ -58,13 +45,14 @@ FILE *popen(const char *cmd, const char *mode) if (!strchr(mode, 'e')) fcntl(p[op], F_SETFD, 0); __syscall(SYS_close, p[1-op]); - FUNLOCK(f); + __ofl_unlock(); return f; } } +fail: + __ofl_unlock(); posix_spawn_file_actions_destroy(&fa); } -fail: fclose(f); __syscall(SYS_close, p[1-op]); diff --git a/lib/libc/musl/src/stdlib/qsort.c b/lib/libc/musl/src/stdlib/qsort.c index da58fd3177..314ddc29da 100644 --- a/lib/libc/musl/src/stdlib/qsort.c +++ b/lib/libc/musl/src/stdlib/qsort.c @@ -24,6 +24,7 @@ /* Smoothsort, an adaptive variant of Heapsort. Memory usage: O(1). Run time: Worst case O(n log n), close to O(n) in the mostly-sorted case. */ +#define _BSD_SOURCE #include <stdint.h> #include <stdlib.h> #include <string.h> @@ -31,7 +32,7 @@ #include "atomic.h" #define ntz(x) a_ctz_l((x)) -typedef int (*cmpfun)(const void *, const void *); +typedef int (*cmpfun)(const void *, const void *, void *); static inline int pntz(size_t p[2]) { int r = ntz(p[0] - 1); @@ -88,7 +89,7 @@ static inline void shr(size_t p[2], int n) p[1] >>= n; } -static void sift(unsigned char *head, size_t width, cmpfun cmp, int pshift, size_t lp[]) +static void sift(unsigned char *head, size_t width, cmpfun cmp, void *arg, int pshift, size_t lp[]) { unsigned char *rt, *lf; unsigned char *ar[14 * sizeof(size_t) + 1]; @@ -99,10 +100,10 @@ static void sift(unsigned char *head, size_t width, cmpfun cmp, int pshift, size rt = head - width; lf = head - width - lp[pshift - 2]; - if((*cmp)(ar[0], lf) >= 0 && (*cmp)(ar[0], rt) >= 0) { + if(cmp(ar[0], lf, arg) >= 0 && cmp(ar[0], rt, arg) >= 0) { break; } - if((*cmp)(lf, rt) >= 0) { + if(cmp(lf, rt, arg) >= 0) { ar[i++] = lf; head = lf; pshift -= 1; @@ -115,7 +116,7 @@ static void sift(unsigned char *head, size_t width, cmpfun cmp, int pshift, size cycle(width, ar, i); } -static void trinkle(unsigned char *head, size_t width, cmpfun cmp, size_t pp[2], int pshift, int trusty, size_t lp[]) +static void trinkle(unsigned char *head, size_t width, cmpfun cmp, void *arg, size_t pp[2], int pshift, int trusty, size_t lp[]) { unsigned char *stepson, *rt, *lf; @@ -130,13 +131,13 @@ static void trinkle(unsigned char *head, size_t width, cmpfun cmp, size_t pp[2], ar[0] = head; while(p[0] != 1 || p[1] != 0) { stepson = head - lp[pshift]; - if((*cmp)(stepson, ar[0]) <= 0) { + if(cmp(stepson, ar[0], arg) <= 0) { break; } if(!trusty && pshift > 1) { rt = head - width; lf = head - width - lp[pshift - 2]; - if((*cmp)(rt, stepson) >= 0 || (*cmp)(lf, stepson) >= 0) { + if(cmp(rt, stepson, arg) >= 0 || cmp(lf, stepson, arg) >= 0) { break; } } @@ -150,11 +151,11 @@ static void trinkle(unsigned char *head, size_t width, cmpfun cmp, size_t pp[2], } if(!trusty) { cycle(width, ar, i); - sift(head, width, cmp, pshift, lp); + sift(head, width, cmp, arg, pshift, lp); } } -void qsort(void *base, size_t nel, size_t width, cmpfun cmp) +void __qsort_r(void *base, size_t nel, size_t width, cmpfun cmp, void *arg) { size_t lp[12*sizeof(size_t)]; size_t i, size = width * nel; @@ -173,16 +174,16 @@ void qsort(void *base, size_t nel, size_t width, cmpfun cmp) while(head < high) { if((p[0] & 3) == 3) { - sift(head, width, cmp, pshift, lp); + sift(head, width, cmp, arg, pshift, lp); shr(p, 2); pshift += 2; } else { if(lp[pshift - 1] >= high - head) { - trinkle(head, width, cmp, p, pshift, 0, lp); + trinkle(head, width, cmp, arg, p, pshift, 0, lp); } else { - sift(head, width, cmp, pshift, lp); + sift(head, width, cmp, arg, pshift, lp); } - + if(pshift == 1) { shl(p, 1); pshift = 0; @@ -191,12 +192,12 @@ void qsort(void *base, size_t nel, size_t width, cmpfun cmp) pshift = 1; } } - + p[0] |= 1; head += width; } - trinkle(head, width, cmp, p, pshift, 0, lp); + trinkle(head, width, cmp, arg, p, pshift, 0, lp); while(pshift != 1 || p[0] != 1 || p[1] != 0) { if(pshift <= 1) { @@ -208,11 +209,13 @@ void qsort(void *base, size_t nel, size_t width, cmpfun cmp) pshift -= 2; p[0] ^= 7; shr(p, 1); - trinkle(head - lp[pshift] - width, width, cmp, p, pshift + 1, 1, lp); + trinkle(head - lp[pshift] - width, width, cmp, arg, p, pshift + 1, 1, lp); shl(p, 1); p[0] |= 1; - trinkle(head - width, width, cmp, p, pshift, 1, lp); + trinkle(head - width, width, cmp, arg, p, pshift, 1, lp); } head -= width; } } + +weak_alias(__qsort_r, qsort_r); diff --git a/lib/libc/musl/src/stdlib/qsort_nr.c b/lib/libc/musl/src/stdlib/qsort_nr.c new file mode 100644 index 0000000000..efe7ccecd1 --- /dev/null +++ b/lib/libc/musl/src/stdlib/qsort_nr.c @@ -0,0 +1,14 @@ +#define _BSD_SOURCE +#include <stdlib.h> + +typedef int (*cmpfun)(const void *, const void *); + +static int wrapper_cmp(const void *v1, const void *v2, void *cmp) +{ + return ((cmpfun)cmp)(v1, v2); +} + +void qsort(void *base, size_t nel, size_t width, cmpfun cmp) +{ + __qsort_r(base, nel, width, wrapper_cmp, cmp); +} diff --git a/lib/libc/musl/src/stdlib/strtod.c b/lib/libc/musl/src/stdlib/strtod.c index a5d0118a2d..39b9daada8 100644 --- a/lib/libc/musl/src/stdlib/strtod.c +++ b/lib/libc/musl/src/stdlib/strtod.c @@ -28,10 +28,3 @@ long double strtold(const char *restrict s, char **restrict p) { return strtox(s, p, 2); } - -weak_alias(strtof, strtof_l); -weak_alias(strtod, strtod_l); -weak_alias(strtold, strtold_l); -weak_alias(strtof, __strtof_l); -weak_alias(strtod, __strtod_l); -weak_alias(strtold, __strtold_l); diff --git a/lib/libc/musl/src/thread/pthread_getname_np.c b/lib/libc/musl/src/thread/pthread_getname_np.c new file mode 100644 index 0000000000..85504e45dc --- /dev/null +++ b/lib/libc/musl/src/thread/pthread_getname_np.c @@ -0,0 +1,25 @@ +#define _GNU_SOURCE +#include <fcntl.h> +#include <unistd.h> +#include <sys/prctl.h> + +#include "pthread_impl.h" + +int pthread_getname_np(pthread_t thread, char *name, size_t len) +{ + int fd, cs, status = 0; + char f[sizeof "/proc/self/task//comm" + 3*sizeof(int)]; + + if (len < 16) return ERANGE; + + if (thread == pthread_self()) + return prctl(PR_GET_NAME, (unsigned long)name, 0UL, 0UL, 0UL) ? errno : 0; + + snprintf(f, sizeof f, "/proc/self/task/%d/comm", thread->tid); + pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs); + if ((fd = open(f, O_RDONLY|O_CLOEXEC)) < 0 || (len = read(fd, name, len)) == -1) status = errno; + else name[len-1] = 0; /* remove trailing new line only if successful */ + if (fd >= 0) close(fd); + pthread_setcancelstate(cs, 0); + return status; +} diff --git a/lib/libc/musl/src/thread/pthread_setname_np.c b/lib/libc/musl/src/thread/pthread_setname_np.c index 82d35e17ed..fc2d230618 100644 --- a/lib/libc/musl/src/thread/pthread_setname_np.c +++ b/lib/libc/musl/src/thread/pthread_setname_np.c @@ -19,7 +19,7 @@ int pthread_setname_np(pthread_t thread, const char *name) snprintf(f, sizeof f, "/proc/self/task/%d/comm", thread->tid); pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs); - if ((fd = open(f, O_WRONLY)) < 0 || write(fd, name, len) < 0) status = errno; + if ((fd = open(f, O_WRONLY|O_CLOEXEC)) < 0 || write(fd, name, len) < 0) status = errno; if (fd >= 0) close(fd); pthread_setcancelstate(cs, 0); return status; diff --git a/lib/libc/musl/src/time/__tz.c b/lib/libc/musl/src/time/__tz.c index 09a6317e6b..c34b3eb755 100644 --- a/lib/libc/musl/src/time/__tz.c +++ b/lib/libc/musl/src/time/__tz.c @@ -4,6 +4,7 @@ #include <stdlib.h> #include <string.h> #include <sys/mman.h> +#include <ctype.h> #include "libc.h" #include "lock.h" #include "fork_impl.h" @@ -154,10 +155,21 @@ static void do_tzset() } if (old_tz) memcpy(old_tz, s, i+1); + int posix_form = 0; + if (*s != ':') { + p = s; + char dummy_name[TZNAME_MAX+1]; + getname(dummy_name, &p); + if (p!=s && (*p == '+' || *p == '-' || isdigit(*p) + || !strcmp(dummy_name, "UTC") + || !strcmp(dummy_name, "GMT"))) + posix_form = 1; + } + /* Non-suid can use an absolute tzfile pathname or a relative * pathame beginning with "."; in secure mode, only the * standard path will be searched. */ - if (*s == ':' || ((p=strchr(s, '/')) && !memchr(s, ',', p-s))) { + if (!posix_form) { if (*s == ':') s++; if (*s == '/' || *s == '.') { if (!libc.secure || !strcmp(s, "/etc/localtime")) @@ -281,22 +293,20 @@ static size_t scan_trans(long long t, int local, size_t *alt) n = (index-trans)>>scale; if (a == n-1) return -1; if (a == 0) { - x = zi_read32(trans + (a<<scale)); - if (scale == 3) x = x<<32 | zi_read32(trans + (a<<scale) + 4); + x = zi_read32(trans); + if (scale == 3) x = x<<32 | zi_read32(trans + 4); else x = (int32_t)x; - if (local) off = (int32_t)zi_read32(types + 6 * index[a-1]); + /* Find the lowest non-DST type, or 0 if none. */ + size_t j = 0; + for (size_t i=abbrevs-types; i; i-=6) { + if (!types[i-6+4]) j = i-6; + } + if (local) off = (int32_t)zi_read32(types + j); + /* If t is before first transition, use the above-found type + * and the index-zero (after transition) type as the alt. */ if (t - off < (int64_t)x) { - for (a=0; a<(abbrevs-types)/6; a++) { - if (types[6*a+4] != types[4]) break; - } - if (a == (abbrevs-types)/6) a = 0; - if (types[6*a+4]) { - *alt = a; - return 0; - } else { - *alt = 0; - return a; - } + if (alt) *alt = index[0]; + return j/6; } } diff --git a/lib/libc/musl/src/unistd/nice.c b/lib/libc/musl/src/unistd/nice.c index 6c25c8c326..1c2295ffc6 100644 --- a/lib/libc/musl/src/unistd/nice.c +++ b/lib/libc/musl/src/unistd/nice.c @@ -1,4 +1,5 @@ #include <unistd.h> +#include <errno.h> #include <sys/resource.h> #include <limits.h> #include "syscall.h" @@ -12,5 +13,11 @@ int nice(int inc) prio += getpriority(PRIO_PROCESS, 0); if (prio > NZERO-1) prio = NZERO-1; if (prio < -NZERO) prio = -NZERO; - return setpriority(PRIO_PROCESS, 0, prio) ? -1 : prio; + if (setpriority(PRIO_PROCESS, 0, prio)) { + if (errno == EACCES) + errno = EPERM; + return -1; + } else { + return prio; + } } |
