Commit 1135c9523b

Andrew Kelley <andrew@ziglang.org>
2019-10-17 17:47:57
update musl headers to v1.1.24
1 parent 0cb1c16
lib/libc/include/aarch64-linux-musl/bits/hwcap.h
@@ -29,4 +29,12 @@
 #define HWCAP_SSBS		(1 << 28)
 #define HWCAP_SB		(1 << 29)
 #define HWCAP_PACA		(1 << 30)
-#define HWCAP_PACG		(1UL << 31)
\ No newline at end of file
+#define HWCAP_PACG		(1UL << 31)
+
+#define HWCAP2_DCPODP		(1 << 0)
+#define HWCAP2_SVE2		(1 << 1)
+#define HWCAP2_SVEAES		(1 << 2)
+#define HWCAP2_SVEPMULL		(1 << 3)
+#define HWCAP2_SVEBITPERM	(1 << 4)
+#define HWCAP2_SVESHA3		(1 << 5)
+#define HWCAP2_SVESM4		(1 << 6)
\ No newline at end of file
lib/libc/include/aarch64-linux-musl/bits/ipc.h
@@ -1,14 +0,0 @@
-struct ipc_perm {
-	key_t __ipc_perm_key;
-	uid_t uid;
-	gid_t gid;
-	uid_t cuid;
-	gid_t cgid;
-	mode_t mode;
-	unsigned short __ipc_perm_seq;
-
-	unsigned long __pad1;
-	unsigned long __pad2;
-};
-
-#define IPC_64 0
\ No newline at end of file
lib/libc/include/aarch64-linux-musl/bits/posix.h
@@ -1,2 +0,0 @@
-#define _POSIX_V6_LP64_OFF64  1
-#define _POSIX_V7_LP64_OFF64  1
\ No newline at end of file
lib/libc/include/aarch64-linux-musl/bits/reg.h
@@ -1,2 +0,0 @@
-#undef __WORDSIZE
-#define __WORDSIZE 64
\ No newline at end of file
lib/libc/include/aarch64-linux-musl/bits/syscall.h
@@ -281,6 +281,12 @@
 #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 SYS_io_setup 0
 #define SYS_io_destroy 1
@@ -564,4 +570,10 @@
 #define SYS_pidfd_send_signal 424
 #define SYS_io_uring_setup 425
 #define SYS_io_uring_enter 426
-#define SYS_io_uring_register 427
\ No newline at end of file
+#define SYS_io_uring_register 427
+#define SYS_open_tree		428
+#define SYS_move_mount		429
+#define SYS_fsopen		430
+#define SYS_fsconfig		431
+#define SYS_fsmount		432
+#define SYS_fspick		433
\ No newline at end of file
lib/libc/include/powerpc64-linux-musl/bits/limits.h โ†’ lib/libc/include/arm-linux-musl/bits/limits.h
@@ -1,7 +1,7 @@
 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
  || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define LONG_BIT 64
+#define LONG_BIT 32
 #endif
 
-#define LONG_MAX  0x7fffffffffffffffL
+#define LONG_MAX  0x7fffffffL
 #define LLONG_MAX  0x7fffffffffffffffLL
\ No newline at end of file
lib/libc/include/arm-linux-musl/bits/posix.h
@@ -0,0 +1,2 @@
+#define _POSIX_V6_ILP32_OFFBIG  1
+#define _POSIX_V7_ILP32_OFFBIG  1
\ No newline at end of file
lib/libc/include/arm-linux-musl/bits/reg.h
@@ -0,0 +1,3 @@
+#undef __WORDSIZE
+#define __WORDSIZE 32
+/* FIXME */
\ No newline at end of file
lib/libc/include/aarch64-linux-musl/bits/sem.h โ†’ lib/libc/include/arm-linux-musl/bits/sem.h
@@ -1,14 +1,16 @@
 struct semid_ds {
 	struct ipc_perm sem_perm;
 	time_t sem_otime;
+	long __unused1;
 	time_t sem_ctime;
+	long __unused2;
 #if __BYTE_ORDER == __LITTLE_ENDIAN
 	unsigned short sem_nsems;
-	char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
+	char __sem_nsems_pad[sizeof(long)-sizeof(short)];
 #else
-	char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
+	char __sem_nsems_pad[sizeof(long)-sizeof(short)];
 	unsigned short sem_nsems;
 #endif
-	time_t __unused3;
-	time_t __unused4;
+	long __unused3;
+	long __unused4;
 };
\ No newline at end of file
lib/libc/include/aarch64-linux-musl/bits/stat.h โ†’ lib/libc/include/arm-linux-musl/bits/stat.h
@@ -1,18 +1,21 @@
+/* copied from kernel definition, but with padding replaced
+ * by the corresponding correctly-sized userspace types. */
+
 struct stat {
 	dev_t st_dev;
-	ino_t st_ino;
+	int __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;
-	unsigned long __pad;
+	int __st_rdev_padding;
 	off_t st_size;
 	blksize_t st_blksize;
-	int __pad2;
 	blkcnt_t st_blocks;
 	struct timespec st_atim;
 	struct timespec st_mtim;
 	struct timespec st_ctim;
-	unsigned __unused[2];
+	ino_t st_ino;
 };
\ No newline at end of file
lib/libc/include/arm-linux-musl/bits/syscall.h
@@ -381,6 +381,12 @@
 #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 __ARM_NR_breakpoint	0x0f0001
 #define __ARM_NR_cacheflush	0x0f0002
@@ -771,4 +777,10 @@
 #define SYS_pidfd_send_signal	424
 #define SYS_io_uring_setup	425
 #define SYS_io_uring_enter	426
-#define SYS_io_uring_register	427
\ No newline at end of file
+#define SYS_io_uring_register	427
+#define SYS_open_tree		428
+#define SYS_move_mount		429
+#define SYS_fsopen		430
+#define SYS_fsconfig		431
+#define SYS_fsmount		432
+#define SYS_fspick		433
\ No newline at end of file
lib/libc/include/generic-musl/bits/ipc.h
@@ -8,6 +8,4 @@ struct ipc_perm {
 	int __ipc_perm_seq;
 	long __pad1;
 	long __pad2;
-};
-
-#define IPC_64 0x100
\ No newline at end of file
+};
\ No newline at end of file
lib/libc/include/generic-musl/bits/ipcstat.h
@@ -0,0 +1,1 @@
+#define IPC_STAT 2
\ No newline at end of file
lib/libc/include/generic-musl/bits/limits.h
@@ -1,7 +1,7 @@
 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
  || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define LONG_BIT 32
+#define LONG_BIT 64
 #endif
 
-#define LONG_MAX  0x7fffffffL
+#define LONG_MAX  0x7fffffffffffffffL
 #define LLONG_MAX  0x7fffffffffffffffLL
\ No newline at end of file
lib/libc/include/generic-musl/bits/msg.h
@@ -8,6 +8,5 @@ struct msqid_ds {
 	msglen_t msg_qbytes;
 	pid_t msg_lspid;
 	pid_t msg_lrpid;
-	unsigned long __pad1;
-	unsigned long __pad2;
+	unsigned long __unused[2];
 };
\ No newline at end of file
lib/libc/include/generic-musl/bits/posix.h
@@ -1,2 +1,2 @@
-#define _POSIX_V6_ILP32_OFFBIG  1
-#define _POSIX_V7_ILP32_OFFBIG  1
\ No newline at end of file
+#define _POSIX_V6_LP64_OFF64  1
+#define _POSIX_V7_LP64_OFF64  1
\ No newline at end of file
lib/libc/include/generic-musl/bits/reg.h
@@ -1,3 +1,2 @@
 #undef __WORDSIZE
-#define __WORDSIZE 32
-/* FIXME */
\ No newline at end of file
+#define __WORDSIZE 64
\ No newline at end of file
lib/libc/include/generic-musl/bits/sem.h
@@ -1,16 +1,14 @@
 struct semid_ds {
 	struct ipc_perm sem_perm;
 	time_t sem_otime;
-	time_t __unused1;
 	time_t sem_ctime;
-	time_t __unused2;
 #if __BYTE_ORDER == __LITTLE_ENDIAN
 	unsigned short sem_nsems;
-	char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
+	char __sem_nsems_pad[sizeof(long)-sizeof(short)];
 #else
-	char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
+	char __sem_nsems_pad[sizeof(long)-sizeof(short)];
 	unsigned short sem_nsems;
 #endif
-	time_t __unused3;
-	time_t __unused4;
+	long __unused3;
+	long __unused4;
 };
\ No newline at end of file
lib/libc/include/generic-musl/bits/stat.h
@@ -1,21 +1,18 @@
-/* copied from kernel definition, but with padding replaced
- * by the corresponding correctly-sized userspace types. */
-
 struct stat {
 	dev_t st_dev;
-	int __st_dev_padding;
-	long __st_ino_truncated;
+	ino_t st_ino;
 	mode_t st_mode;
 	nlink_t st_nlink;
 	uid_t st_uid;
 	gid_t st_gid;
 	dev_t st_rdev;
-	int __st_rdev_padding;
+	unsigned long __pad;
 	off_t st_size;
 	blksize_t st_blksize;
+	int __pad2;
 	blkcnt_t st_blocks;
 	struct timespec st_atim;
 	struct timespec st_mtim;
 	struct timespec st_ctim;
-	ino_t st_ino;
+	unsigned __unused[2];
 };
\ No newline at end of file
lib/libc/include/generic-musl/netinet/if_ether.h
@@ -76,6 +76,7 @@
 #define ETH_P_QINQ2	0x9200
 #define ETH_P_QINQ3	0x9300
 #define ETH_P_EDSA	0xDADA
+#define ETH_P_DSA_8021Q	0xDADB
 #define ETH_P_IFE	0xED3E
 #define ETH_P_AF_IUCV	0xFBFB
 
lib/libc/include/generic-musl/sys/ipc.h
@@ -22,6 +22,7 @@ extern "C" {
 #endif
 
 #include <bits/ipc.h>
+#include <bits/ipcstat.h>
 
 #define IPC_CREAT  01000
 #define IPC_EXCL   02000
@@ -29,7 +30,6 @@ extern "C" {
 
 #define IPC_RMID 0
 #define IPC_SET  1
-#define IPC_STAT 2
 #define IPC_INFO 3
 
 #define IPC_PRIVATE ((key_t) 0)
lib/libc/include/generic-musl/sys/msg.h
@@ -25,9 +25,9 @@ typedef unsigned long msglen_t;
 #define MSG_NOERROR 010000
 #define MSG_EXCEPT  020000
 
-#define MSG_STAT 11
+#define MSG_STAT (11 | (IPC_STAT & 0x100))
 #define MSG_INFO 12
-#define MSG_STAT_ANY 13
+#define MSG_STAT_ANY (13 | (IPC_STAT & 0x100))
 
 struct msginfo {
 	int msgpool, msgmap, msgmax, msgmnb, msgmni, msgssz, msgtql;
lib/libc/include/generic-musl/sys/sem.h
@@ -31,9 +31,9 @@ extern "C" {
 
 #define _SEM_SEMUN_UNDEFINED 1
 
-#define SEM_STAT 18
+#define SEM_STAT (18 | (IPC_STAT & 0x100))
 #define SEM_INFO 19
-#define SEM_STAT_ANY 20
+#define SEM_STAT_ANY (20 | (IPC_STAT & 0x100))
 
 struct  seminfo {
 	int semmap;
lib/libc/include/generic-musl/sys/shm.h
@@ -33,9 +33,9 @@ extern "C" {
 
 #define SHM_LOCK 11
 #define SHM_UNLOCK 12
-#define SHM_STAT 13
+#define SHM_STAT (13 | (IPC_STAT & 0x100))
 #define SHM_INFO 14
-#define SHM_STAT_ANY 15
+#define SHM_STAT_ANY (15 | (IPC_STAT & 0x100))
 #define SHM_DEST 01000
 #define SHM_LOCKED 02000
 #define SHM_HUGETLB 04000
lib/libc/include/generic-musl/fcntl.h
@@ -100,6 +100,11 @@ int posix_fallocate(int, off_t, off_t);
 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
 #define AT_NO_AUTOMOUNT 0x800
 #define AT_EMPTY_PATH 0x1000
+#define AT_STATX_SYNC_TYPE 0x6000
+#define AT_STATX_SYNC_AS_STAT 0x0000
+#define AT_STATX_FORCE_SYNC 0x2000
+#define AT_STATX_DONT_SYNC 0x4000
+#define AT_RECURSIVE 0x8000
 
 #define FAPPEND O_APPEND
 #define FFSYNC O_SYNC
lib/libc/include/generic-musl/glob.h
@@ -31,6 +31,9 @@ void globfree(glob_t *);
 #define GLOB_NOESCAPE 0x40
 #define	GLOB_PERIOD   0x80
 
+#define GLOB_TILDE       0x1000
+#define GLOB_TILDE_CHECK 0x4000
+
 #define GLOB_NOSPACE 1
 #define GLOB_ABORTED 2
 #define GLOB_NOMATCH 3
lib/libc/include/generic-musl/sched.h
@@ -18,10 +18,12 @@ extern "C" {
 
 struct sched_param {
 	int sched_priority;
-	int sched_ss_low_priority;
-	struct timespec sched_ss_repl_period;
-	struct timespec sched_ss_init_budget;
-	int sched_ss_max_repl;
+	int __reserved1;
+	struct {
+		time_t __reserved1;
+		long __reserved2;
+	} __reserved2[2];
+	int __reserved3;
 };
 
 int    sched_get_priority_max(int);
@@ -47,6 +49,7 @@ int     sched_yield(void);
 #define CLONE_FS	0x00000200
 #define CLONE_FILES	0x00000400
 #define CLONE_SIGHAND	0x00000800
+#define CLONE_PIDFD	0x00001000
 #define CLONE_PTRACE	0x00002000
 #define CLONE_VFORK	0x00004000
 #define CLONE_PARENT	0x00008000
lib/libc/include/generic-musl/spawn.h
@@ -71,6 +71,11 @@ int posix_spawn_file_actions_addopen(posix_spawn_file_actions_t *__restrict, int
 int posix_spawn_file_actions_addclose(posix_spawn_file_actions_t *, int);
 int posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t *, int, int);
 
+#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE)
+int posix_spawn_file_actions_addchdir_np(posix_spawn_file_actions_t *__restrict, const char *__restrict);
+int posix_spawn_file_actions_addfchdir_np(posix_spawn_file_actions_t *, int);
+#endif
+
 #ifdef __cplusplus
 }
 #endif
lib/libc/include/generic-musl/stdlib.h
@@ -152,6 +152,7 @@ int ptsname_r(int, char *, size_t);
 char *ecvt(double, int, int *, int *);
 char *fcvt(double, int, int *, int *);
 char *gcvt(double, int, char *);
+char *secure_getenv(const char *);
 struct __locale_struct;
 float strtof_l(const char *__restrict, char **__restrict, struct __locale_struct *);
 double strtod_l(const char *__restrict, char **__restrict, struct __locale_struct *);
lib/libc/include/generic-musl/unistd.h
@@ -176,6 +176,7 @@ long syscall(long, ...);
 int execvpe(const char *, char *const [], char *const []);
 int issetugid(void);
 int getentropy(void *, size_t);
+extern int optreset;
 #endif
 
 #ifdef _GNU_SOURCE
@@ -188,6 +189,7 @@ char *get_current_dir_name(void);
 int syncfs(int);
 int euidaccess(const char *, int);
 int eaccess(const char *, int);
+ssize_t copy_file_range(int, off_t *, int, off_t *, size_t, unsigned);
 #endif
 
 #if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
lib/libc/include/i386-linux-musl/bits/posix.h
@@ -0,0 +1,2 @@
+#define _POSIX_V6_ILP32_OFFBIG  1
+#define _POSIX_V7_ILP32_OFFBIG  1
\ No newline at end of file
lib/libc/include/i386-linux-musl/bits/sem.h
@@ -0,0 +1,11 @@
+struct semid_ds {
+	struct ipc_perm sem_perm;
+	time_t sem_otime;
+	long __unused1;
+	time_t sem_ctime;
+	long __unused2;
+	unsigned short sem_nsems;
+	char __sem_nsems_pad[sizeof(long)-sizeof(short)];
+	long __unused3;
+	long __unused4;
+};
\ No newline at end of file
lib/libc/include/riscv64-linux-musl/bits/stat.h โ†’ lib/libc/include/i386-linux-musl/bits/stat.h
@@ -1,18 +1,21 @@
+/* copied from kernel definition, but with padding replaced
+ * by the corresponding correctly-sized userspace types. */
+
 struct stat {
 	dev_t st_dev;
-	ino_t st_ino;
+	int __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;
-	unsigned long __pad;
+	int __st_rdev_padding;
 	off_t st_size;
 	blksize_t st_blksize;
-	int __pad2;
 	blkcnt_t st_blocks;
 	struct timespec st_atim;
 	struct timespec st_mtim;
 	struct timespec st_ctim;
-	unsigned __unused[2];
+	ino_t st_ino;
 };
\ No newline at end of file
lib/libc/include/i386-linux-musl/bits/syscall.h
@@ -418,6 +418,12 @@
 #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 SYS_restart_syscall      0
 #define SYS_exit		  1
@@ -836,4 +842,10 @@
 #define SYS_pidfd_send_signal	424
 #define SYS_io_uring_setup	425
 #define SYS_io_uring_enter	426
-#define SYS_io_uring_register	427
\ No newline at end of file
+#define SYS_io_uring_register	427
+#define SYS_open_tree		428
+#define SYS_move_mount		429
+#define SYS_fsopen		430
+#define SYS_fsconfig		431
+#define SYS_fsmount		432
+#define SYS_fspick		433
\ No newline at end of file
lib/libc/include/aarch64-linux-musl/bits/limits.h โ†’ lib/libc/include/mips-linux-musl/bits/limits.h
@@ -1,7 +1,7 @@
 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
  || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define LONG_BIT 64
+#define LONG_BIT 32
 #endif
 
-#define LONG_MAX  0x7fffffffffffffffL
+#define LONG_MAX  0x7fffffffL
 #define LLONG_MAX  0x7fffffffffffffffLL
\ No newline at end of file
lib/libc/include/mips-linux-musl/bits/posix.h
@@ -0,0 +1,2 @@
+#define _POSIX_V6_ILP32_OFFBIG  1
+#define _POSIX_V7_ILP32_OFFBIG  1
\ No newline at end of file
lib/libc/include/mips-linux-musl/bits/sem.h
@@ -1,14 +0,0 @@
-struct semid_ds {
-	struct ipc_perm sem_perm;
-	time_t sem_otime;
-	time_t sem_ctime;
-#if __BYTE_ORDER == __LITTLE_ENDIAN
-	unsigned short sem_nsems;
-	char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
-#else
-	char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
-	unsigned short sem_nsems;
-#endif
-	time_t __unused3;
-	time_t __unused4;
-};
\ No newline at end of file
lib/libc/include/mips-linux-musl/bits/syscall.h
@@ -400,6 +400,12 @@
 #define __NR_io_uring_setup          4425
 #define __NR_io_uring_enter          4426
 #define __NR_io_uring_register       4427
+#define __NR_open_tree		4428
+#define __NR_move_mount		4429
+#define __NR_fsopen		4430
+#define __NR_fsconfig		4431
+#define __NR_fsmount		4432
+#define __NR_fspick		4433
 
 #define SYS_syscall                 4000
 #define SYS_exit                    4001
@@ -802,4 +808,10 @@
 #define SYS_pidfd_send_signal       4424
 #define SYS_io_uring_setup          4425
 #define SYS_io_uring_enter          4426
-#define SYS_io_uring_register       4427
\ No newline at end of file
+#define SYS_io_uring_register       4427
+#define SYS_open_tree		4428
+#define SYS_move_mount		4429
+#define SYS_fsopen		4430
+#define SYS_fsconfig		4431
+#define SYS_fsmount		4432
+#define SYS_fspick		4433
\ No newline at end of file
lib/libc/include/mips64-linux-musl/bits/ipc.h
@@ -9,6 +9,4 @@ struct ipc_perm {
 	int __pad1;
 	unsigned long __unused1;
 	unsigned long __unused2;
-};
-
-#define IPC_64 0x100
\ No newline at end of file
+};
\ No newline at end of file
lib/libc/include/mips64-linux-musl/bits/sem.h
@@ -1,14 +0,0 @@
-struct semid_ds {
-	struct ipc_perm sem_perm;
-	time_t sem_otime;
-	time_t sem_ctime;
-#if __BYTE_ORDER == __LITTLE_ENDIAN
-	unsigned short sem_nsems;
-	char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
-#else
-	char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
-	unsigned short sem_nsems;
-#endif
-	time_t __unused3;
-	time_t __unused4;
-};
\ No newline at end of file
lib/libc/include/mips64-linux-musl/bits/stat.h
@@ -1,6 +1,3 @@
-#include <string.h>
-#include <bits/alltypes.h>
-
 struct stat {
 	dev_t st_dev;
 	int __pad1[3];
lib/libc/include/mips64-linux-musl/bits/syscall.h
@@ -330,6 +330,12 @@
 #define __NR_io_uring_setup		5425
 #define __NR_io_uring_enter		5426
 #define __NR_io_uring_register		5427
+#define __NR_open_tree		5428
+#define __NR_move_mount		5429
+#define __NR_fsopen		5430
+#define __NR_fsconfig		5431
+#define __NR_fsmount		5432
+#define __NR_fspick		5433
 
 #define SYS_read			5000
 #define SYS_write			5001
@@ -662,4 +668,10 @@
 #define SYS_pidfd_send_signal		5424
 #define SYS_io_uring_setup		5425
 #define SYS_io_uring_enter		5426
-#define SYS_io_uring_register		5427
\ No newline at end of file
+#define SYS_io_uring_register		5427
+#define SYS_open_tree		5428
+#define SYS_move_mount		5429
+#define SYS_fsopen		5430
+#define SYS_fsconfig		5431
+#define SYS_fsmount		5432
+#define SYS_fspick		5433
\ No newline at end of file
lib/libc/include/powerpc-linux-musl/bits/alltypes.h
@@ -14,11 +14,19 @@ typedef __builtin_va_list __isoc_va_list;
 
 
 #ifndef __cplusplus
+#ifdef __WCHAR_TYPE__
+#if defined(__NEED_wchar_t) && !defined(__DEFINED_wchar_t)
+typedef __WCHAR_TYPE__ wchar_t;
+#define __DEFINED_wchar_t
+#endif
+
+#else
 #if defined(__NEED_wchar_t) && !defined(__DEFINED_wchar_t)
 typedef long wchar_t;
 #define __DEFINED_wchar_t
 #endif
 
+#endif
 #endif
 
 #if defined(__NEED_float_t) && !defined(__DEFINED_float_t)
lib/libc/include/powerpc-linux-musl/bits/ipc.h
@@ -9,6 +9,4 @@ struct ipc_perm {
 	int __pad1;
 	long long __pad2;
 	long long __pad3;
-};
-
-#define IPC_64 0x100
\ No newline at end of file
+};
\ No newline at end of file
lib/libc/include/riscv64-linux-musl/bits/limits.h โ†’ lib/libc/include/powerpc-linux-musl/bits/limits.h
@@ -1,7 +1,7 @@
 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
  || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-#define LONG_BIT 64
+#define LONG_BIT 32
 #endif
 
-#define LONG_MAX  0x7fffffffffffffffL
+#define LONG_MAX  0x7fffffffL
 #define LLONG_MAX  0x7fffffffffffffffLL
\ No newline at end of file
lib/libc/include/powerpc-linux-musl/bits/posix.h
@@ -0,0 +1,2 @@
+#define _POSIX_V6_ILP32_OFFBIG  1
+#define _POSIX_V7_ILP32_OFFBIG  1
\ No newline at end of file
lib/libc/include/powerpc-linux-musl/bits/reg.h
@@ -0,0 +1,3 @@
+#undef __WORDSIZE
+#define __WORDSIZE 32
+/* FIXME */
\ No newline at end of file
lib/libc/include/powerpc-linux-musl/bits/syscall.h
@@ -407,6 +407,12 @@
 #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 SYS_restart_syscall          0
 #define SYS_exit                     1
@@ -816,4 +822,10 @@
 #define SYS_pidfd_send_signal     424
 #define SYS_io_uring_setup        425
 #define SYS_io_uring_enter        426
-#define SYS_io_uring_register     427
\ No newline at end of file
+#define SYS_io_uring_register     427
+#define SYS_open_tree		428
+#define SYS_move_mount		429
+#define SYS_fsopen		430
+#define SYS_fsconfig		431
+#define SYS_fsmount		432
+#define SYS_fspick		433
\ No newline at end of file
lib/libc/include/powerpc-linux-musl/bits/user.h
@@ -1,10 +1,8 @@
-struct pt_regs {
-	unsigned long gpr[32], nip, msr, orig_gpr3, ctr, link, xer, ccr, mq;
-	unsigned long trap, dar, dsisr, result;
-};
-
 struct user {
-	struct pt_regs regs;
+	struct {
+		unsigned long gpr[32], nip, msr, orig_gpr3, ctr, link, xer, ccr, mq;
+		unsigned long trap, dar, dsisr, result;
+	} regs;
 	unsigned long u_tsize, u_dsize, u_ssize;
 	unsigned long start_code, start_data, start_stack;
 	long signal;
lib/libc/include/powerpc64-linux-musl/bits/ipc.h
@@ -9,6 +9,4 @@ struct ipc_perm {
 	int __pad1;
 	long long __pad2;
 	long long __pad3;
-};
-
-#define IPC_64 0x100
\ No newline at end of file
+};
\ No newline at end of file
lib/libc/include/powerpc64-linux-musl/bits/msg.h
@@ -1,12 +0,0 @@
-struct msqid_ds {
-	struct ipc_perm msg_perm;
-	time_t msg_stime;
-	time_t msg_rtime;
-	time_t msg_ctime;
-	unsigned long msg_cbytes;
-	msgqnum_t msg_qnum;
-	msglen_t msg_qbytes;
-	pid_t msg_lspid;
-	pid_t msg_lrpid;
-	unsigned long __unused[2];
-};
\ No newline at end of file
lib/libc/include/powerpc64-linux-musl/bits/posix.h
@@ -1,2 +0,0 @@
-#define _POSIX_V6_LP64_OFF64  1
-#define _POSIX_V7_LP64_OFF64  1
\ No newline at end of file
lib/libc/include/powerpc64-linux-musl/bits/sem.h
@@ -1,13 +0,0 @@
-#include <endian.h>
-
-struct semid_ds {
-	struct ipc_perm sem_perm;
-	time_t sem_otime;
-	time_t sem_ctime;
-#if __BYTE_ORDER == __BIG_ENDIAN
-	unsigned short __pad[3], sem_nsems;
-#else
-	unsigned short sem_nsems, __pad[3];
-#endif
-	unsigned long __unused[2];
-};
\ No newline at end of file
lib/libc/include/powerpc64-linux-musl/bits/syscall.h
@@ -379,6 +379,12 @@
 #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 SYS_restart_syscall          0
 #define SYS_exit                     1
@@ -760,4 +766,10 @@
 #define SYS_pidfd_send_signal      424
 #define SYS_io_uring_setup         425
 #define SYS_io_uring_enter         426
-#define SYS_io_uring_register      427
\ No newline at end of file
+#define SYS_io_uring_register      427
+#define SYS_open_tree		428
+#define SYS_move_mount		429
+#define SYS_fsopen		430
+#define SYS_fsconfig		431
+#define SYS_fsmount		432
+#define SYS_fspick		433
\ No newline at end of file
lib/libc/include/powerpc64-linux-musl/bits/user.h
@@ -1,10 +1,8 @@
-struct pt_regs {
-	unsigned long gpr[32], nip, msr, orig_gpr3, ctr, link, xer, ccr, softe;
-	unsigned long trap, dar, dsisr, result;
-};
-
 struct user {
-	struct pt_regs regs;
+	struct {
+		unsigned long gpr[32], nip, msr, orig_gpr3, ctr, link, xer, ccr, softe;
+		unsigned long trap, dar, dsisr, result;
+	} regs;
 	unsigned long u_tsize, u_dsize, u_ssize;
 	unsigned long start_code, start_data, start_stack;
 	long signal;
lib/libc/include/riscv64-linux-musl/bits/ipc.h
@@ -1,14 +0,0 @@
-struct ipc_perm {
-	key_t __ipc_perm_key;
-	uid_t uid;
-	gid_t gid;
-	uid_t cuid;
-	gid_t cgid;
-	mode_t mode;
-	unsigned short __ipc_perm_seq;
-
-	unsigned long __pad1;
-	unsigned long __pad2;
-};
-
-#define IPC_64 0
\ No newline at end of file
lib/libc/include/riscv64-linux-musl/bits/sem.h
@@ -1,9 +0,0 @@
-struct semid_ds {
-	struct ipc_perm sem_perm;
-	time_t sem_otime;
-	time_t sem_ctime;
-	unsigned short sem_nsems;
-	char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
-	time_t __unused3;
-	time_t __unused4;
-};
\ No newline at end of file
lib/libc/include/riscv64-linux-musl/bits/shm.h
@@ -1,25 +0,0 @@
-#define SHMLBA 4096
-
-struct shmid_ds
-{
-	struct ipc_perm shm_perm;
-	size_t shm_segsz;
-	time_t shm_atime;
-	time_t shm_dtime;
-	time_t shm_ctime;
-	pid_t shm_cpid;
-	pid_t shm_lpid;
-	unsigned long shm_nattch;
-	unsigned long __pad1;
-	unsigned long __pad2;
-};
-
-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;
-};
\ No newline at end of file
lib/libc/include/riscv64-linux-musl/bits/signal.h
@@ -6,46 +6,43 @@
 # define SIGSTKSZ 8192
 #endif
 
-/* gregs[0] holds the program counter. */
+typedef unsigned long __riscv_mc_gp_state[32];
 
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-typedef unsigned long greg_t;
-typedef unsigned long gregset_t[32];
-
-struct __riscv_f_ext_state {
-	unsigned int f[32];
-	unsigned int fcsr;
+struct __riscv_mc_f_ext_state {
+	unsigned int __f[32];
+	unsigned int __fcsr;
 };
 
-struct __riscv_d_ext_state {
-	unsigned long long f[32];
-	unsigned int fcsr;
+struct __riscv_mc_d_ext_state {
+	unsigned long long __f[32];
+	unsigned int __fcsr;
 };
 
-struct __riscv_q_ext_state {
-	unsigned long long f[64] __attribute__((aligned(16)));
-	unsigned int fcsr;
-	unsigned int reserved[3];
+struct __riscv_mc_q_ext_state {
+	unsigned long long __f[64] __attribute__((aligned(16)));
+	unsigned int __fcsr;
+	unsigned int __reserved[3];
 };
 
-union __riscv_fp_state {
-	struct __riscv_f_ext_state f;
-	struct __riscv_d_ext_state d;
-	struct __riscv_q_ext_state q;
+union __riscv_mc_fp_state {
+	struct __riscv_mc_f_ext_state __f;
+	struct __riscv_mc_d_ext_state __d;
+	struct __riscv_mc_q_ext_state __q;
 };
 
-typedef union __riscv_fp_state fpregset_t;
+typedef struct mcontext_t {
+	__riscv_mc_gp_state __gregs;
+	union __riscv_mc_fp_state __fpregs;
+} mcontext_t;
 
-typedef struct sigcontext {
+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+typedef unsigned long greg_t;
+typedef unsigned long gregset_t[32];
+typedef union __riscv_mc_fp_state fpregset_t;
+struct sigcontext {
 	gregset_t gregs;
 	fpregset_t fpregs;
-} mcontext_t;
-
-#else
-typedef struct {
-	unsigned long gregs[32];
-	unsigned long long fpregs[66];
-} mcontext_t;
+};
 #endif
 
 struct sigaltstack {
@@ -54,10 +51,10 @@ struct sigaltstack {
 	size_t ss_size;
 };
 
-typedef struct __ucontext
+typedef struct ucontext_t
 {
 	unsigned long uc_flags;
-	struct __ucontext *uc_link;
+	struct ucontext_t *uc_link;
 	stack_t uc_stack;
 	sigset_t uc_sigmask;
 	mcontext_t uc_mcontext;
lib/libc/include/riscv64-linux-musl/bits/syscall.h
@@ -273,6 +273,21 @@
 #define __NR_pkey_mprotect 288
 #define __NR_pkey_alloc 289
 #define __NR_pkey_free 290
+#define __NR_statx 291
+#define __NR_io_pgetevents 292
+#define __NR_rseq 293
+#define __NR_kexec_file_load 294
+#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_sysriscv __NR_arch_specific_syscall
 #define __NR_riscv_flush_icache (__NR_sysriscv + 15)
 #define SYS_io_setup 0
@@ -550,5 +565,19 @@
 #define SYS_pkey_mprotect 288
 #define SYS_pkey_alloc 289
 #define SYS_pkey_free 290
+#define SYS_statx 291
+#define SYS_io_pgetevents 292
+#define SYS_rseq 293
+#define SYS_kexec_file_load 294
+#define SYS_pidfd_send_signal 424
+#define SYS_io_uring_setup 425
+#define SYS_io_uring_enter 426
+#define SYS_io_uring_register 427
+#define SYS_open_tree		428
+#define SYS_move_mount		429
+#define SYS_fsopen		430
+#define SYS_fsconfig		431
+#define SYS_fsmount		432
+#define SYS_fspick		433
 #define SYS_sysriscv __NR_arch_specific_syscall
 #define SYS_riscv_flush_icache (__NR_sysriscv + 15)
\ No newline at end of file
lib/libc/include/riscv64-linux-musl/bits/user.h
@@ -1,43 +1,5 @@
-struct user_regs_struct {
-	unsigned long pc;
-	unsigned long ra;
-	unsigned long sp;
-	unsigned long gp;
-	unsigned long tp;
-	unsigned long t0;
-	unsigned long t1;
-	unsigned long t2;
-	unsigned long s0;
-	unsigned long s1;
-	unsigned long a0;
-	unsigned long a1;
-	unsigned long a2;
-	unsigned long a3;
-	unsigned long a4;
-	unsigned long a5;
-	unsigned long a6;
-	unsigned long a7;
-	unsigned long s2;
-	unsigned long s3;
-	unsigned long s4;
-	unsigned long s5;
-	unsigned long s6;
-	unsigned long s7;
-	unsigned long s8;
-	unsigned long s9;
-	unsigned long s10;
-	unsigned long s11;
-	unsigned long t3;
-	unsigned long t4;
-	unsigned long t5;
-	unsigned long t6;
-};
-
-struct user_fpregs_struct {
-	double f[32];
-	unsigned int fcsr;
-};
+#include <signal.h>
 
 #define ELF_NGREG 32
 typedef unsigned long elf_greg_t, elf_gregset_t[ELF_NGREG];
-typedef struct user_fpregs_struct elf_fpregset_t;
\ No newline at end of file
+typedef union __riscv_mc_fp_state elf_fpregset_t;
\ No newline at end of file
lib/libc/include/s390x-linux-musl/bits/ipc.h
@@ -1,14 +0,0 @@
-struct ipc_perm {
-	key_t __ipc_perm_key;
-	uid_t uid;
-	gid_t gid;
-	uid_t cuid;
-	gid_t cgid;
-	mode_t mode;
-	unsigned short __pad1;
-	unsigned short __ipc_perm_seq;
-	unsigned long __pad2;
-	unsigned long __pad3;
-};
-
-#define IPC_64 0x100
\ No newline at end of file
lib/libc/include/s390x-linux-musl/bits/msg.h
@@ -1,12 +0,0 @@
-struct msqid_ds {
-	struct ipc_perm msg_perm;
-	time_t msg_stime;
-	time_t msg_rtime;
-	time_t msg_ctime;
-	unsigned long msg_cbytes;
-	msgqnum_t msg_qnum;
-	msglen_t msg_qbytes;
-	pid_t msg_lspid;
-	pid_t msg_lrpid;
-	unsigned long __unused[2];
-};
\ No newline at end of file
lib/libc/include/s390x-linux-musl/bits/posix.h
@@ -1,2 +0,0 @@
-#define _POSIX_V6_LP64_OFF64  1
-#define _POSIX_V7_LP64_OFF64  1
\ No newline at end of file
lib/libc/include/s390x-linux-musl/bits/reg.h
@@ -1,2 +0,0 @@
-#undef __WORDSIZE
-#define __WORDSIZE 64
\ No newline at end of file
lib/libc/include/s390x-linux-musl/bits/sem.h
@@ -1,7 +0,0 @@
-struct semid_ds {
-	struct ipc_perm sem_perm;
-	time_t sem_otime;
-	time_t sem_ctime;
-	unsigned short __pad[3], sem_nsems;
-	unsigned long __unused[2];
-};
\ No newline at end of file
lib/libc/include/s390x-linux-musl/bits/syscall.h
@@ -344,6 +344,12 @@
 #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 SYS_exit                         1
 #define SYS_fork                         2
@@ -690,4 +696,10 @@
 #define SYS_pidfd_send_signal          424
 #define SYS_io_uring_setup             425
 #define SYS_io_uring_enter             426
-#define SYS_io_uring_register          427
\ No newline at end of file
+#define SYS_io_uring_register          427
+#define SYS_open_tree		428
+#define SYS_move_mount		429
+#define SYS_fsopen		430
+#define SYS_fsconfig		431
+#define SYS_fsmount		432
+#define SYS_fspick		433
\ No newline at end of file
lib/libc/include/x86_64-linux-musl/bits/ipc.h
@@ -1,13 +0,0 @@
-struct ipc_perm {
-	key_t __ipc_perm_key;
-	uid_t uid;
-	gid_t gid;
-	uid_t cuid;
-	gid_t cgid;
-	mode_t mode;
-	int __ipc_perm_seq;
-	long __pad1;
-	long __pad2;
-};
-
-#define IPC_64 0
\ No newline at end of file
lib/libc/include/x86_64-linux-musl/bits/msg.h
@@ -1,12 +0,0 @@
-struct msqid_ds {
-	struct ipc_perm msg_perm;
-	time_t msg_stime;
-	time_t msg_rtime;
-	time_t msg_ctime;
-	unsigned long msg_cbytes;
-	msgqnum_t msg_qnum;
-	msglen_t msg_qbytes;
-	pid_t msg_lspid;
-	pid_t msg_lrpid;
-	unsigned long __unused[2];
-};
\ No newline at end of file
lib/libc/include/x86_64-linux-musl/bits/posix.h
@@ -1,2 +0,0 @@
-#define _POSIX_V6_LP64_OFF64  1
-#define _POSIX_V7_LP64_OFF64  1
\ No newline at end of file
lib/libc/include/x86_64-linux-musl/bits/sem.h
@@ -0,0 +1,11 @@
+struct semid_ds {
+	struct ipc_perm sem_perm;
+	time_t sem_otime;
+	long __unused1;
+	time_t sem_ctime;
+	long __unused2;
+	unsigned short sem_nsems;
+	char __sem_nsems_pad[sizeof(long)-sizeof(short)];
+	long __unused3;
+	long __unused4;
+};
\ No newline at end of file
lib/libc/include/x86_64-linux-musl/bits/syscall.h
@@ -337,6 +337,12 @@
 #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 SYS_read				0
 #define SYS_write				1
@@ -676,4 +682,10 @@
 #define SYS_pidfd_send_signal			424
 #define SYS_io_uring_setup			425
 #define SYS_io_uring_enter			426
-#define SYS_io_uring_register			427
\ No newline at end of file
+#define SYS_io_uring_register			427
+#define SYS_open_tree		428
+#define SYS_move_mount		429
+#define SYS_fsopen		430
+#define SYS_fsconfig		431
+#define SYS_fsmount		432
+#define SYS_fspick		433
\ No newline at end of file