authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-07-29 09:22:00+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-07-31 23:04:47+02:00
log23aa045ef4565f274e6407b1e49f3c59ae379a66
treed34d7f049b163ef3876143660b9f707238794cb7
parent8a4b5424d61a4ac8947cff1b9a8481578573db67
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

libc: update glibc headers to 2.44


105 files changed, 1307 insertions(+), 2039 deletions(-)

lib/libc/include/aarch64-linux-gnu/bits/hwcap.h+18-1
......@@ -55,6 +55,21 @@
5555#define HWCAP_PACA (1 << 30)
5656#define HWCAP_PACG (1UL << 31)
5757#define HWCAP_GCS (1UL << 32)
58#define HWCAP_CMPBR (1UL << 33)
59#define HWCAP_FPRCVT (1UL << 34)
60#define HWCAP_F8MM8 (1UL << 35)
61#define HWCAP_F8MM4 (1UL << 36)
62#define HWCAP_SVE_F16MM (1UL << 37)
63#define HWCAP_SVE_ELTPERM (1UL << 38)
64#define HWCAP_SVE_AES2 (1UL << 39)
65#define HWCAP_SVE_BFSCALE (1UL << 40)
66#define HWCAP_SVE2P2 (1UL << 41)
67#define HWCAP_SME2P2 (1UL << 42)
68#define HWCAP_SME_SBITPERM (1UL << 43)
69#define HWCAP_SME_AES (1UL << 44)
70#define HWCAP_SME_SFEXPA (1UL << 45)
71#define HWCAP_SME_STMOP (1UL << 46)
72#define HWCAP_SME_SMOP4 (1UL << 47)
5873
5974#define HWCAP2_DCPODP (1 << 0)
6075#define HWCAP2_SVE2 (1 << 1)
......@@ -122,4 +137,6 @@
122137#define HWCAP2_POE (1UL << 63)
123138
124139#define HWCAP3_MTE_FAR (1UL << 0)
125#define HWCAP3_MTE_STORE_ONLY (1UL << 1)
\ No newline at end of file
140#define HWCAP3_MTE_STORE_ONLY (1UL << 1)
141#define HWCAP3_LSFE (1UL << 2)
142#define HWCAP3_LS64 (1UL << 3)
\ No newline at end of file
lib/libc/include/aarch64-linux-gnu/bits/long-double.h deleted-21
......@@ -1,21 +0,0 @@
1/* Properties of long double type. ldbl-128 version.
2 Copyright (C) 2016-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
18
19/* long double is distinct from double, so there is nothing to
20 define here. */
21#define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0
\ No newline at end of file
lib/libc/include/aarch64-linux-gnu/bits/math-vector.h+8
......@@ -157,6 +157,10 @@
157157# define __DECL_SIMD_pow __DECL_SIMD_aarch64
158158# undef __DECL_SIMD_powf
159159# define __DECL_SIMD_powf __DECL_SIMD_aarch64
160# undef __DECL_SIMD_powr
161# define __DECL_SIMD_powr __DECL_SIMD_aarch64
162# undef __DECL_SIMD_powrf
163# define __DECL_SIMD_powrf __DECL_SIMD_aarch64
160164# undef __DECL_SIMD_rsqrt
161165# define __DECL_SIMD_rsqrt __DECL_SIMD_aarch64
162166# undef __DECL_SIMD_rsqrtf
......@@ -243,6 +247,7 @@ __vpcs __f32x4_t _ZGVnN4v_log2f (__f32x4_t);
243247__vpcs __f32x4_t _ZGVnN4v_log2p1f (__f32x4_t);
244248__vpcs __f32x4_t _ZGVnN4v_logp1f (__f32x4_t);
245249__vpcs __f32x4_t _ZGVnN4vv_powf (__f32x4_t, __f32x4_t);
250__vpcs __f32x4_t _ZGVnN4vv_powrf (__f32x4_t, __f32x4_t);
246251__vpcs __f32x4_t _ZGVnN4v_rsqrtf (__f32x4_t);
247252__vpcs __f32x4_t _ZGVnN4v_sinf (__f32x4_t);
248253__vpcs __f32x4_t _ZGVnN4v_sinhf (__f32x4_t);
......@@ -283,6 +288,7 @@ __vpcs __f64x2_t _ZGVnN2v_log2 (__f64x2_t);
283288__vpcs __f64x2_t _ZGVnN2v_log2p1 (__f64x2_t);
284289__vpcs __f64x2_t _ZGVnN2v_logp1 (__f64x2_t);
285290__vpcs __f64x2_t _ZGVnN2vv_pow (__f64x2_t, __f64x2_t);
291__vpcs __f64x2_t _ZGVnN2vv_powr (__f64x2_t, __f64x2_t);
286292__vpcs __f64x2_t _ZGVnN2v_rsqrt (__f64x2_t);
287293__vpcs __f64x2_t _ZGVnN2v_sin (__f64x2_t);
288294__vpcs __f64x2_t _ZGVnN2v_sinh (__f64x2_t);
......@@ -328,6 +334,7 @@ __sv_f32_t _ZGVsMxv_log2f (__sv_f32_t, __sv_bool_t);
328334__sv_f32_t _ZGVsMxv_log2p1f (__sv_f32_t, __sv_bool_t);
329335__sv_f32_t _ZGVsMxv_logp1f (__sv_f32_t, __sv_bool_t);
330336__sv_f32_t _ZGVsMxvv_powf (__sv_f32_t, __sv_f32_t, __sv_bool_t);
337__sv_f32_t _ZGVsMxvv_powrf (__sv_f32_t, __sv_f32_t, __sv_bool_t);
331338__sv_f32_t _ZGVsMxv_rsqrtf (__sv_f32_t, __sv_bool_t);
332339__sv_f32_t _ZGVsMxv_sinf (__sv_f32_t, __sv_bool_t);
333340__sv_f32_t _ZGVsMxv_sinhf (__sv_f32_t, __sv_bool_t);
......@@ -368,6 +375,7 @@ __sv_f64_t _ZGVsMxv_log2 (__sv_f64_t, __sv_bool_t);
368375__sv_f64_t _ZGVsMxv_log2p1 (__sv_f64_t, __sv_bool_t);
369376__sv_f64_t _ZGVsMxv_logp1 (__sv_f64_t, __sv_bool_t);
370377__sv_f64_t _ZGVsMxvv_pow (__sv_f64_t, __sv_f64_t, __sv_bool_t);
378__sv_f64_t _ZGVsMxvv_powr (__sv_f64_t, __sv_f64_t, __sv_bool_t);
371379__sv_f64_t _ZGVsMxv_rsqrt (__sv_f64_t, __sv_bool_t);
372380__sv_f64_t _ZGVsMxv_sin (__sv_f64_t, __sv_bool_t);
373381__sv_f64_t _ZGVsMxv_sinh (__sv_f64_t, __sv_bool_t);
lib/libc/include/aarch64-linux-gnu/bits/struct_stat.h deleted-127
......@@ -1,127 +0,0 @@
1/* Definition for struct stat.
2 Copyright (C) 2020-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library. If not, see
17 <https://www.gnu.org/licenses/>. */
18
19#if !defined _SYS_STAT_H && !defined _FCNTL_H
20# error "Never include <bits/struct_stat.h> directly; use <sys/stat.h> instead."
21#endif
22
23#ifndef _BITS_STRUCT_STAT_H
24#define _BITS_STRUCT_STAT_H 1
25
26#include <bits/endian.h>
27#include <bits/wordsize.h>
28
29#if defined __USE_FILE_OFFSET64
30# define __field64(type, type64, name) type64 name
31#elif __WORDSIZE == 64 || defined __INO_T_MATCHES_INO64_T
32# if defined __INO_T_MATCHES_INO64_T && !defined __OFF_T_MATCHES_OFF64_T
33# error "ino_t and off_t must both be the same type"
34# endif
35# define __field64(type, type64, name) type name
36#elif __BYTE_ORDER == __LITTLE_ENDIAN
37# define __field64(type, type64, name) \
38 type name __attribute__((__aligned__ (__alignof__ (type64)))); int __##name##_pad
39#else
40# define __field64(type, type64, name) \
41 int __##name##_pad __attribute__((__aligned__ (__alignof__ (type64)))); type name
42#endif
43
44struct stat
45 {
46 __dev_t st_dev; /* Device. */
47 __field64(__ino_t, __ino64_t, st_ino); /* File serial number. */
48 __mode_t st_mode; /* File mode. */
49 __nlink_t st_nlink; /* Link count. */
50 __uid_t st_uid; /* User ID of the file's owner. */
51 __gid_t st_gid; /* Group ID of the file's group.*/
52 __dev_t st_rdev; /* Device number, if device. */
53 __dev_t __pad1;
54 __field64(__off_t, __off64_t, st_size); /* Size of file, in bytes. */
55 __blksize_t st_blksize; /* Optimal block size for I/O. */
56 int __pad2;
57 __field64(__blkcnt_t, __blkcnt64_t, st_blocks); /* 512-byte blocks */
58#ifdef __USE_XOPEN2K8
59 /* Nanosecond resolution timestamps are stored in a format
60 equivalent to 'struct timespec'. This is the type used
61 whenever possible but the Unix namespace rules do not allow the
62 identifier 'timespec' to appear in the <sys/stat.h> header.
63 Therefore we have to handle the use of this header in strictly
64 standard-compliant sources special. */
65 struct timespec st_atim; /* Time of last access. */
66 struct timespec st_mtim; /* Time of last modification. */
67 struct timespec st_ctim; /* Time of last status change. */
68# define st_atime st_atim.tv_sec /* Backward compatibility. */
69# define st_mtime st_mtim.tv_sec
70# define st_ctime st_ctim.tv_sec
71#else
72 __time_t st_atime; /* Time of last access. */
73 unsigned long int st_atimensec; /* Nscecs of last access. */
74 __time_t st_mtime; /* Time of last modification. */
75 unsigned long int st_mtimensec; /* Nsecs of last modification. */
76 __time_t st_ctime; /* Time of last status change. */
77 unsigned long int st_ctimensec; /* Nsecs of last status change. */
78#endif
79 int __glibc_reserved[2];
80 };
81
82#undef __field64
83
84#ifdef __USE_LARGEFILE64
85struct stat64
86 {
87 __dev_t st_dev; /* Device. */
88 __ino64_t st_ino; /* File serial number. */
89 __mode_t st_mode; /* File mode. */
90 __nlink_t st_nlink; /* Link count. */
91 __uid_t st_uid; /* User ID of the file's owner. */
92 __gid_t st_gid; /* Group ID of the file's group.*/
93 __dev_t st_rdev; /* Device number, if device. */
94 __dev_t __pad1;
95 __off64_t st_size; /* Size of file, in bytes. */
96 __blksize_t st_blksize; /* Optimal block size for I/O. */
97 int __pad2;
98 __blkcnt64_t st_blocks; /* Nr. 512-byte blocks allocated. */
99#ifdef __USE_XOPEN2K8
100 /* Nanosecond resolution timestamps are stored in a format
101 equivalent to 'struct timespec'. This is the type used
102 whenever possible but the Unix namespace rules do not allow the
103 identifier 'timespec' to appear in the <sys/stat.h> header.
104 Therefore we have to handle the use of this header in strictly
105 standard-compliant sources special. */
106 struct timespec st_atim; /* Time of last access. */
107 struct timespec st_mtim; /* Time of last modification. */
108 struct timespec st_ctim; /* Time of last status change. */
109#else
110 __time_t st_atime; /* Time of last access. */
111 unsigned long int st_atimensec; /* Nscecs of last access. */
112 __time_t st_mtime; /* Time of last modification. */
113 unsigned long int st_mtimensec; /* Nsecs of last modification. */
114 __time_t st_ctime; /* Time of last status change. */
115 unsigned long int st_ctimensec; /* Nsecs of last status change. */
116#endif
117 int __glibc_reserved[2];
118 };
119#endif
120
121/* Tell code we have these members. */
122#define _STATBUF_ST_BLKSIZE
123#define _STATBUF_ST_RDEV
124/* Nanosecond resolution time values are supported. */
125#define _STATBUF_ST_NSEC
126
127#endif /* _BITS_STRUCT_STAT_H */
\ No newline at end of file
lib/libc/include/aarch64-linux-gnu/bits/timesize.h deleted-20
......@@ -1,20 +0,0 @@
1/* Bit size of the time_t type at glibc build time, general case.
2 Copyright (C) 2018-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
18
19/* Size in bits of the 'time_t' type of the default ABI. */
20#define __TIMESIZE 64
\ No newline at end of file
lib/libc/include/aarch64-linux-gnu/finclude/math-vector-fortran.h+80-78
......@@ -16,81 +16,83 @@
1616! License along with the GNU C Library; if not, see
1717! <https://www.gnu.org/licenses/>.
1818
19!GCC$ builtin (acos) attributes simd (notinbranch)
20!GCC$ builtin (acosf) attributes simd (notinbranch)
21!GCC$ builtin (acosh) attributes simd (notinbranch)
22!GCC$ builtin (acoshf) attributes simd (notinbranch)
23!GCC$ builtin (acospi) attributes simd (notinbranch)
24!GCC$ builtin (acospif) attributes simd (notinbranch)
25!GCC$ builtin (asin) attributes simd (notinbranch)
26!GCC$ builtin (asinf) attributes simd (notinbranch)
27!GCC$ builtin (asinh) attributes simd (notinbranch)
28!GCC$ builtin (asinhf) attributes simd (notinbranch)
29!GCC$ builtin (asinpi) attributes simd (notinbranch)
30!GCC$ builtin (asinpif) attributes simd (notinbranch)
31!GCC$ builtin (atan) attributes simd (notinbranch)
32!GCC$ builtin (atan2) attributes simd (notinbranch)
33!GCC$ builtin (atan2f) attributes simd (notinbranch)
34!GCC$ builtin (atan2pi) attributes simd (notinbranch)
35!GCC$ builtin (atan2pif) attributes simd (notinbranch)
36!GCC$ builtin (atanf) attributes simd (notinbranch)
37!GCC$ builtin (atanh) attributes simd (notinbranch)
38!GCC$ builtin (atanhf) attributes simd (notinbranch)
39!GCC$ builtin (atanpi) attributes simd (notinbranch)
40!GCC$ builtin (atanpif) attributes simd (notinbranch)
41!GCC$ builtin (cbrt) attributes simd (notinbranch)
42!GCC$ builtin (cbrtf) attributes simd (notinbranch)
43!GCC$ builtin (cos) attributes simd (notinbranch)
44!GCC$ builtin (cosf) attributes simd (notinbranch)
45!GCC$ builtin (cosh) attributes simd (notinbranch)
46!GCC$ builtin (coshf) attributes simd (notinbranch)
47!GCC$ builtin (cospi) attributes simd (notinbranch)
48!GCC$ builtin (cospif) attributes simd (notinbranch)
49!GCC$ builtin (erf) attributes simd (notinbranch)
50!GCC$ builtin (erfc) attributes simd (notinbranch)
51!GCC$ builtin (erfcf) attributes simd (notinbranch)
52!GCC$ builtin (erff) attributes simd (notinbranch)
53!GCC$ builtin (exp) attributes simd (notinbranch)
54!GCC$ builtin (exp10) attributes simd (notinbranch)
55!GCC$ builtin (exp10f) attributes simd (notinbranch)
56!GCC$ builtin (exp10m1) attributes simd (notinbranch)
57!GCC$ builtin (exp10m1f) attributes simd (notinbranch)
58!GCC$ builtin (exp2) attributes simd (notinbranch)
59!GCC$ builtin (exp2f) attributes simd (notinbranch)
60!GCC$ builtin (exp2m1) attributes simd (notinbranch)
61!GCC$ builtin (exp2m1f) attributes simd (notinbranch)
62!GCC$ builtin (expf) attributes simd (notinbranch)
63!GCC$ builtin (expm1) attributes simd (notinbranch)
64!GCC$ builtin (expm1f) attributes simd (notinbranch)
65!GCC$ builtin (hypot) attributes simd (notinbranch)
66!GCC$ builtin (hypotf) attributes simd (notinbranch)
67!GCC$ builtin (log) attributes simd (notinbranch)
68!GCC$ builtin (log10) attributes simd (notinbranch)
69!GCC$ builtin (log10f) attributes simd (notinbranch)
70!GCC$ builtin (log10p1) attributes simd (notinbranch)
71!GCC$ builtin (log10p1f) attributes simd (notinbranch)
72!GCC$ builtin (log1p) attributes simd (notinbranch)
73!GCC$ builtin (log1pf) attributes simd (notinbranch)
74!GCC$ builtin (log2) attributes simd (notinbranch)
75!GCC$ builtin (log2f) attributes simd (notinbranch)
76!GCC$ builtin (log2p1) attributes simd (notinbranch)
77!GCC$ builtin (log2p1f) attributes simd (notinbranch)
78!GCC$ builtin (logf) attributes simd (notinbranch)
79!GCC$ builtin (logp1) attributes simd (notinbranch)
80!GCC$ builtin (logp1f) attributes simd (notinbranch)
81!GCC$ builtin (pow) attributes simd (notinbranch)
82!GCC$ builtin (powf) attributes simd (notinbranch)
83!GCC$ builtin (rsqrt) attributes simd (notinbranch)
84!GCC$ builtin (rsqrtf) attributes simd (notinbranch)
85!GCC$ builtin (sin) attributes simd (notinbranch)
86!GCC$ builtin (sinf) attributes simd (notinbranch)
87!GCC$ builtin (sinh) attributes simd (notinbranch)
88!GCC$ builtin (sinhf) attributes simd (notinbranch)
89!GCC$ builtin (sinpi) attributes simd (notinbranch)
90!GCC$ builtin (sinpif) attributes simd (notinbranch)
91!GCC$ builtin (tan) attributes simd (notinbranch)
92!GCC$ builtin (tanf) attributes simd (notinbranch)
93!GCC$ builtin (tanh) attributes simd (notinbranch)
94!GCC$ builtin (tanhf) attributes simd (notinbranch)
95!GCC$ builtin (tanpi) attributes simd (notinbranch)
96!GCC$ builtin (tanpif) attributes simd (notinbranch)
\ No newline at end of file
19!GCC$ builtin (acos) attributes simd (notinbranch) if('fastmath')
20!GCC$ builtin (acosf) attributes simd (notinbranch) if('fastmath')
21!GCC$ builtin (acosh) attributes simd (notinbranch) if('fastmath')
22!GCC$ builtin (acoshf) attributes simd (notinbranch) if('fastmath')
23!GCC$ builtin (acospi) attributes simd (notinbranch) if('fastmath')
24!GCC$ builtin (acospif) attributes simd (notinbranch) if('fastmath')
25!GCC$ builtin (asin) attributes simd (notinbranch) if('fastmath')
26!GCC$ builtin (asinf) attributes simd (notinbranch) if('fastmath')
27!GCC$ builtin (asinh) attributes simd (notinbranch) if('fastmath')
28!GCC$ builtin (asinhf) attributes simd (notinbranch) if('fastmath')
29!GCC$ builtin (asinpi) attributes simd (notinbranch) if('fastmath')
30!GCC$ builtin (asinpif) attributes simd (notinbranch) if('fastmath')
31!GCC$ builtin (atan) attributes simd (notinbranch) if('fastmath')
32!GCC$ builtin (atan2) attributes simd (notinbranch) if('fastmath')
33!GCC$ builtin (atan2f) attributes simd (notinbranch) if('fastmath')
34!GCC$ builtin (atan2pi) attributes simd (notinbranch) if('fastmath')
35!GCC$ builtin (atan2pif) attributes simd (notinbranch) if('fastmath')
36!GCC$ builtin (atanf) attributes simd (notinbranch) if('fastmath')
37!GCC$ builtin (atanh) attributes simd (notinbranch) if('fastmath')
38!GCC$ builtin (atanhf) attributes simd (notinbranch) if('fastmath')
39!GCC$ builtin (atanpi) attributes simd (notinbranch) if('fastmath')
40!GCC$ builtin (atanpif) attributes simd (notinbranch) if('fastmath')
41!GCC$ builtin (cbrt) attributes simd (notinbranch) if('fastmath')
42!GCC$ builtin (cbrtf) attributes simd (notinbranch) if('fastmath')
43!GCC$ builtin (cos) attributes simd (notinbranch) if('fastmath')
44!GCC$ builtin (cosf) attributes simd (notinbranch) if('fastmath')
45!GCC$ builtin (cosh) attributes simd (notinbranch) if('fastmath')
46!GCC$ builtin (coshf) attributes simd (notinbranch) if('fastmath')
47!GCC$ builtin (cospi) attributes simd (notinbranch) if('fastmath')
48!GCC$ builtin (cospif) attributes simd (notinbranch) if('fastmath')
49!GCC$ builtin (erf) attributes simd (notinbranch) if('fastmath')
50!GCC$ builtin (erfc) attributes simd (notinbranch) if('fastmath')
51!GCC$ builtin (erfcf) attributes simd (notinbranch) if('fastmath')
52!GCC$ builtin (erff) attributes simd (notinbranch) if('fastmath')
53!GCC$ builtin (exp) attributes simd (notinbranch) if('fastmath')
54!GCC$ builtin (exp10) attributes simd (notinbranch) if('fastmath')
55!GCC$ builtin (exp10f) attributes simd (notinbranch) if('fastmath')
56!GCC$ builtin (exp10m1) attributes simd (notinbranch) if('fastmath')
57!GCC$ builtin (exp10m1f) attributes simd (notinbranch) if('fastmath')
58!GCC$ builtin (exp2) attributes simd (notinbranch) if('fastmath')
59!GCC$ builtin (exp2f) attributes simd (notinbranch) if('fastmath')
60!GCC$ builtin (exp2m1) attributes simd (notinbranch) if('fastmath')
61!GCC$ builtin (exp2m1f) attributes simd (notinbranch) if('fastmath')
62!GCC$ builtin (expf) attributes simd (notinbranch) if('fastmath')
63!GCC$ builtin (expm1) attributes simd (notinbranch) if('fastmath')
64!GCC$ builtin (expm1f) attributes simd (notinbranch) if('fastmath')
65!GCC$ builtin (hypot) attributes simd (notinbranch) if('fastmath')
66!GCC$ builtin (hypotf) attributes simd (notinbranch) if('fastmath')
67!GCC$ builtin (log) attributes simd (notinbranch) if('fastmath')
68!GCC$ builtin (log10) attributes simd (notinbranch) if('fastmath')
69!GCC$ builtin (log10f) attributes simd (notinbranch) if('fastmath')
70!GCC$ builtin (log10p1) attributes simd (notinbranch) if('fastmath')
71!GCC$ builtin (log10p1f) attributes simd (notinbranch) if('fastmath')
72!GCC$ builtin (log1p) attributes simd (notinbranch) if('fastmath')
73!GCC$ builtin (log1pf) attributes simd (notinbranch) if('fastmath')
74!GCC$ builtin (log2) attributes simd (notinbranch) if('fastmath')
75!GCC$ builtin (log2f) attributes simd (notinbranch) if('fastmath')
76!GCC$ builtin (log2p1) attributes simd (notinbranch) if('fastmath')
77!GCC$ builtin (log2p1f) attributes simd (notinbranch) if('fastmath')
78!GCC$ builtin (logf) attributes simd (notinbranch) if('fastmath')
79!GCC$ builtin (logp1) attributes simd (notinbranch) if('fastmath')
80!GCC$ builtin (logp1f) attributes simd (notinbranch) if('fastmath')
81!GCC$ builtin (pow) attributes simd (notinbranch) if('fastmath')
82!GCC$ builtin (powf) attributes simd (notinbranch) if('fastmath')
83!GCC$ builtin (powr) attributes simd (notinbranch) if('fastmath')
84!GCC$ builtin (powrf) attributes simd (notinbranch) if('fastmath')
85!GCC$ builtin (rsqrt) attributes simd (notinbranch) if('fastmath')
86!GCC$ builtin (rsqrtf) attributes simd (notinbranch) if('fastmath')
87!GCC$ builtin (sin) attributes simd (notinbranch) if('fastmath')
88!GCC$ builtin (sinf) attributes simd (notinbranch) if('fastmath')
89!GCC$ builtin (sinh) attributes simd (notinbranch) if('fastmath')
90!GCC$ builtin (sinhf) attributes simd (notinbranch) if('fastmath')
91!GCC$ builtin (sinpi) attributes simd (notinbranch) if('fastmath')
92!GCC$ builtin (sinpif) attributes simd (notinbranch) if('fastmath')
93!GCC$ builtin (tan) attributes simd (notinbranch) if('fastmath')
94!GCC$ builtin (tanf) attributes simd (notinbranch) if('fastmath')
95!GCC$ builtin (tanh) attributes simd (notinbranch) if('fastmath')
96!GCC$ builtin (tanhf) attributes simd (notinbranch) if('fastmath')
97!GCC$ builtin (tanpi) attributes simd (notinbranch) if('fastmath')
98!GCC$ builtin (tanpif) attributes simd (notinbranch) if('fastmath')
\ No newline at end of file
lib/libc/include/aarch64-linux-gnu/gnu/lib-names-lp64.h+1
......@@ -24,4 +24,5 @@
2424#define LIBRESOLV_SO "libresolv.so.2"
2525#define LIBRT_SO "librt.so.1"
2626#define LIBTHREAD_DB_SO "libthread_db.so.1"
27#define LIBUNWIND_SO "libunwind.so.1"
2728#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
lib/libc/include/aarch64-linux-gnu/gnu/lib-names-lp64_be.h+1
......@@ -24,4 +24,5 @@
2424#define LIBRESOLV_SO "libresolv.so.2"
2525#define LIBRT_SO "librt.so.1"
2626#define LIBTHREAD_DB_SO "libthread_db.so.1"
27#define LIBUNWIND_SO "libunwind.so.1"
2728#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
lib/libc/include/arc-linux-gnu/bits/struct_stat.h deleted-127
......@@ -1,127 +0,0 @@
1/* Definition for struct stat.
2 Copyright (C) 2020-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library. If not, see
17 <https://www.gnu.org/licenses/>. */
18
19#if !defined _SYS_STAT_H && !defined _FCNTL_H
20# error "Never include <bits/struct_stat.h> directly; use <sys/stat.h> instead."
21#endif
22
23#ifndef _BITS_STRUCT_STAT_H
24#define _BITS_STRUCT_STAT_H 1
25
26#include <bits/endian.h>
27#include <bits/wordsize.h>
28
29#if defined __USE_FILE_OFFSET64
30# define __field64(type, type64, name) type64 name
31#elif __WORDSIZE == 64 || defined __INO_T_MATCHES_INO64_T
32# if defined __INO_T_MATCHES_INO64_T && !defined __OFF_T_MATCHES_OFF64_T
33# error "ino_t and off_t must both be the same type"
34# endif
35# define __field64(type, type64, name) type name
36#elif __BYTE_ORDER == __LITTLE_ENDIAN
37# define __field64(type, type64, name) \
38 type name __attribute__((__aligned__ (__alignof__ (type64)))); int __##name##_pad
39#else
40# define __field64(type, type64, name) \
41 int __##name##_pad __attribute__((__aligned__ (__alignof__ (type64)))); type name
42#endif
43
44struct stat
45 {
46 __dev_t st_dev; /* Device. */
47 __field64(__ino_t, __ino64_t, st_ino); /* File serial number. */
48 __mode_t st_mode; /* File mode. */
49 __nlink_t st_nlink; /* Link count. */
50 __uid_t st_uid; /* User ID of the file's owner. */
51 __gid_t st_gid; /* Group ID of the file's group.*/
52 __dev_t st_rdev; /* Device number, if device. */
53 __dev_t __pad1;
54 __field64(__off_t, __off64_t, st_size); /* Size of file, in bytes. */
55 __blksize_t st_blksize; /* Optimal block size for I/O. */
56 int __pad2;
57 __field64(__blkcnt_t, __blkcnt64_t, st_blocks); /* 512-byte blocks */
58#ifdef __USE_XOPEN2K8
59 /* Nanosecond resolution timestamps are stored in a format
60 equivalent to 'struct timespec'. This is the type used
61 whenever possible but the Unix namespace rules do not allow the
62 identifier 'timespec' to appear in the <sys/stat.h> header.
63 Therefore we have to handle the use of this header in strictly
64 standard-compliant sources special. */
65 struct timespec st_atim; /* Time of last access. */
66 struct timespec st_mtim; /* Time of last modification. */
67 struct timespec st_ctim; /* Time of last status change. */
68# define st_atime st_atim.tv_sec /* Backward compatibility. */
69# define st_mtime st_mtim.tv_sec
70# define st_ctime st_ctim.tv_sec
71#else
72 __time_t st_atime; /* Time of last access. */
73 unsigned long int st_atimensec; /* Nscecs of last access. */
74 __time_t st_mtime; /* Time of last modification. */
75 unsigned long int st_mtimensec; /* Nsecs of last modification. */
76 __time_t st_ctime; /* Time of last status change. */
77 unsigned long int st_ctimensec; /* Nsecs of last status change. */
78#endif
79 int __glibc_reserved[2];
80 };
81
82#undef __field64
83
84#ifdef __USE_LARGEFILE64
85struct stat64
86 {
87 __dev_t st_dev; /* Device. */
88 __ino64_t st_ino; /* File serial number. */
89 __mode_t st_mode; /* File mode. */
90 __nlink_t st_nlink; /* Link count. */
91 __uid_t st_uid; /* User ID of the file's owner. */
92 __gid_t st_gid; /* Group ID of the file's group.*/
93 __dev_t st_rdev; /* Device number, if device. */
94 __dev_t __pad1;
95 __off64_t st_size; /* Size of file, in bytes. */
96 __blksize_t st_blksize; /* Optimal block size for I/O. */
97 int __pad2;
98 __blkcnt64_t st_blocks; /* Nr. 512-byte blocks allocated. */
99#ifdef __USE_XOPEN2K8
100 /* Nanosecond resolution timestamps are stored in a format
101 equivalent to 'struct timespec'. This is the type used
102 whenever possible but the Unix namespace rules do not allow the
103 identifier 'timespec' to appear in the <sys/stat.h> header.
104 Therefore we have to handle the use of this header in strictly
105 standard-compliant sources special. */
106 struct timespec st_atim; /* Time of last access. */
107 struct timespec st_mtim; /* Time of last modification. */
108 struct timespec st_ctim; /* Time of last status change. */
109#else
110 __time_t st_atime; /* Time of last access. */
111 unsigned long int st_atimensec; /* Nscecs of last access. */
112 __time_t st_mtime; /* Time of last modification. */
113 unsigned long int st_mtimensec; /* Nsecs of last modification. */
114 __time_t st_ctime; /* Time of last status change. */
115 unsigned long int st_ctimensec; /* Nsecs of last status change. */
116#endif
117 int __glibc_reserved[2];
118 };
119#endif
120
121/* Tell code we have these members. */
122#define _STATBUF_ST_BLKSIZE
123#define _STATBUF_ST_RDEV
124/* Nanosecond resolution time values are supported. */
125#define _STATBUF_ST_NSEC
126
127#endif /* _BITS_STRUCT_STAT_H */
\ No newline at end of file
lib/libc/include/arc-linux-gnu/bits/timesize.h deleted-20
......@@ -1,20 +0,0 @@
1/* Bit size of the time_t type at glibc build time, general case.
2 Copyright (C) 2018-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
18
19/* Size in bits of the 'time_t' type of the default ABI. */
20#define __TIMESIZE 64
\ No newline at end of file
lib/libc/include/arc-linux-gnu/gnu/lib-names.h+1
......@@ -25,6 +25,7 @@
2525#define LIBRESOLV_SO "libresolv.so.2"
2626#define LIBRT_SO "librt.so.1"
2727#define LIBTHREAD_DB_SO "libthread_db.so.1"
28#define LIBUNWIND_SO "libunwind.so.1"
2829#define LIBUTIL_SO "libutil.so.1"
2930
3031#endif /* gnu/lib-names.h */
\ No newline at end of file
lib/libc/include/csky-linux-gnu/gnu/lib-names.h+2-1
......@@ -31,6 +31,7 @@
3131#define LIBRESOLV_SO "libresolv.so.2"
3232#define LIBRT_SO "librt.so.1"
3333#define LIBTHREAD_DB_SO "libthread_db.so.1"
34#define LIBUNWIND_SO "libunwind.so.1"
3435#define LIBUTIL_SO "libutil.so.1"
3536
36#endif /* gnu/lib-names.h */
37#endif /* gnu/lib-names.h */
\ No newline at end of file
lib/libc/include/generic-glibc/assert.h+19-9
......@@ -52,13 +52,12 @@
5252 comma in the initializer list, can be passed to assert. This
5353 depends on support for variadic macros (added in C99 and GCC 2.95),
5454 and on support for _Bool (added in C99 and GCC 3.0) in order to
55 validate that only a single expression is passed as an argument,
56 and is currently implemented only for C. */
57#if (__GLIBC_USE (ISOC23) \
58 && (defined __GNUC__ \
59 ? __GNUC_PREREQ (3, 0) \
60 : defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) \
61 && !defined __cplusplus)
55 validate that only a single expression is passed as an argument. */
56#if ((__GLIBC_USE (ISOC23) \
57 && (defined __GNUC__ \
58 ? __GNUC_PREREQ (3, 0) \
59 : defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) \
60 || (defined __cplusplus && __cplusplus > 202302L))
6261# define __ASSERT_VARIADIC 1
6362#else
6463# define __ASSERT_VARIADIC 0
......@@ -108,7 +107,7 @@ extern void __assert (const char *__assertion, const char *__file, int __line)
108107 __THROW __attribute__ ((__noreturn__)) __COLD;
109108
110109
111# if __ASSERT_VARIADIC
110# if __ASSERT_VARIADIC && !defined __cplusplus
112111/* This function is not defined and is not called outside of an
113112 unevaluated sizeof, but serves to verify that the argument to
114113 assert is a single expression. */
......@@ -131,11 +130,22 @@ __END_DECLS
131130# define __ASSERT_FILE __FILE__
132131# define __ASSERT_LINE __LINE__
133132# endif
134# define assert(expr) \
133# if __ASSERT_VARIADIC
134/* The first test of __VA_ARGS__ evaluates it without converting scoped
135 enumeration values to bool, and the second test checks that it is a
136 single expression without evaluating it. */
137# define assert(...) \
138 ((__VA_ARGS__) \
139 ? void (1 ? 1 : bool (__VA_ARGS__)) \
140 : __assert_fail (#__VA_ARGS__, __ASSERT_FILE, __ASSERT_LINE, \
141 __ASSERT_FUNCTION))
142# else
143# define assert(expr) \
135144 (static_cast <bool> (expr) \
136145 ? void (0) \
137146 : __assert_fail (#expr, __ASSERT_FILE, __ASSERT_LINE, \
138147 __ASSERT_FUNCTION))
148# endif
139149# elif !defined __GNUC__ || defined __STRICT_ANSI__
140150# if __ASSERT_VARIADIC
141151# define assert(...) \
lib/libc/include/generic-glibc/bits/cloexec.h created+1
......@@ -0,0 +1 @@
1#define __O_CLOEXEC 02000000
\ No newline at end of file
lib/libc/include/generic-glibc/bits/fcntl-linux.h+11-10
......@@ -81,9 +81,7 @@
8181#ifndef __O_NOFOLLOW
8282# define __O_NOFOLLOW 0400000
8383#endif
84#ifndef __O_CLOEXEC
85# define __O_CLOEXEC 02000000
86#endif
84#include <bits/cloexec.h>
8785#ifndef __O_DIRECT
8886# define __O_DIRECT 040000
8987#endif
......@@ -176,8 +174,8 @@
176174#endif
177175
178176#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
179# define F_SETOWN __F_SETOWN /* Get owner (process receiving SIGIO). */
180# define F_GETOWN __F_GETOWN /* Set owner (process receiving SIGIO). */
177# define F_SETOWN __F_SETOWN /* Set owner (process receiving SIGIO). */
178# define F_GETOWN __F_GETOWN /* Get owner (process receiving SIGIO). */
181179#endif
182180
183181#ifndef __F_SETSIG
......@@ -185,15 +183,15 @@
185183# define __F_GETSIG 11 /* Get number of signal to be sent. */
186184#endif
187185#ifndef __F_SETOWN_EX
188# define __F_SETOWN_EX 15 /* Get owner (thread receiving SIGIO). */
189# define __F_GETOWN_EX 16 /* Set owner (thread receiving SIGIO). */
186# define __F_SETOWN_EX 15 /* Set owner (thread receiving SIGIO). */
187# define __F_GETOWN_EX 16 /* Get owner (thread receiving SIGIO). */
190188#endif
191189
192190#ifdef __USE_GNU
193191# define F_SETSIG __F_SETSIG /* Set number of signal to be sent. */
194192# define F_GETSIG __F_GETSIG /* Get number of signal to be sent. */
195# define F_SETOWN_EX __F_SETOWN_EX /* Get owner (thread receiving SIGIO). */
196# define F_GETOWN_EX __F_GETOWN_EX /* Set owner (thread receiving SIGIO). */
193# define F_SETOWN_EX __F_SETOWN_EX /* Set owner (thread receiving SIGIO). */
194# define F_GETOWN_EX __F_GETOWN_EX /* Get owner (thread receiving SIGIO). */
197195#endif
198196
199197#ifdef __USE_GNU
......@@ -203,7 +201,7 @@
203201# define F_DUPFD_QUERY 1027 /* Compare two file descriptors for sameness. */
204202# define F_CREATED_QUERY 1028 /* Was the file just created? */
205203# define F_SETPIPE_SZ 1031 /* Set pipe page size array. */
206# define F_GETPIPE_SZ 1032 /* Set pipe page size array. */
204# define F_GETPIPE_SZ 1032 /* Get pipe page size array. */
207205# define F_ADD_SEALS 1033 /* Add seals to file. */
208206# define F_GET_SEALS 1034 /* Get seals for file. */
209207/* Set / get write life time hints. */
......@@ -211,6 +209,8 @@
211209# define F_SET_RW_HINT 1036
212210# define F_GET_FILE_RW_HINT 1037
213211# define F_SET_FILE_RW_HINT 1038
212# define F_GETDELEG 1039 /* Get delegation. */
213# define F_SETDELEG 1040 /* Set delegation. */
214214#endif
215215#ifdef __USE_XOPEN2K8
216216# define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with
......@@ -221,6 +221,7 @@
221221#define FD_CLOEXEC 1 /* Actually anything with low bit set goes */
222222#ifdef __USE_GNU
223223# define FD_PIDFS_ROOT -10002 /* Root of the pidfs filesystem */
224# define FD_NSFS_ROOT -10003 /* Root of the nsfs filesystem */
224225#endif
225226
226227#ifndef F_RDLCK
lib/libc/include/generic-glibc/bits/libm-simd-decl-stubs.h+11
......@@ -99,6 +99,17 @@
9999#define __DECL_SIMD_powf64x
100100#define __DECL_SIMD_powf128x
101101
102#define __DECL_SIMD_powr
103#define __DECL_SIMD_powrf
104#define __DECL_SIMD_powrl
105#define __DECL_SIMD_powrf16
106#define __DECL_SIMD_powrf32
107#define __DECL_SIMD_powrf64
108#define __DECL_SIMD_powrf128
109#define __DECL_SIMD_powrf32x
110#define __DECL_SIMD_powrf64x
111#define __DECL_SIMD_powrf128x
112
102113#define __DECL_SIMD_acos
103114#define __DECL_SIMD_acosf
104115#define __DECL_SIMD_acosl
lib/libc/include/generic-glibc/bits/long-double.h+3-6
......@@ -1,4 +1,4 @@
1/* Properties of long double type. MIPS version.
1/* Properties of long double type. ldbl-128 version.
22 Copyright (C) 2016-2026 Free Software Foundation, Inc.
33 This file is part of the GNU C Library.
44
......@@ -16,9 +16,6 @@
1616 License along with the GNU C Library; if not, see
1717 <https://www.gnu.org/licenses/>. */
1818
19#include <sgidefs.h>
20
21#if !defined __NO_LONG_DOUBLE_MATH && _MIPS_SIM == _ABIO32
22# define __NO_LONG_DOUBLE_MATH 1
23#endif
19/* long double is distinct from double, so there is nothing to
20 define here. */
2421#define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0
\ No newline at end of file
lib/libc/include/generic-glibc/bits/mathcalls.h+1
......@@ -197,6 +197,7 @@ __MATHCALL (compoundn,, (_Mdouble_ __x, long long int __y));
197197__MATHCALL (pown,, (_Mdouble_ __x, long long int __y));
198198
199199/* Return X to the Y power. */
200__MATHCALL_VEC (powr,, (_Mdouble_ __x, _Mdouble_ __y));
200201__MATHCALL (powr,, (_Mdouble_ __x, _Mdouble_ __y));
201202
202203/* Return the Yth root of X. */
lib/libc/include/generic-glibc/bits/ppc.h deleted-33
......@@ -1,33 +0,0 @@
1/* Facilities specific to the PowerPC architecture on Linux
2 Copyright (C) 2012-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
18
19#ifndef _BITS_PPC_H
20#define _BITS_PPC_H
21
22#ifndef _SYS_PLATFORM_PPC_H
23# error "Never include this file directly; use <sys/platform/ppc.h> instead."
24#endif
25
26__BEGIN_DECLS
27
28/* Read the time base frequency. */
29extern uint64_t __ppc_get_timebase_freq (void);
30
31__END_DECLS
32
33#endif
\ No newline at end of file
lib/libc/include/generic-glibc/bits/sched.h+3
......@@ -54,6 +54,9 @@
5454#define SCHED_FLAG_UTIL_CLAMP \
5555 (SCHED_FLAG_UTIL_CLAMP_MIN | SCHED_FLAG_UTIL_CLAMP_MAX)
5656
57/* Flags for the flags argument of sched_getattr. */
58#define SCHED_GETATTR_FLAG_DL_DYNAMIC 0x01
59
5760/* Use "" to work around incorrect macro expansion of the
5861 __has_include argument (GCC PR 80005). */
5962# ifdef __has_include
lib/libc/include/generic-glibc/bits/struct_stat.h+54-164
......@@ -23,215 +23,105 @@
2323#ifndef _BITS_STRUCT_STAT_H
2424#define _BITS_STRUCT_STAT_H 1
2525
26#include <sgidefs.h>
26#include <bits/endian.h>
27#include <bits/wordsize.h>
28
29#if defined __USE_FILE_OFFSET64
30# define __field64(type, type64, name) type64 name
31#elif __WORDSIZE == 64 || defined __INO_T_MATCHES_INO64_T
32# if defined __INO_T_MATCHES_INO64_T && !defined __OFF_T_MATCHES_OFF64_T
33# error "ino_t and off_t must both be the same type"
34# endif
35# define __field64(type, type64, name) type name
36#elif __BYTE_ORDER == __LITTLE_ENDIAN
37# define __field64(type, type64, name) \
38 type name __attribute__((__aligned__ (__alignof__ (type64)))); int __##name##_pad
39#else
40# define __field64(type, type64, name) \
41 int __##name##_pad __attribute__((__aligned__ (__alignof__ (type64)))); type name
42#endif
2743
28#if _MIPS_SIM == _ABIO32
29/* Structure describing file characteristics. */
3044struct stat
3145 {
32# ifdef __USE_TIME64_REDIRECTS
33# include <bits/struct_stat_time64_helper.h>
34# else
35 unsigned long int st_dev;
36 long int st_pad1[3];
37# ifndef __USE_FILE_OFFSET64
38 __ino_t st_ino; /* File serial number. */
39# else
40 __ino64_t st_ino; /* File serial number. */
41# endif
46 __dev_t st_dev; /* Device. */
47 __field64(__ino_t, __ino64_t, st_ino); /* File serial number. */
4248 __mode_t st_mode; /* File mode. */
4349 __nlink_t st_nlink; /* Link count. */
4450 __uid_t st_uid; /* User ID of the file's owner. */
4551 __gid_t st_gid; /* Group ID of the file's group.*/
46 unsigned long int st_rdev; /* Device number, if device. */
47# ifndef __USE_FILE_OFFSET64
48 long int st_pad2[2];
49 __off_t st_size; /* Size of file, in bytes. */
50 /* SVR4 added this extra long to allow for expansion of off_t. */
51 long int st_pad3;
52# else
53 long int st_pad2[3];
54 __off64_t st_size; /* Size of file, in bytes. */
55# endif
56# ifdef __USE_XOPEN2K8
52 __dev_t st_rdev; /* Device number, if device. */
53 __dev_t __pad1;
54 __field64(__off_t, __off64_t, st_size); /* Size of file, in bytes. */
55 __blksize_t st_blksize; /* Optimal block size for I/O. */
56 int __pad2;
57 __field64(__blkcnt_t, __blkcnt64_t, st_blocks); /* 512-byte blocks */
58#ifdef __USE_XOPEN2K8
5759 /* Nanosecond resolution timestamps are stored in a format
5860 equivalent to 'struct timespec'. This is the type used
5961 whenever possible but the Unix namespace rules do not allow the
6062 identifier 'timespec' to appear in the <sys/stat.h> header.
6163 Therefore we have to handle the use of this header in strictly
6264 standard-compliant sources special. */
63 struct timespec st_atim; /* Time of last access. */
64 struct timespec st_mtim; /* Time of last modification. */
65 struct timespec st_ctim; /* Time of last status change. */
66# define st_atime st_atim.tv_sec /* Backward compatibility. */
67# define st_mtime st_mtim.tv_sec
68# define st_ctime st_ctim.tv_sec
69# else
65 struct timespec st_atim; /* Time of last access. */
66 struct timespec st_mtim; /* Time of last modification. */
67 struct timespec st_ctim; /* Time of last status change. */
68# define st_atime st_atim.tv_sec /* Backward compatibility. */
69# define st_mtime st_mtim.tv_sec
70# define st_ctime st_ctim.tv_sec
71#else
7072 __time_t st_atime; /* Time of last access. */
7173 unsigned long int st_atimensec; /* Nscecs of last access. */
7274 __time_t st_mtime; /* Time of last modification. */
7375 unsigned long int st_mtimensec; /* Nsecs of last modification. */
7476 __time_t st_ctime; /* Time of last status change. */
7577 unsigned long int st_ctimensec; /* Nsecs of last status change. */
76# endif
77 __blksize_t st_blksize; /* Optimal block size for I/O. */
78# ifndef __USE_FILE_OFFSET64
79 __blkcnt_t st_blocks; /* Number of 512-byte blocks allocated. */
80# else
81 long int st_pad4;
82 __blkcnt64_t st_blocks; /* Number of 512-byte blocks allocated. */
83# endif
84 long int st_pad5[14];
85# endif /* __USE_TIME64_REDIRECTS */
78#endif
79 int __glibc_reserved[2];
8680 };
8781
88# ifdef __USE_LARGEFILE64
82#undef __field64
83
84#ifdef __USE_LARGEFILE64
8985struct stat64
9086 {
91# ifdef __USE_TIME64_REDIRECTS
92# include <bits/struct_stat_time64_helper.h>
93# else
94 unsigned long int st_dev;
95 long int st_pad1[3];
96 __ino64_t st_ino; /* File serial number. */
87 __dev_t st_dev; /* Device. */
88 __ino64_t st_ino; /* File serial number. */
9789 __mode_t st_mode; /* File mode. */
9890 __nlink_t st_nlink; /* Link count. */
9991 __uid_t st_uid; /* User ID of the file's owner. */
10092 __gid_t st_gid; /* Group ID of the file's group.*/
101 unsigned long int st_rdev; /* Device number, if device. */
102 long int st_pad2[3];
93 __dev_t st_rdev; /* Device number, if device. */
94 __dev_t __pad1;
10395 __off64_t st_size; /* Size of file, in bytes. */
104# ifdef __USE_XOPEN2K8
105 /* Nanosecond resolution timestamps are stored in a format
106 equivalent to 'struct timespec'. This is the type used
107 whenever possible but the Unix namespace rules do not allow the
108 identifier 'timespec' to appear in the <sys/stat.h> header.
109 Therefore we have to handle the use of this header in strictly
110 standard-compliant sources special. */
111 struct timespec st_atim; /* Time of last access. */
112 struct timespec st_mtim; /* Time of last modification. */
113 struct timespec st_ctim; /* Time of last status change. */
114# else
115 __time_t st_atime; /* Time of last access. */
116 unsigned long int st_atimensec; /* Nscecs of last access. */
117 __time_t st_mtime; /* Time of last modification. */
118 unsigned long int st_mtimensec; /* Nsecs of last modification. */
119 __time_t st_ctime; /* Time of last status change. */
120 unsigned long int st_ctimensec; /* Nsecs of last status change. */
121# endif
12296 __blksize_t st_blksize; /* Optimal block size for I/O. */
123 long int st_pad3;
124 __blkcnt64_t st_blocks; /* Number of 512-byte blocks allocated. */
125 long int st_pad4[14];
126# endif /* __USE_TIME64_REDIRECTS */
127 };
128# endif /* __USE_LARGEFILE64 */
129
130#else /* _MIPS_SIM != _ABIO32 */
131
132struct stat
133 {
134# ifdef __USE_TIME64_REDIRECTS
135# include <bits/struct_stat_time64_helper.h>
136# else
137 __dev_t st_dev;
138 int st_pad1[3]; /* Reserved for st_dev expansion */
139# ifndef __USE_FILE_OFFSET64
140 __ino_t st_ino;
141# else
142 __ino64_t st_ino;
143# endif
144 __mode_t st_mode;
145 __nlink_t st_nlink;
146 __uid_t st_uid;
147 __gid_t st_gid;
148 __dev_t st_rdev;
149# if !defined __USE_FILE_OFFSET64
150 unsigned int st_pad2[2]; /* Reserved for st_rdev expansion */
151 __off_t st_size;
152 int st_pad3;
153# else
154 unsigned int st_pad2[3]; /* Reserved for st_rdev expansion */
155 __off64_t st_size;
156# endif
157# ifdef __USE_XOPEN2K8
97 int __pad2;
98 __blkcnt64_t st_blocks; /* Nr. 512-byte blocks allocated. */
99#ifdef __USE_XOPEN2K8
158100 /* Nanosecond resolution timestamps are stored in a format
159101 equivalent to 'struct timespec'. This is the type used
160102 whenever possible but the Unix namespace rules do not allow the
161103 identifier 'timespec' to appear in the <sys/stat.h> header.
162104 Therefore we have to handle the use of this header in strictly
163105 standard-compliant sources special. */
164 struct timespec st_atim; /* Time of last access. */
165 struct timespec st_mtim; /* Time of last modification. */
166 struct timespec st_ctim; /* Time of last status change. */
167# define st_atime st_atim.tv_sec /* Backward compatibility. */
168# define st_mtime st_mtim.tv_sec
169# define st_ctime st_ctim.tv_sec
170# else
106 struct timespec st_atim; /* Time of last access. */
107 struct timespec st_mtim; /* Time of last modification. */
108 struct timespec st_ctim; /* Time of last status change. */
109#else
171110 __time_t st_atime; /* Time of last access. */
172111 unsigned long int st_atimensec; /* Nscecs of last access. */
173112 __time_t st_mtime; /* Time of last modification. */
174113 unsigned long int st_mtimensec; /* Nsecs of last modification. */
175114 __time_t st_ctime; /* Time of last status change. */
176115 unsigned long int st_ctimensec; /* Nsecs of last status change. */
177# endif
178 __blksize_t st_blksize;
179 unsigned int st_pad4;
180# ifndef __USE_FILE_OFFSET64
181 __blkcnt_t st_blocks;
182# else
183 __blkcnt64_t st_blocks;
184# endif
185 int st_pad5[14];
186# endif
187 };
188
189#ifdef __USE_LARGEFILE64
190struct stat64
191 {
192# ifdef __USE_TIME64_REDIRECTS
193# include <bits/struct_stat_time64_helper.h>
194# else
195 __dev_t st_dev;
196 unsigned int st_pad1[3]; /* Reserved for st_dev expansion */
197 __ino64_t st_ino;
198 __mode_t st_mode;
199 __nlink_t st_nlink;
200 __uid_t st_uid;
201 __gid_t st_gid;
202 __dev_t st_rdev;
203 unsigned int st_pad2[3]; /* Reserved for st_rdev expansion */
204 __off64_t st_size;
205# ifdef __USE_XOPEN2K8
206 /* Nanosecond resolution timestamps are stored in a format
207 equivalent to 'struct timespec'. This is the type used
208 whenever possible but the Unix namespace rules do not allow the
209 identifier 'timespec' to appear in the <sys/stat.h> header.
210 Therefore we have to handle the use of this header in strictly
211 standard-compliant sources special. */
212 struct timespec st_atim; /* Time of last access. */
213 struct timespec st_mtim; /* Time of last modification. */
214 struct timespec st_ctim; /* Time of last status change. */
215# else
216 __time_t st_atime; /* Time of last access. */
217 unsigned long int st_atimensec; /* Nscecs of last access. */
218 __time_t st_mtime; /* Time of last modification. */
219 unsigned long int st_mtimensec; /* Nsecs of last modification. */
220 __time_t st_ctime; /* Time of last status change. */
221 unsigned long int st_ctimensec; /* Nsecs of last status change. */
222# endif
223 __blksize_t st_blksize;
224 unsigned int st_pad3;
225 __blkcnt64_t st_blocks;
226 int st_pad4[14];
227# endif /* __USE_TIME64_REDIRECTS */
228};
229116#endif
230
117 int __glibc_reserved[2];
118 };
231119#endif
232120
233121/* Tell code we have these members. */
234122#define _STATBUF_ST_BLKSIZE
235#define _STATBUF_ST_RDEV
123#define _STATBUF_ST_RDEV
124/* Nanosecond resolution time values are supported. */
125#define _STATBUF_ST_NSEC
236126
237127#endif /* _BITS_STRUCT_STAT_H */
\ No newline at end of file
lib/libc/include/generic-glibc/bits/syscall.h+14-2
......@@ -1,11 +1,11 @@
11/* Generated at libc build time from syscall list. */
2/* The system call list corresponds to kernel 6.17. */
2/* The system call list corresponds to kernel 7.1. */
33
44#ifndef _SYSCALL_H
55# error "Never use <bits/syscall.h> directly; include <sys/syscall.h> instead."
66#endif
77
8#define __GLIBC_LINUX_VERSION_CODE 397568
8#define __GLIBC_LINUX_VERSION_CODE 459008
99
1010#ifdef __NR_FAST_atomic_update
1111# define SYS_FAST_atomic_update __NR_FAST_atomic_update
......@@ -883,6 +883,10 @@
883883# define SYS_listmount __NR_listmount
884884#endif
885885
886#ifdef __NR_listns
887# define SYS_listns __NR_listns
888#endif
889
886890#ifdef __NR_listxattr
887891# define SYS_listxattr __NR_listxattr
888892#endif
......@@ -1899,6 +1903,10 @@
18991903# define SYS_rseq __NR_rseq
19001904#endif
19011905
1906#ifdef __NR_rseq_slice_yield
1907# define SYS_rseq_slice_yield __NR_rseq_slice_yield
1908#endif
1909
19021910#ifdef __NR_rt_sigaction
19031911# define SYS_rt_sigaction __NR_rt_sigaction
19041912#endif
......@@ -2551,6 +2559,10 @@
25512559# define SYS_unshare __NR_unshare
25522560#endif
25532561
2562#ifdef __NR_uprobe
2563# define SYS_uprobe __NR_uprobe
2564#endif
2565
25542566#ifdef __NR_uretprobe
25552567# define SYS_uretprobe __NR_uretprobe
25562568#endif
lib/libc/include/generic-glibc/bits/timesize.h+3-5
......@@ -1,5 +1,5 @@
1/* Bit size of the time_t type at glibc build time, Linux/MIPS.
2 Copyright (C) 2021-2026 Free Software Foundation, Inc.
1/* Bit size of the time_t type at glibc build time, general case.
2 Copyright (C) 2018-2026 Free Software Foundation, Inc.
33 This file is part of the GNU C Library.
44
55 The GNU C Library is free software; you can redistribute it and/or
......@@ -16,7 +16,5 @@
1616 License along with the GNU C Library; if not, see
1717 <https://www.gnu.org/licenses/>. */
1818
19#include <bits/wordsize.h>
20
2119/* Size in bits of the 'time_t' type of the default ABI. */
22#define __TIMESIZE __WORDSIZE
\ No newline at end of file
20#define __TIMESIZE 64
\ No newline at end of file
lib/libc/include/generic-glibc/bits/uio-ext.h+1
......@@ -51,6 +51,7 @@ extern ssize_t process_vm_writev (pid_t __pid, const struct iovec *__lvec,
5151#define RWF_ATOMIC 0x00000040 /* Write is to be issued with torn-write
5252 prevention. */
5353#define RWF_DONTCACHE 0x00000080 /* Uncached buffered IO. */
54#define RWF_NOSIGNAL 0x00000100 /* Do not generate SIGPIPE on error. */
5455
5556__END_DECLS
5657
lib/libc/include/generic-glibc/dlfcn.h+6-1
......@@ -167,7 +167,12 @@ enum
167167 the number of program headers in the array. */
168168 RTLD_DI_PHDR = 11,
169169
170 RTLD_DI_MAX = 11
170 /* Treat ARG as `const char **' and at that location, store the address
171 of the directory name used to expand $ORIGIN in this shared object's
172 dependency file names. */
173 RTLD_DI_ORIGIN_PATH = 12,
174
175 RTLD_DI_MAX = 12
171176 };
172177
173178
lib/libc/include/generic-glibc/elf.h+6-2
......@@ -798,7 +798,8 @@ typedef struct
798798#define NT_X86_XSTATE 0x202 /* x86 extended state using xsave */
799799#define NT_X86_SHSTK 0x204 /* x86 SHSTK state */
800800#define NT_X86_XSAVE_LAYOUT 0x205 /* XSAVE layout description. */
801#define NT_S390_HIGH_GPRS 0x300 /* s390 upper register halves */
801#define NT_S390_HIGH_GPRS 0x300 /* s390 upper register halves. This was
802 used in now removed s390-32 arch. */
802803#define NT_S390_TIMER 0x301 /* s390 timer register */
803804#define NT_S390_TODCMP 0x302 /* s390 TOD clock comparator register */
804805#define NT_S390_TODPREG 0x303 /* s390 TOD programmable register */
......@@ -846,6 +847,7 @@ typedef struct
846847#define NT_RISCV_VECTOR 0x901 /* RISC-V vector registers */
847848#define NT_RISCV_TAGGED_ADDR_CTRL 0x902 /* RISC-V tagged
848849 address control */
850#define NT_RISCV_USER_CFI 0x903 /* RISC-V shadow stack state */
849851#define NT_LOONGARCH_CPUCFG 0xa00 /* LoongArch CPU config registers. */
850852#define NT_LOONGARCH_CSR 0xa01 /* LoongArch control and
851853 status registers. */
......@@ -3470,7 +3472,9 @@ enum
34703472
34713473/* Valid values for the e_flags field. */
34723474
3473#define EF_S390_HIGH_GPRS 0x00000001 /* High GPRs kernel facility needed. */
3475#define EF_S390_HIGH_GPRS 0x00000001 /* High GPRs kernel facility needed.
3476 This was used in now removed s390-32
3477 arch. */
34743478
34753479/* Additional s390 relocs */
34763480
lib/libc/include/generic-glibc/features.h+2-2
......@@ -162,7 +162,7 @@
162162#undef __GLIBC_USE_DEPRECATED_SCANF
163163#undef __GLIBC_USE_C23_STRTOL
164164
165/* Suppress kernel-name space pollution unless user expressedly asks
165/* Suppress kernel-name space pollution unless user explicitly asks
166166 for it. */
167167#ifndef _LOOSE_KERNEL_NAMES
168168# define __KERNEL_STRICT_NAMES
......@@ -580,4 +580,4 @@
580580#include <gnu/stubs.h>
581581
582582
583#endif /* features.h */
583#endif /* features.h */
\ No newline at end of file
lib/libc/include/generic-glibc/fts.h+126-2
......@@ -52,7 +52,29 @@
5252
5353#include <features.h>
5454#include <sys/types.h>
55
55#include <sys/stat.h>
56#include <dirent.h>
57#include <stdbool.h>
58
59enum { __I_RING_SIZE = 4 };
60
61/* When ir_empty is true, the ring is empty.
62 Otherwise, ir_data[B..F] are defined, where B..F is the contiguous
63 range of indices, modulo I_RING_SIZE, from back to front, inclusive.
64 Undefined elements of ir_data are always set to ir_default_val.
65 Popping from an empty ring aborts.
66 Pushing onto a full ring returns the displaced value.
67 An empty ring has F==B and ir_empty == true.
68 A ring with one entry still has F==B, but now ir_empty == false. */
69struct __I_ring
70{
71 int ir_data[__I_RING_SIZE];
72 int ir_default_val;
73 unsigned int ir_front;
74 unsigned int ir_back;
75 bool ir_empty;
76};
77typedef struct __I_ring __I_ring;
5678
5779typedef struct {
5880 struct _ftsent *fts_cur; /* current node */
......@@ -73,11 +95,106 @@ typedef struct {
7395#define FTS_SEEDOT 0x0020 /* return dot and dot-dot */
7496#define FTS_XDEV 0x0040 /* don't cross devices */
7597#define FTS_WHITEOUT 0x0080 /* return whiteout information */
76#define FTS_OPTIONMASK 0x00ff /* valid user option mask */
98
99 /* There are two ways to detect cycles.
100 The lazy way (which works only with FTS_PHYSICAL),
101 with which one may process a directory that is a
102 part of the cycle several times before detecting the cycle.
103 The "tight" way, whereby fts uses more memory (proportional
104 to number of "active" directories, aka distance from root
105 of current tree to current directory -- see active_dir_ht)
106 to detect any cycle right away. For example, du must use
107 this option to avoid counting disk space in a cycle multiple
108 times, but chown -R need not.
109 The default is to use the constant-memory lazy way, when possible
110 (see below).
111
112 However, with FTS_LOGICAL (when following symlinks, e.g., chown -L)
113 using lazy cycle detection is inadequate. For example, traversing
114 a directory containing a symbolic link to a peer directory, it is
115 possible to encounter the same directory twice even though there
116 is no cycle:
117 dir
118 ...
119 slink -> dir
120 So, when FTS_LOGICAL is selected, we have to use a different
121 mode of cycle detection: FTS_TIGHT_CYCLE_CHECK. */
122#define FTS_TIGHT_CYCLE_CHECK 0x0400
123
124 /* Use this flag to enable semantics with which the parent
125 application may be made both more efficient and more robust.
126 Whereas the default is to visit each directory in a recursive
127 traversal (via chdir), using this flag makes it so the initial
128 working directory is never changed. Instead, these functions
129 perform the traversal via a virtual working directory, maintained
130 through the file descriptor member, fts_cwd_fd. */
131# define FTS_CWDFD 0x0800
132
133 /* Historically, for each directory that fts initially encounters, it would
134 open it, read all entries, and stat each entry, storing the results, and
135 then it would process the first entry. But that behavior is bad for
136 locality of reference, and also causes trouble with inode-simulating
137 file systems like FAT, CIFS, FUSE-based ones, etc., when entries from
138 their name/inode cache are flushed too early.
139 Use this flag to make fts_open and fts_read defer the stat/lstat/fststat
140 of each entry until it is actually processed. However, note that if you
141 use this option and also specify a comparison function, that function may
142 not examine any data via fts_statp. However, when fts_statp->st_mode is
143 nonzero, the S_IFMT type bits are valid, with mapped dirent.d_type data.
144 Of course, that happens only on file systems that provide useful
145 dirent.d_type data. */
146#define FTS_DEFER_STAT 0x1000
147
148 /* Use this flag to disable stripping of trailing slashes
149 from input path names during fts_open initialization. */
150#define FTS_VERBATIM 0x2000
151
152#define FTS_MOUNT 0x4000 /* skip other devices */
153#define FTS_OPTIONMASK 0x7fff /* valid user option mask */
77154
78155#define FTS_NAMEONLY 0x0100 /* (private) child names only */
79156#define FTS_STOP 0x0200 /* (private) unrecoverable error */
157
80158 int fts_options; /* fts_open options, global flags */
159
160 int fts_cwd_fd; /* the file descriptor on which the
161 virtual cwd is open, or AT_FDCWD */
162
163 /* Map a directory's device number to a boolean. The boolean is
164 true if for that file system (type determined by a single fstatfs
165 call per FS) st_nlink can be used to calculate the number of
166 sub-directory entries in a directory.
167 Using this table is an optimization that permits us to look up
168 file system type on a per-inode basis at the minimal cost of
169 calling fstatfs only once per traversed device. */
170 struct hash_table *fts_leaf_optimization_works_ht;
171
172 union {
173 /* This data structure is used if FTS_TIGHT_CYCLE_CHECK is
174 specified. It records the directories between a starting
175 point and the current directory. I.e., a directory is
176 recorded here IFF we have visited it once, but we have not
177 yet completed processing of all its entries. Every time we
178 visit a new directory, we add that directory to this set.
179 When we finish with a directory (usually by visiting it a
180 second time), we remove it from this set. Each entry in
181 this data structure is a device/inode pair. This data
182 structure is used to detect directory cycles efficiently and
183 promptly even when the depth of a hierarchy is in the tens
184 of thousands. */
185 struct hash_table *ht;
186
187 /* FIXME: rename these two members to have the fts_ prefix */
188 /* This data structure uses a lazy cycle-detection algorithm,
189 as done by rm via cycle-check.c. It's the default,
190 but it's not appropriate for programs like du. */
191 struct cycle_check_state *state;
192 } fts_cycle;
193
194 /* A stack of the file descriptors corresponding to the
195 most-recently traversed parent directories.
196 Currently used only in FTS_CWDFD mode. */
197 __I_ring fts_fd_ring;
81198} FTS;
82199
83200#ifdef __USE_LARGEFILE64
......@@ -92,6 +209,13 @@ typedef struct {
92209 int fts_nitems; /* elements in the sort array */
93210 int (*fts_compar) (const void *, const void *); /* compare fn */
94211 int fts_options; /* fts_open options, global flags */
212 int fts_cwd_fd;
213 struct hash_table *fts_leaf_optimization_works_ht;
214 union {
215 struct hash_table *ht;
216 struct cycle_check_state *state;
217 } fts_cycle;
218 __I_ring fts_fd_ring;
95219} FTS64;
96220#endif
97221
lib/libc/include/generic-glibc/gnu/lib-names-32.h+1
......@@ -24,4 +24,5 @@
2424#define LIBRESOLV_SO "libresolv.so.2"
2525#define LIBRT_SO "librt.so.1"
2626#define LIBTHREAD_DB_SO "libthread_db.so.1"
27#define LIBUNWIND_SO "libunwind.so.1"
2728#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
lib/libc/include/generic-glibc/gnu/lib-names-hard.h+1
......@@ -24,4 +24,5 @@
2424#define LIBRESOLV_SO "libresolv.so.2"
2525#define LIBRT_SO "librt.so.1"
2626#define LIBTHREAD_DB_SO "libthread_db.so.1"
27#define LIBUNWIND_SO "libunwind.so.1"
2728#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
lib/libc/include/generic-glibc/gnu/lib-names-n32_hard.h+1
......@@ -23,4 +23,5 @@
2323#define LIBRESOLV_SO "libresolv.so.2"
2424#define LIBRT_SO "librt.so.1"
2525#define LIBTHREAD_DB_SO "libthread_db.so.1"
26#define LIBUNWIND_SO "libunwind.so.1"
2627#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
lib/libc/include/generic-glibc/gnu/lib-names-n64_hard.h+1
......@@ -23,4 +23,5 @@
2323#define LIBRESOLV_SO "libresolv.so.2"
2424#define LIBRT_SO "librt.so.1"
2525#define LIBTHREAD_DB_SO "libthread_db.so.1"
26#define LIBUNWIND_SO "libunwind.so.1"
2627#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
lib/libc/include/generic-glibc/gnu/lib-names-o32_hard.h+1
......@@ -23,4 +23,5 @@
2323#define LIBRESOLV_SO "libresolv.so.2"
2424#define LIBRT_SO "librt.so.1"
2525#define LIBTHREAD_DB_SO "libthread_db.so.1"
26#define LIBUNWIND_SO "libunwind.so.1"
2627#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
lib/libc/include/generic-glibc/gnu/lib-names-o32_soft.h+1
......@@ -23,4 +23,5 @@
2323#define LIBRESOLV_SO "libresolv.so.2"
2424#define LIBRT_SO "librt.so.1"
2525#define LIBTHREAD_DB_SO "libthread_db.so.1"
26#define LIBUNWIND_SO "libunwind.so.1"
2627#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
lib/libc/include/generic-glibc/gnu/lib-names-soft.h+1
......@@ -24,4 +24,5 @@
2424#define LIBRESOLV_SO "libresolv.so.2"
2525#define LIBRT_SO "librt.so.1"
2626#define LIBTHREAD_DB_SO "libthread_db.so.1"
27#define LIBUNWIND_SO "libunwind.so.1"
2728#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
lib/libc/include/generic-glibc/gnu/stubs-64.h deleted-16
......@@ -1,16 +0,0 @@
1/* This file is automatically generated.
2 It defines a symbol `__stub_FUNCTION' for each function
3 in the C library which is a stub, meaning it will fail
4 every time called, usually setting errno to ENOSYS. */
5
6#ifdef _LIBC
7 #error Applications may not define the macro _LIBC
8#endif
9
10#define __stub_chflags
11#define __stub_fchflags
12#define __stub_gtty
13#define __stub_revoke
14#define __stub_setlogin
15#define __stub_sigreturn
16#define __stub_stty
\ No newline at end of file
lib/libc/include/generic-glibc/netinet/in.h+2
......@@ -91,6 +91,8 @@ enum
9191#define IPPROTO_MPLS IPPROTO_MPLS
9292 IPPROTO_ETHERNET = 143, /* Ethernet-within-IPv6 Encapsulation. */
9393#define IPPROTO_ETHERNET IPPROTO_ETHERNET
94 IPPROTO_AGGFRAG = 144, /* AGGFRAG in ESP (RFC 9347). */
95#define IPPROTO_AGGFRAG IPPROTO_AGGFRAG
9496 IPPROTO_RAW = 255, /* Raw IP packets. */
9597#define IPPROTO_RAW IPPROTO_RAW
9698 IPPROTO_SMC = 256, /* Shared Memory Communications. */
lib/libc/include/generic-glibc/netinet/tcp.h+25-2
......@@ -80,6 +80,9 @@
8080 as a cmsg on read. */
8181#define TCP_CM_INQ TCP_INQ
8282#define TCP_TX_DELAY 37 /* Delay outgoing packets by XX usec. */
83#define TCP_RTO_MAX_MS 44 /* Max time to retransmit (msec). */
84#define TCP_RTO_MIN_US 45 /* Min time to retransmit (usec). */
85#define TCP_DELACK_MAX_US 46 /* Max delayed ack time (usec). */
8386
8487#define TCP_REPAIR_ON 1
8588#define TCP_REPAIR_OFF 0
......@@ -226,6 +229,24 @@ enum tcp_ca_state
226229 TCP_CA_Loss = 4
227230};
228231
232/* Values for tcpi_ecn_mode after negotiation. */
233#define TCPI_ECN_MODE_DISABLED 0x0
234#define TCPI_ECN_MODE_RFC3168 0x1
235#define TCPI_ECN_MODE_ACCECN 0x2
236#define TCPI_ECN_MODE_PENDING 0x3
237
238/* Values for tcpi_accecn_opt_seen. */
239#define TCP_ACCECN_OPT_NOT_SEEN 0x0
240#define TCP_ACCECN_OPT_EMPTY_SEEN 0x1
241#define TCP_ACCECN_OPT_COUNTER_SEEN 0x2
242#define TCP_ACCECN_OPT_FAIL_SEEN 0x3
243
244/* Values for tcpi_accecn_fail_mode. */
245#define TCP_ACCECN_ACE_FAIL_SEND 0x1
246#define TCP_ACCECN_ACE_FAIL_RECV 0x2
247#define TCP_ACCECN_OPT_FAIL_SEND 0x4
248#define TCP_ACCECN_OPT_FAIL_RECV 0x8
249
229250struct tcp_info
230251{
231252 uint8_t tcpi_state;
......@@ -319,8 +340,10 @@ struct tcp_info
319340 uint32_t tcpi_received_e1_bytes;
320341 uint32_t tcpi_received_e0_bytes;
321342 uint32_t tcpi_received_ce_bytes;
322 uint16_t tcpi_accecn_fail_mode;
323 uint16_t tcpi_accecn_opt_seen;
343 uint32_t tcpi_ecn_mode:2,
344 tcpi_accecn_opt_seen:2,
345 tcpi_accecn_fail_mode:4,
346 tcpi_options2:24;
324347};
325348
326349/* Netlink attributes types for SCM_TIMESTAMPING_OPT_STATS */
lib/libc/include/generic-glibc/regex.h+1-1
......@@ -74,7 +74,7 @@ typedef unsigned long int reg_syntax_t;
7474#ifdef __USE_GNU
7575/* If this bit is not set, then \ inside a bracket expression is literal.
7676 If set, then such a \ quotes the following character. */
77# define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1)
77# define RE_BACKSLASH_ESCAPE_IN_LISTS 1ul
7878
7979/* If this bit is not set, then + and ? are operators, and \+ and \? are
8080 literals.
lib/libc/include/generic-glibc/spawn.h+20
......@@ -200,6 +200,26 @@ extern int posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *
200200 int __fd, int __newfd)
201201 __THROW __nonnull ((1));
202202
203#ifdef __USE_XOPEN2K24XSI
204
205/* Add an action changing the directory to PATH during spawn. This
206 affects the subsequent file actions.
207 Alias of posix_spawn_file_actions_addchdir_np. */
208extern int __REDIRECT_NTH (posix_spawn_file_actions_addchdir,
209 (posix_spawn_file_actions_t * __restrict __actions,
210 const char *__restrict __path),
211 posix_spawn_file_actions_addchdir_np);
212
213/* Add an action changing the directory to FD during spawn. This
214 affects the subsequent file actions. FD is not duplicated and must
215 be open when the file action is executed.
216 Alias of posix_spawn_file_actions_addfchdir_np. */
217extern int __REDIRECT_NTH (posix_spawn_file_actions_addfchdir,
218 (posix_spawn_file_actions_t *, int __fd),
219 posix_spawn_file_actions_addfchdir_np);
220
221#endif /* __USE_XOPEN2K24XSI */
222
203223#ifdef __USE_MISC
204224/* Add an action changing the directory to PATH during spawn. This
205225 affects the subsequent file actions. */
lib/libc/include/generic-glibc/stdlib.h+1-1
......@@ -1225,4 +1225,4 @@ extern size_t memalignment (const void *__p);
12251225
12261226__END_DECLS
12271227
1228#endif /* stdlib.h */
1228#endif /* stdlib.h */
\ No newline at end of file
lib/libc/include/generic-glibc/sys/mount.h+18-4
......@@ -21,7 +21,6 @@
2121#ifndef _SYS_MOUNT_H
2222#define _SYS_MOUNT_H 1
2323
24#include <fcntl.h>
2524#include <features.h>
2625#include <stdint.h>
2726#include <stddef.h>
......@@ -190,6 +189,11 @@ enum
190189
191190/* fsmount flags. */
192191#define FSMOUNT_CLOEXEC 0x00000001
192// zig patch: check target glibc version
193#if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 44) || __GLIBC__ > 2
194#define FSMOUNT_NAMESPACE 0x00000002 /* Create the mount in a new mount
195 namespace. */
196#endif /* (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 44) || __GLIBC__ > 2 */
193197
194198/* mount attributes used on fsmount. */
195199#define MOUNT_ATTR_RDONLY 0x00000001 /* Mount read-only. */
......@@ -267,10 +271,20 @@ enum fsconfig_command
267271#define FSOPEN_CLOEXEC 0x00000001
268272
269273/* open_tree flags. */
270#define OPEN_TREE_CLONE 1 /* Clone the target tree and attach the clone */
271#define OPEN_TREE_CLOEXEC O_CLOEXEC /* Close the file on execve() */
272
274#ifndef OPEN_TREE_CLONE
275# define OPEN_TREE_CLONE 1 /* Clone the target tree and attach the clone */
276#endif
277#define OPEN_TREE_NAMESPACE (1 << 1) /* Clone the target tree into a new mount
278 namespace */
279#ifndef O_CLOEXEC
280# include <bits/cloexec.h>
281# define O_CLOEXEC __O_CLOEXEC
273282#endif
283#ifndef OPEN_TREE_CLOEXEC
284# define OPEN_TREE_CLOEXEC O_CLOEXEC /* Close the file on execve() */
285#endif
286
287#endif /* (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 36) || __GLIBC__ > 2 */
274288
275289__BEGIN_DECLS
276290
lib/libc/include/generic-glibc/sys/pidfd.h+26
......@@ -64,6 +64,15 @@
6464#define PIDFD_INFO_EXIT (1UL << 3)
6565/* Only returned if requested. */
6666#define PIDFD_INFO_COREDUMP (1UL << 4)
67// zig patch: check target glibc version
68#if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 44) || __GLIBC__ > 2
69/* Want/got supported mask flags */
70#define PIDFD_INFO_SUPPORTED_MASK (1UL << 5)
71/* Always returned if PIDFD_INFO_COREDUMP is requested. */
72#define PIDFD_INFO_COREDUMP_SIGNAL (1UL << 6)
73/* Always returned if PIDFD_INFO_COREDUMP is requested. */
74#define PIDFD_INFO_COREDUMP_CODE (1UL << 7)
75#endif /* (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 44) || __GLIBC__ > 2 */
6776
6877
6978/* Value for coredump_mask in pidfd_info. Only valid if PIDFD_INFO_COREDUMP
......@@ -95,11 +104,28 @@ struct pidfd_info
95104 __uint32_t fsgid;
96105 __int32_t exit_code;
97106 __uint32_t coredump_mask;
107// zig patch: check target glibc version
108#if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 44) || __GLIBC__ > 2
109 __uint32_t coredump_signal;
110 __uint32_t coredump_code;
111 __uint32_t coredump_pad;
112 __uint64_t supported_mask;
113#else
98114 __uint32_t __spare1;
115#endif /* (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 44) || __GLIBC__ > 2 */
99116};
100117
101118/* sizeof first published struct */
102119#define PIDFD_INFO_SIZE_VER0 64
120// zig patch: check target glibc version
121#if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 44) || __GLIBC__ > 2
122/* sizeof second published struct */
123#define PIDFD_INFO_SIZE_VER1 72
124/* sizeof third published struct */
125#define PIDFD_INFO_SIZE_VER2 80
126/* sizeof fourth published struct */
127#define PIDFD_INFO_SIZE_VER3 88
128#endif /* (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 44) || __GLIBC__ > 2 */
103129
104130#define PIDFD_GET_INFO _IOWR(PIDFS_IOCTL_MAGIC, 11, struct pidfd_info)
105131
lib/libc/include/generic-glibc/sys/platform/ppc.h deleted-146
......@@ -1,146 +0,0 @@
1/* Facilities specific to the PowerPC architecture
2 Copyright (C) 2012-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
18
19#ifndef _SYS_PLATFORM_PPC_H
20#define _SYS_PLATFORM_PPC_H 1
21
22#include <features.h>
23#include <stdint.h>
24#include <bits/ppc.h>
25
26/* Read the Time Base Register. */
27static __inline__ uint64_t
28__ppc_get_timebase (void)
29{
30#if __GNUC_PREREQ (4, 8)
31 return __builtin_ppc_get_timebase ();
32#else
33# ifdef __powerpc64__
34 uint64_t __tb;
35 /* "volatile" is necessary here, because the user expects this assembly
36 isn't moved after an optimization. */
37 __asm__ volatile ("mfspr %0, 268" : "=r" (__tb));
38 return __tb;
39# else /* not __powerpc64__ */
40 uint32_t __tbu, __tbl, __tmp; \
41 __asm__ volatile ("0:\n\t"
42 "mftbu %0\n\t"
43 "mftbl %1\n\t"
44 "mftbu %2\n\t"
45 "cmpw %0, %2\n\t"
46 "bne- 0b"
47 : "=r" (__tbu), "=r" (__tbl), "=r" (__tmp));
48 return (((uint64_t) __tbu << 32) | __tbl);
49# endif /* not __powerpc64__ */
50#endif
51}
52
53/* The following functions provide hints about the usage of shared processor
54 resources, as defined in ISA 2.06 and newer. */
55
56/* Provides a hint that performance will probably be improved if shared
57 resources dedicated to the executing processor are released for use by other
58 processors. */
59static __inline__ void
60__ppc_yield (void)
61{
62 __asm__ volatile ("or 27,27,27");
63}
64
65/* Provides a hint that performance will probably be improved if shared
66 resources dedicated to the executing processor are released until
67 all outstanding storage accesses to caching-inhibited storage have been
68 completed. */
69static __inline__ void
70__ppc_mdoio (void)
71{
72 __asm__ volatile ("or 29,29,29");
73}
74
75/* Provides a hint that performance will probably be improved if shared
76 resources dedicated to the executing processor are released until all
77 outstanding storage accesses to cacheable storage for which the data is not
78 in the cache have been completed. */
79static __inline__ void
80__ppc_mdoom (void)
81{
82 __asm__ volatile ("or 30,30,30");
83}
84
85
86/* ISA 2.05 and beyond support the Program Priority Register (PPR) to adjust
87 thread priorities based on lock acquisition, wait and release. The ISA
88 defines the use of form 'or Rx,Rx,Rx' as the way to modify the PRI field.
89 The unprivileged priorities are:
90 Rx = 1 (low)
91 Rx = 2 (medium)
92 Rx = 6 (medium-low/normal)
93 The 'or' instruction form is a nop in previous hardware, so it is safe to
94 use unguarded. The default value is 'medium'.
95 */
96
97static __inline__ void
98__ppc_set_ppr_med (void)
99{
100 __asm__ volatile ("or 2,2,2");
101}
102
103static __inline__ void
104__ppc_set_ppr_med_low (void)
105{
106 __asm__ volatile ("or 6,6,6");
107}
108
109static __inline__ void
110__ppc_set_ppr_low (void)
111{
112 __asm__ volatile ("or 1,1,1");
113}
114
115/* Power ISA 2.07 (Book II, Chapter 3) extends the priorities that can be set
116 to the Program Priority Register (PPR). The form 'or Rx,Rx,Rx' is used to
117 modify the PRI field of the PPR, the same way as described above.
118 The new priority levels are:
119 Rx = 31 (very low)
120 Rx = 5 (medium high)
121 Any program can set the priority to very low, low, medium low, and medium,
122 as these are unprivileged.
123 The medium high priority, on the other hand, is privileged, and may only be
124 set during certain time intervals by problem-state programs. If the program
125 priority is medium high when the time interval expires or if an attempt is
126 made to set the priority to medium high when it is not allowed, the PRI
127 field is set to medium.
128 */
129
130#ifdef _ARCH_PWR8
131
132static __inline__ void
133__ppc_set_ppr_very_low (void)
134{
135 __asm__ volatile ("or 31,31,31");
136}
137
138static __inline__ void
139__ppc_set_ppr_med_high (void)
140{
141 __asm__ volatile ("or 5,5,5");
142}
143
144#endif
145
146#endif /* sys/platform/ppc.h */
\ No newline at end of file
lib/libc/include/loongarch-linux-gnu/bits/hwcap.h+3-1
......@@ -36,4 +36,6 @@
3636#define HWCAP_LOONGARCH_LBT_ARM (1 << 11)
3737#define HWCAP_LOONGARCH_LBT_MIPS (1 << 12)
3838#define HWCAP_LOONGARCH_PTW (1 << 13)
39#define HWCAP_LOONGARCH_LSPW (1 << 14)
\ No newline at end of file
39#define HWCAP_LOONGARCH_LSPW (1 << 14)
40#define HWCAP_LOONGARCH_SCQ (1 << 15)
41#define HWCAP_LOONGARCH_LAM_BH (1 << 16)
\ No newline at end of file
lib/libc/include/loongarch-linux-gnu/bits/long-double.h deleted-21
......@@ -1,21 +0,0 @@
1/* Properties of long double type. ldbl-128 version.
2 Copyright (C) 2016-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
18
19/* long double is distinct from double, so there is nothing to
20 define here. */
21#define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0
\ No newline at end of file
lib/libc/include/loongarch-linux-gnu/bits/struct_stat.h deleted-127
......@@ -1,127 +0,0 @@
1/* Definition for struct stat.
2 Copyright (C) 2020-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library. If not, see
17 <https://www.gnu.org/licenses/>. */
18
19#if !defined _SYS_STAT_H && !defined _FCNTL_H
20# error "Never include <bits/struct_stat.h> directly; use <sys/stat.h> instead."
21#endif
22
23#ifndef _BITS_STRUCT_STAT_H
24#define _BITS_STRUCT_STAT_H 1
25
26#include <bits/endian.h>
27#include <bits/wordsize.h>
28
29#if defined __USE_FILE_OFFSET64
30# define __field64(type, type64, name) type64 name
31#elif __WORDSIZE == 64 || defined __INO_T_MATCHES_INO64_T
32# if defined __INO_T_MATCHES_INO64_T && !defined __OFF_T_MATCHES_OFF64_T
33# error "ino_t and off_t must both be the same type"
34# endif
35# define __field64(type, type64, name) type name
36#elif __BYTE_ORDER == __LITTLE_ENDIAN
37# define __field64(type, type64, name) \
38 type name __attribute__((__aligned__ (__alignof__ (type64)))); int __##name##_pad
39#else
40# define __field64(type, type64, name) \
41 int __##name##_pad __attribute__((__aligned__ (__alignof__ (type64)))); type name
42#endif
43
44struct stat
45 {
46 __dev_t st_dev; /* Device. */
47 __field64(__ino_t, __ino64_t, st_ino); /* File serial number. */
48 __mode_t st_mode; /* File mode. */
49 __nlink_t st_nlink; /* Link count. */
50 __uid_t st_uid; /* User ID of the file's owner. */
51 __gid_t st_gid; /* Group ID of the file's group.*/
52 __dev_t st_rdev; /* Device number, if device. */
53 __dev_t __pad1;
54 __field64(__off_t, __off64_t, st_size); /* Size of file, in bytes. */
55 __blksize_t st_blksize; /* Optimal block size for I/O. */
56 int __pad2;
57 __field64(__blkcnt_t, __blkcnt64_t, st_blocks); /* 512-byte blocks */
58#ifdef __USE_XOPEN2K8
59 /* Nanosecond resolution timestamps are stored in a format
60 equivalent to 'struct timespec'. This is the type used
61 whenever possible but the Unix namespace rules do not allow the
62 identifier 'timespec' to appear in the <sys/stat.h> header.
63 Therefore we have to handle the use of this header in strictly
64 standard-compliant sources special. */
65 struct timespec st_atim; /* Time of last access. */
66 struct timespec st_mtim; /* Time of last modification. */
67 struct timespec st_ctim; /* Time of last status change. */
68# define st_atime st_atim.tv_sec /* Backward compatibility. */
69# define st_mtime st_mtim.tv_sec
70# define st_ctime st_ctim.tv_sec
71#else
72 __time_t st_atime; /* Time of last access. */
73 unsigned long int st_atimensec; /* Nscecs of last access. */
74 __time_t st_mtime; /* Time of last modification. */
75 unsigned long int st_mtimensec; /* Nsecs of last modification. */
76 __time_t st_ctime; /* Time of last status change. */
77 unsigned long int st_ctimensec; /* Nsecs of last status change. */
78#endif
79 int __glibc_reserved[2];
80 };
81
82#undef __field64
83
84#ifdef __USE_LARGEFILE64
85struct stat64
86 {
87 __dev_t st_dev; /* Device. */
88 __ino64_t st_ino; /* File serial number. */
89 __mode_t st_mode; /* File mode. */
90 __nlink_t st_nlink; /* Link count. */
91 __uid_t st_uid; /* User ID of the file's owner. */
92 __gid_t st_gid; /* Group ID of the file's group.*/
93 __dev_t st_rdev; /* Device number, if device. */
94 __dev_t __pad1;
95 __off64_t st_size; /* Size of file, in bytes. */
96 __blksize_t st_blksize; /* Optimal block size for I/O. */
97 int __pad2;
98 __blkcnt64_t st_blocks; /* Nr. 512-byte blocks allocated. */
99#ifdef __USE_XOPEN2K8
100 /* Nanosecond resolution timestamps are stored in a format
101 equivalent to 'struct timespec'. This is the type used
102 whenever possible but the Unix namespace rules do not allow the
103 identifier 'timespec' to appear in the <sys/stat.h> header.
104 Therefore we have to handle the use of this header in strictly
105 standard-compliant sources special. */
106 struct timespec st_atim; /* Time of last access. */
107 struct timespec st_mtim; /* Time of last modification. */
108 struct timespec st_ctim; /* Time of last status change. */
109#else
110 __time_t st_atime; /* Time of last access. */
111 unsigned long int st_atimensec; /* Nscecs of last access. */
112 __time_t st_mtime; /* Time of last modification. */
113 unsigned long int st_mtimensec; /* Nsecs of last modification. */
114 __time_t st_ctime; /* Time of last status change. */
115 unsigned long int st_ctimensec; /* Nsecs of last status change. */
116#endif
117 int __glibc_reserved[2];
118 };
119#endif
120
121/* Tell code we have these members. */
122#define _STATBUF_ST_BLKSIZE
123#define _STATBUF_ST_RDEV
124/* Nanosecond resolution time values are supported. */
125#define _STATBUF_ST_NSEC
126
127#endif /* _BITS_STRUCT_STAT_H */
\ No newline at end of file
lib/libc/include/loongarch-linux-gnu/bits/timesize.h deleted-20
......@@ -1,20 +0,0 @@
1/* Bit size of the time_t type at glibc build time, general case.
2 Copyright (C) 2018-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
18
19/* Size in bits of the 'time_t' type of the default ABI. */
20#define __TIMESIZE 64
\ No newline at end of file
lib/libc/include/loongarch-linux-gnu/bits/wordsize.h+13-2
......@@ -15,5 +15,16 @@
1515 License along with the GNU C Library; if not, see
1616 <https://www.gnu.org/licenses/>. */
1717
18#define __WORDSIZE 64
19#define __WORDSIZE_TIME64_COMPAT32 0
\ No newline at end of file
18// zig patch: handle 32-bit and 64-bit in the same header
19#if __loongarch_grlen == (__SIZEOF_POINTER__ * 8)
20# define __WORDSIZE __loongarch_grlen
21#else
22# error unsupported ABI
23#endif
24
25#define __WORDSIZE_TIME64_COMPAT32 0
26
27#if __WORDSIZE == 32
28# define __WORDSIZE32_SIZE_ULONG 0
29# define __WORDSIZE32_PTRDIFF_LONG 0
30#endif
lib/libc/include/loongarch-linux-gnu/fpu_control.h+9
......@@ -94,6 +94,15 @@ extern void __loongarch_fpu_setcw (fpu_control_t) __THROW;
9494#define _FPU_GETCW(cw) __asm__ volatile ("movfcsr2gr %0,$fcsr0" : "=r"(cw))
9595#define _FPU_SETCW(cw) __asm__ volatile ("movgr2fcsr $fcsr0,%0" : : "r"(cw))
9696
97#define _FPU_GET_ENABLES(cw) __asm__ volatile ("movfcsr2gr %0,$fcsr1" : "=r"(cw))
98#define _FPU_SET_ENABLES(cw) __asm__ volatile ("movgr2fcsr $fcsr1,%0" : : "r"(cw))
99
100#define _FPU_GET_FLAGS_CAUSE(cw) __asm__ volatile ("movfcsr2gr %0,$fcsr2" : "=r"(cw))
101#define _FPU_SET_FLAGS_CAUSE(cw) __asm__ volatile ("movgr2fcsr $fcsr2,%0" : : "r"(cw))
102
103#define _FPU_GET_RM(cw) __asm__ volatile ("movfcsr2gr %0,$fcsr3" : "=r"(cw))
104#define _FPU_SET_RM(cw) __asm__ volatile ("movgr2fcsr $fcsr3,%0" : : "r"(cw))
105
97106/* Default control word set at startup. */
98107extern fpu_control_t __fpu_control;
99108
lib/libc/include/loongarch-linux-gnu/gnu/lib-names-ilp32d.h created+28
......@@ -0,0 +1,28 @@
1/* This file is automatically generated. */
2#ifndef __GNU_LIB_NAMES_H
3# error "Never use <gnu/lib-names-ilp32d.h> directly; include <gnu/lib-names.h> instead."
4#endif
5
6#define LD_LINUX_LOONGARCH_ILP32D_SO "ld-linux-loongarch-ilp32d.so.1"
7#define LD_SO "ld-linux-loongarch-ilp32d.so.1"
8#define LIBANL_SO "libanl.so.1"
9#define LIBBROKENLOCALE_SO "libBrokenLocale.so.1"
10#define LIBC_MALLOC_DEBUG_SO "libc_malloc_debug.so.0"
11#define LIBC_SO "libc.so.6"
12#define LIBDL_SO "libdl.so.2"
13#define LIBGCC_S_SO "libgcc_s.so.1"
14#define LIBMVEC_SO "libmvec.so.1"
15#define LIBM_SO "libm.so.6"
16#define LIBNSL_SO "libnsl.so.1"
17#define LIBNSS_COMPAT_SO "libnss_compat.so.2"
18#define LIBNSS_DB_SO "libnss_db.so.2"
19#define LIBNSS_DNS_SO "libnss_dns.so.2"
20#define LIBNSS_FILES_SO "libnss_files.so.2"
21#define LIBNSS_HESIOD_SO "libnss_hesiod.so.2"
22#define LIBNSS_LDAP_SO "libnss_ldap.so.2"
23#define LIBPTHREAD_SO "libpthread.so.0"
24#define LIBRESOLV_SO "libresolv.so.2"
25#define LIBRT_SO "librt.so.1"
26#define LIBTHREAD_DB_SO "libthread_db.so.1"
27#define LIBUNWIND_SO "libunwind.so.1"
28#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
lib/libc/include/loongarch-linux-gnu/gnu/lib-names-ilp32s.h created+28
......@@ -0,0 +1,28 @@
1/* This file is automatically generated. */
2#ifndef __GNU_LIB_NAMES_H
3# error "Never use <gnu/lib-names-ilp32s.h> directly; include <gnu/lib-names.h> instead."
4#endif
5
6#define LD_LINUX_LOONGARCH_ILP32S_SO "ld-linux-loongarch-ilp32s.so.1"
7#define LD_SO "ld-linux-loongarch-ilp32s.so.1"
8#define LIBANL_SO "libanl.so.1"
9#define LIBBROKENLOCALE_SO "libBrokenLocale.so.1"
10#define LIBC_MALLOC_DEBUG_SO "libc_malloc_debug.so.0"
11#define LIBC_SO "libc.so.6"
12#define LIBDL_SO "libdl.so.2"
13#define LIBGCC_S_SO "libgcc_s.so.1"
14#define LIBMVEC_SO "libmvec.so.1"
15#define LIBM_SO "libm.so.6"
16#define LIBNSL_SO "libnsl.so.1"
17#define LIBNSS_COMPAT_SO "libnss_compat.so.2"
18#define LIBNSS_DB_SO "libnss_db.so.2"
19#define LIBNSS_DNS_SO "libnss_dns.so.2"
20#define LIBNSS_FILES_SO "libnss_files.so.2"
21#define LIBNSS_HESIOD_SO "libnss_hesiod.so.2"
22#define LIBNSS_LDAP_SO "libnss_ldap.so.2"
23#define LIBPTHREAD_SO "libpthread.so.0"
24#define LIBRESOLV_SO "libresolv.so.2"
25#define LIBRT_SO "librt.so.1"
26#define LIBTHREAD_DB_SO "libthread_db.so.1"
27#define LIBUNWIND_SO "libunwind.so.1"
28#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
lib/libc/include/loongarch-linux-gnu/gnu/lib-names-lp64d.h+1
......@@ -24,4 +24,5 @@
2424#define LIBRESOLV_SO "libresolv.so.2"
2525#define LIBRT_SO "librt.so.1"
2626#define LIBTHREAD_DB_SO "libthread_db.so.1"
27#define LIBUNWIND_SO "libunwind.so.1"
2728#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
lib/libc/include/loongarch-linux-gnu/gnu/lib-names-lp64s.h+1
......@@ -24,4 +24,5 @@
2424#define LIBRESOLV_SO "libresolv.so.2"
2525#define LIBRT_SO "librt.so.1"
2626#define LIBTHREAD_DB_SO "libthread_db.so.1"
27#define LIBUNWIND_SO "libunwind.so.1"
2728#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
lib/libc/include/loongarch-linux-gnu/gnu/lib-names.h+6
......@@ -6,6 +6,12 @@
66
77#include <bits/wordsize.h>
88
9#if __WORDSIZE == 32 && defined __loongarch_soft_float
10# include <gnu/lib-names-ilp32s.h>
11#endif
12#if __WORDSIZE == 32 && defined __loongarch_double_float
13# include <gnu/lib-names-ilp32d.h>
14#endif
915#if __WORDSIZE == 64 && defined __loongarch_soft_float
1016# include <gnu/lib-names-lp64s.h>
1117#endif
lib/libc/include/loongarch-linux-gnu/gnu/stubs-ilp32d.h created+21
......@@ -0,0 +1,21 @@
1/* This file is automatically generated.
2 It defines a symbol `__stub_FUNCTION' for each function
3 in the C library which is a stub, meaning it will fail
4 every time called, usually setting errno to ENOSYS. */
5
6#ifdef _LIBC
7 #error Applications may not define the macro _LIBC
8#endif
9
10#define __stub___compat_bdflush
11#define __stub___compat_create_module
12#define __stub___compat_get_kernel_syms
13#define __stub___compat_query_module
14#define __stub___compat_uselib
15#define __stub_chflags
16#define __stub_fchflags
17#define __stub_gtty
18#define __stub_revoke
19#define __stub_setlogin
20#define __stub_sigreturn
21#define __stub_stty
\ No newline at end of file
lib/libc/include/loongarch-linux-gnu/gnu/stubs-ilp32s.h created+38
......@@ -0,0 +1,38 @@
1/* This file is automatically generated.
2 It defines a symbol `__stub_FUNCTION' for each function
3 in the C library which is a stub, meaning it will fail
4 every time called, usually setting errno to ENOSYS. */
5
6#ifdef _LIBC
7 #error Applications may not define the macro _LIBC
8#endif
9
10#define __stub___compat_bdflush
11#define __stub___compat_create_module
12#define __stub___compat_get_kernel_syms
13#define __stub___compat_query_module
14#define __stub___compat_uselib
15#define __stub_chflags
16#define __stub_fchflags
17#define __stub_feclearexcept
18#define __stub_fedisableexcept
19#define __stub_feenableexcept
20#define __stub_fegetenv
21#define __stub_fegetexcept
22#define __stub_fegetexceptflag
23#define __stub_fegetmode
24#define __stub_fegetround
25#define __stub_feholdexcept
26#define __stub_feraiseexcept
27#define __stub_fesetenv
28#define __stub_fesetexcept
29#define __stub_fesetexceptflag
30#define __stub_fesetmode
31#define __stub_fesetround
32#define __stub_fetestexcept
33#define __stub_feupdateenv
34#define __stub_gtty
35#define __stub_revoke
36#define __stub_setlogin
37#define __stub_sigreturn
38#define __stub_stty
\ No newline at end of file
lib/libc/include/loongarch-linux-gnu/gnu/stubs.h+6
......@@ -4,6 +4,12 @@
44
55#include <bits/wordsize.h>
66
7#if __WORDSIZE == 32 && defined __loongarch_soft_float
8# include <gnu/stubs-ilp32s.h>
9#endif
10#if __WORDSIZE == 32 && defined __loongarch_double_float
11# include <gnu/stubs-ilp32d.h>
12#endif
713#if __WORDSIZE == 64 && defined __loongarch_soft_float
814# include <gnu/stubs-lp64s.h>
915#endif
lib/libc/include/loongarch-linux-gnu/sys/asm.h+32-6
......@@ -23,10 +23,8 @@
2323#include <sysdeps/generic/sysdep.h>
2424
2525/* Macros to handle different pointer/register sizes for 32/64-bit code. */
26#if __loongarch_grlen == 64
2627#define SZREG 8
27#define SZFREG 8
28#define SZVREG 16
29#define SZXREG 32
3028#define REG_L ld.d
3129#define REG_S st.d
3230#define SRLI srli.d
......@@ -34,10 +32,38 @@
3432#define ADDI addi.d
3533#define ADD add.d
3634#define SUB sub.d
37#define BSTRINS bstrins.d
3835#define LI li.d
39#define FREG_L fld.d
40#define FREG_S fst.d
36#define BSTRINS bstrins.d
37
38#elif __loongarch_grlen == 32
39
40#define SZREG 4
41#define REG_L ld.w
42#define REG_S st.w
43#define SRLI srli.w
44#define SLLI slli.w
45#define ADDI addi.w
46#define ADD add.w
47#define SUB sub.w
48#define LI li.w
49#define BSTRINS bstrins.w
50
51#else
52#error __loongarch_grlen must equal 32 or 64
53#endif
54
55#if __loongarch_frlen == 64
56 #define SZFREG 8
57 #define FREG_L fld.d
58 #define FREG_S fst.d
59#elif __loongarch_frlen == 32
60 #define SZFREG 4
61 #define FREG_L fld.s
62 #define FREG_S fst.s
63#endif
64
65#define SZVREG 16
66#define SZXREG 32
4167
4268/* Declare leaf routine.
4369 The usage of macro LEAF/ENTRY is as follows:
lib/libc/include/m68k-linux-gnu/gnu/lib-names.h+1
......@@ -24,6 +24,7 @@
2424#define LIBRESOLV_SO "libresolv.so.2"
2525#define LIBRT_SO "librt.so.1"
2626#define LIBTHREAD_DB_SO "libthread_db.so.1"
27#define LIBUNWIND_SO "libunwind.so.1"
2728#define LIBUTIL_SO "libutil.so.1"
2829
2930#endif /* gnu/lib-names.h */
\ No newline at end of file
lib/libc/include/mips-linux-gnu/bits/long-double.h created+24
......@@ -0,0 +1,24 @@
1/* Properties of long double type. MIPS version.
2 Copyright (C) 2016-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
18
19#include <sgidefs.h>
20
21#if !defined __NO_LONG_DOUBLE_MATH && _MIPS_SIM == _ABIO32
22# define __NO_LONG_DOUBLE_MATH 1
23#endif
24#define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0
\ No newline at end of file
lib/libc/include/mips-linux-gnu/bits/struct_stat.h created+237
......@@ -0,0 +1,237 @@
1/* Definition for struct stat.
2 Copyright (C) 2020-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library. If not, see
17 <https://www.gnu.org/licenses/>. */
18
19#if !defined _SYS_STAT_H && !defined _FCNTL_H
20# error "Never include <bits/struct_stat.h> directly; use <sys/stat.h> instead."
21#endif
22
23#ifndef _BITS_STRUCT_STAT_H
24#define _BITS_STRUCT_STAT_H 1
25
26#include <sgidefs.h>
27
28#if _MIPS_SIM == _ABIO32
29/* Structure describing file characteristics. */
30struct stat
31 {
32# ifdef __USE_TIME64_REDIRECTS
33# include <bits/struct_stat_time64_helper.h>
34# else
35 unsigned long int st_dev;
36 long int st_pad1[3];
37# ifndef __USE_FILE_OFFSET64
38 __ino_t st_ino; /* File serial number. */
39# else
40 __ino64_t st_ino; /* File serial number. */
41# endif
42 __mode_t st_mode; /* File mode. */
43 __nlink_t st_nlink; /* Link count. */
44 __uid_t st_uid; /* User ID of the file's owner. */
45 __gid_t st_gid; /* Group ID of the file's group.*/
46 unsigned long int st_rdev; /* Device number, if device. */
47# ifndef __USE_FILE_OFFSET64
48 long int st_pad2[2];
49 __off_t st_size; /* Size of file, in bytes. */
50 /* SVR4 added this extra long to allow for expansion of off_t. */
51 long int st_pad3;
52# else
53 long int st_pad2[3];
54 __off64_t st_size; /* Size of file, in bytes. */
55# endif
56# ifdef __USE_XOPEN2K8
57 /* Nanosecond resolution timestamps are stored in a format
58 equivalent to 'struct timespec'. This is the type used
59 whenever possible but the Unix namespace rules do not allow the
60 identifier 'timespec' to appear in the <sys/stat.h> header.
61 Therefore we have to handle the use of this header in strictly
62 standard-compliant sources special. */
63 struct timespec st_atim; /* Time of last access. */
64 struct timespec st_mtim; /* Time of last modification. */
65 struct timespec st_ctim; /* Time of last status change. */
66# define st_atime st_atim.tv_sec /* Backward compatibility. */
67# define st_mtime st_mtim.tv_sec
68# define st_ctime st_ctim.tv_sec
69# else
70 __time_t st_atime; /* Time of last access. */
71 unsigned long int st_atimensec; /* Nscecs of last access. */
72 __time_t st_mtime; /* Time of last modification. */
73 unsigned long int st_mtimensec; /* Nsecs of last modification. */
74 __time_t st_ctime; /* Time of last status change. */
75 unsigned long int st_ctimensec; /* Nsecs of last status change. */
76# endif
77 __blksize_t st_blksize; /* Optimal block size for I/O. */
78# ifndef __USE_FILE_OFFSET64
79 __blkcnt_t st_blocks; /* Number of 512-byte blocks allocated. */
80# else
81 long int st_pad4;
82 __blkcnt64_t st_blocks; /* Number of 512-byte blocks allocated. */
83# endif
84 long int st_pad5[14];
85# endif /* __USE_TIME64_REDIRECTS */
86 };
87
88# ifdef __USE_LARGEFILE64
89struct stat64
90 {
91# ifdef __USE_TIME64_REDIRECTS
92# include <bits/struct_stat_time64_helper.h>
93# else
94 unsigned long int st_dev;
95 long int st_pad1[3];
96 __ino64_t st_ino; /* File serial number. */
97 __mode_t st_mode; /* File mode. */
98 __nlink_t st_nlink; /* Link count. */
99 __uid_t st_uid; /* User ID of the file's owner. */
100 __gid_t st_gid; /* Group ID of the file's group.*/
101 unsigned long int st_rdev; /* Device number, if device. */
102 long int st_pad2[3];
103 __off64_t st_size; /* Size of file, in bytes. */
104# ifdef __USE_XOPEN2K8
105 /* Nanosecond resolution timestamps are stored in a format
106 equivalent to 'struct timespec'. This is the type used
107 whenever possible but the Unix namespace rules do not allow the
108 identifier 'timespec' to appear in the <sys/stat.h> header.
109 Therefore we have to handle the use of this header in strictly
110 standard-compliant sources special. */
111 struct timespec st_atim; /* Time of last access. */
112 struct timespec st_mtim; /* Time of last modification. */
113 struct timespec st_ctim; /* Time of last status change. */
114# else
115 __time_t st_atime; /* Time of last access. */
116 unsigned long int st_atimensec; /* Nscecs of last access. */
117 __time_t st_mtime; /* Time of last modification. */
118 unsigned long int st_mtimensec; /* Nsecs of last modification. */
119 __time_t st_ctime; /* Time of last status change. */
120 unsigned long int st_ctimensec; /* Nsecs of last status change. */
121# endif
122 __blksize_t st_blksize; /* Optimal block size for I/O. */
123 long int st_pad3;
124 __blkcnt64_t st_blocks; /* Number of 512-byte blocks allocated. */
125 long int st_pad4[14];
126# endif /* __USE_TIME64_REDIRECTS */
127 };
128# endif /* __USE_LARGEFILE64 */
129
130#else /* _MIPS_SIM != _ABIO32 */
131
132struct stat
133 {
134# ifdef __USE_TIME64_REDIRECTS
135# include <bits/struct_stat_time64_helper.h>
136# else
137 __dev_t st_dev;
138 int st_pad1[3]; /* Reserved for st_dev expansion */
139# ifndef __USE_FILE_OFFSET64
140 __ino_t st_ino;
141# else
142 __ino64_t st_ino;
143# endif
144 __mode_t st_mode;
145 __nlink_t st_nlink;
146 __uid_t st_uid;
147 __gid_t st_gid;
148 __dev_t st_rdev;
149# if !defined __USE_FILE_OFFSET64
150 unsigned int st_pad2[2]; /* Reserved for st_rdev expansion */
151 __off_t st_size;
152 int st_pad3;
153# else
154 unsigned int st_pad2[3]; /* Reserved for st_rdev expansion */
155 __off64_t st_size;
156# endif
157# ifdef __USE_XOPEN2K8
158 /* Nanosecond resolution timestamps are stored in a format
159 equivalent to 'struct timespec'. This is the type used
160 whenever possible but the Unix namespace rules do not allow the
161 identifier 'timespec' to appear in the <sys/stat.h> header.
162 Therefore we have to handle the use of this header in strictly
163 standard-compliant sources special. */
164 struct timespec st_atim; /* Time of last access. */
165 struct timespec st_mtim; /* Time of last modification. */
166 struct timespec st_ctim; /* Time of last status change. */
167# define st_atime st_atim.tv_sec /* Backward compatibility. */
168# define st_mtime st_mtim.tv_sec
169# define st_ctime st_ctim.tv_sec
170# else
171 __time_t st_atime; /* Time of last access. */
172 unsigned long int st_atimensec; /* Nscecs of last access. */
173 __time_t st_mtime; /* Time of last modification. */
174 unsigned long int st_mtimensec; /* Nsecs of last modification. */
175 __time_t st_ctime; /* Time of last status change. */
176 unsigned long int st_ctimensec; /* Nsecs of last status change. */
177# endif
178 __blksize_t st_blksize;
179 unsigned int st_pad4;
180# ifndef __USE_FILE_OFFSET64
181 __blkcnt_t st_blocks;
182# else
183 __blkcnt64_t st_blocks;
184# endif
185 int st_pad5[14];
186# endif
187 };
188
189#ifdef __USE_LARGEFILE64
190struct stat64
191 {
192# ifdef __USE_TIME64_REDIRECTS
193# include <bits/struct_stat_time64_helper.h>
194# else
195 __dev_t st_dev;
196 unsigned int st_pad1[3]; /* Reserved for st_dev expansion */
197 __ino64_t st_ino;
198 __mode_t st_mode;
199 __nlink_t st_nlink;
200 __uid_t st_uid;
201 __gid_t st_gid;
202 __dev_t st_rdev;
203 unsigned int st_pad2[3]; /* Reserved for st_rdev expansion */
204 __off64_t st_size;
205# ifdef __USE_XOPEN2K8
206 /* Nanosecond resolution timestamps are stored in a format
207 equivalent to 'struct timespec'. This is the type used
208 whenever possible but the Unix namespace rules do not allow the
209 identifier 'timespec' to appear in the <sys/stat.h> header.
210 Therefore we have to handle the use of this header in strictly
211 standard-compliant sources special. */
212 struct timespec st_atim; /* Time of last access. */
213 struct timespec st_mtim; /* Time of last modification. */
214 struct timespec st_ctim; /* Time of last status change. */
215# else
216 __time_t st_atime; /* Time of last access. */
217 unsigned long int st_atimensec; /* Nscecs of last access. */
218 __time_t st_mtime; /* Time of last modification. */
219 unsigned long int st_mtimensec; /* Nsecs of last modification. */
220 __time_t st_ctime; /* Time of last status change. */
221 unsigned long int st_ctimensec; /* Nsecs of last status change. */
222# endif
223 __blksize_t st_blksize;
224 unsigned int st_pad3;
225 __blkcnt64_t st_blocks;
226 int st_pad4[14];
227# endif /* __USE_TIME64_REDIRECTS */
228};
229#endif
230
231#endif
232
233/* Tell code we have these members. */
234#define _STATBUF_ST_BLKSIZE
235#define _STATBUF_ST_RDEV
236
237#endif /* _BITS_STRUCT_STAT_H */
\ No newline at end of file
lib/libc/include/mips-linux-gnu/bits/timesize.h created+22
......@@ -0,0 +1,22 @@
1/* Bit size of the time_t type at glibc build time, Linux/MIPS.
2 Copyright (C) 2021-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
18
19#include <bits/wordsize.h>
20
21/* Size in bits of the 'time_t' type of the default ABI. */
22#define __TIMESIZE __WORDSIZE
\ No newline at end of file
lib/libc/include/mips-linux-gnu/bits/waitstatus.h created+68
......@@ -0,0 +1,68 @@
1/* Definitions of status bits for `wait' et al.
2 MIPS version, based on the generic version (bits/waitstatus.h).
3
4 Copyright (C) 1992-2026 Free Software Foundation, Inc.
5 This file is part of the GNU C Library.
6
7 The GNU C Library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation; either
10 version 2.1 of the License, or (at your option) any later version.
11
12 The GNU C Library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public
18 License along with the GNU C Library; if not, see
19 <https://www.gnu.org/licenses/>. */
20
21#if !defined _SYS_WAIT_H && !defined _STDLIB_H
22# error "Never include <bits/waitstatus.h> directly; use <sys/wait.h> instead."
23#endif
24
25
26/* On MIPS SIGRTMAX is 127, so we need to handle the status code 127
27 which is impossible on other ports. */
28
29/* If WIFEXITED(STATUS), the low-order 8 bits of the status. */
30#define __WEXITSTATUS(status) (((status) & 0xff00) >> 8)
31
32/* If WIFSIGNALED(STATUS), the terminating signal. */
33#define __WTERMSIG(status) ((status) & 0x7f)
34
35/* If WIFSTOPPED(STATUS), the signal that stopped the child. */
36#define __WSTOPSIG(status) __WEXITSTATUS(status)
37
38/* Nonzero if STATUS indicates normal termination. */
39#define __WIFEXITED(status) (__WTERMSIG(status) == 0)
40
41/* Nonzero if STATUS indicates termination by a signal. */
42static __inline int
43__WIFSIGNALED (int __status)
44{
45 return ((signed char) ((__status & 0x7f) + 1) >> 1) > 0 || __status == 0x7f;
46}
47
48/* Nonzero if STATUS indicates the child is stopped. */
49static __inline int
50__WIFSTOPPED (int __status)
51{
52 return (__status & 0xff) == 0x7f && __status != 0x7f;
53}
54
55/* Nonzero if STATUS indicates the child continued after a stop. We only
56 define this if <bits/waitflags.h> provides the WCONTINUED flag bit. */
57#ifdef WCONTINUED
58# define __WIFCONTINUED(status) ((status) == __W_CONTINUED)
59#endif
60
61/* Nonzero if STATUS indicates the child dumped core. */
62#define __WCOREDUMP(status) ((status) & __WCOREFLAG)
63
64/* Macros for constructing status values. */
65#define __W_EXITCODE(ret, sig) ((ret) << 8 | (sig))
66#define __W_STOPCODE(sig) ((sig) << 8 | 0x7f)
67#define __W_CONTINUED 0xffff
68#define __WCOREFLAG 0x80
\ No newline at end of file
lib/libc/include/powerpc-linux-gnu/bits/long-double.h+1-1
......@@ -1,5 +1,5 @@
11/* Properties of long double type. ldbl-opt version.
2 Copyright (C) 2016-2026 Free Software Foundation, Inc.
2 Copyright (C) 2019-2026 Free Software Foundation, Inc.
33 This file is part of the GNU C Library.
44
55 The GNU C Library is free software; you can redistribute it and/or
lib/libc/include/powerpc-linux-gnu/bits/ppc.h created+33
......@@ -0,0 +1,33 @@
1/* Facilities specific to the PowerPC architecture on Linux
2 Copyright (C) 2012-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
18
19#ifndef _BITS_PPC_H
20#define _BITS_PPC_H
21
22#ifndef _SYS_PLATFORM_PPC_H
23# error "Never include this file directly; use <sys/platform/ppc.h> instead."
24#endif
25
26__BEGIN_DECLS
27
28/* Read the time base frequency. */
29extern uint64_t __ppc_get_timebase_freq (void);
30
31__END_DECLS
32
33#endif
\ No newline at end of file
lib/libc/include/powerpc-linux-gnu/bits/struct_mutex.h+1-1
......@@ -59,4 +59,4 @@ struct __pthread_mutex_s
5959 0, 0, 0, __kind, 0, { { 0, 0 } }
6060#endif
6161
62#endif
62#endif
\ No newline at end of file
lib/libc/include/powerpc-linux-gnu/gnu/lib-names-32.h deleted-26
......@@ -1,26 +0,0 @@
1/* This file is automatically generated. */
2#ifndef __GNU_LIB_NAMES_H
3# error "Never use <gnu/lib-names-32.h> directly; include <gnu/lib-names.h> instead."
4#endif
5
6#define LD_SO "ld.so.1"
7#define LIBANL_SO "libanl.so.1"
8#define LIBBROKENLOCALE_SO "libBrokenLocale.so.1"
9#define LIBC_MALLOC_DEBUG_SO "libc_malloc_debug.so.0"
10#define LIBC_SO "libc.so.6"
11#define LIBDL_SO "libdl.so.2"
12#define LIBGCC_S_SO "libgcc_s.so.1"
13#define LIBMVEC_SO "libmvec.so.1"
14#define LIBM_SO "libm.so.6"
15#define LIBNSL_SO "libnsl.so.1"
16#define LIBNSS_COMPAT_SO "libnss_compat.so.2"
17#define LIBNSS_DB_SO "libnss_db.so.2"
18#define LIBNSS_DNS_SO "libnss_dns.so.2"
19#define LIBNSS_FILES_SO "libnss_files.so.2"
20#define LIBNSS_HESIOD_SO "libnss_hesiod.so.2"
21#define LIBNSS_LDAP_SO "libnss_ldap.so.2"
22#define LIBPTHREAD_SO "libpthread.so.0"
23#define LIBRESOLV_SO "libresolv.so.2"
24#define LIBRT_SO "librt.so.1"
25#define LIBTHREAD_DB_SO "libthread_db.so.1"
26#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
lib/libc/include/powerpc-linux-gnu/gnu/lib-names-64-v1.h deleted-27
......@@ -1,27 +0,0 @@
1/* This file is automatically generated. */
2#ifndef __GNU_LIB_NAMES_H
3# error "Never use <gnu/lib-names-64-v1.h> directly; include <gnu/lib-names.h> instead."
4#endif
5
6#define LD64_SO "ld64.so.1"
7#define LD_SO "ld64.so.1"
8#define LIBANL_SO "libanl.so.1"
9#define LIBBROKENLOCALE_SO "libBrokenLocale.so.1"
10#define LIBC_MALLOC_DEBUG_SO "libc_malloc_debug.so.0"
11#define LIBC_SO "libc.so.6"
12#define LIBDL_SO "libdl.so.2"
13#define LIBGCC_S_SO "libgcc_s.so.1"
14#define LIBMVEC_SO "libmvec.so.1"
15#define LIBM_SO "libm.so.6"
16#define LIBNSL_SO "libnsl.so.1"
17#define LIBNSS_COMPAT_SO "libnss_compat.so.2"
18#define LIBNSS_DB_SO "libnss_db.so.2"
19#define LIBNSS_DNS_SO "libnss_dns.so.2"
20#define LIBNSS_FILES_SO "libnss_files.so.2"
21#define LIBNSS_HESIOD_SO "libnss_hesiod.so.2"
22#define LIBNSS_LDAP_SO "libnss_ldap.so.2"
23#define LIBPTHREAD_SO "libpthread.so.0"
24#define LIBRESOLV_SO "libresolv.so.2"
25#define LIBRT_SO "librt.so.1"
26#define LIBTHREAD_DB_SO "libthread_db.so.1"
27#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
lib/libc/include/powerpc-linux-gnu/gnu/lib-names-64-v2.h+1
......@@ -24,4 +24,5 @@
2424#define LIBRESOLV_SO "libresolv.so.2"
2525#define LIBRT_SO "librt.so.1"
2626#define LIBTHREAD_DB_SO "libthread_db.so.1"
27#define LIBUNWIND_SO "libunwind.so.1"
2728#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
lib/libc/include/powerpc-linux-gnu/gnu/stubs-64-v1.h deleted-16
......@@ -1,16 +0,0 @@
1/* This file is automatically generated.
2 It defines a symbol `__stub_FUNCTION' for each function
3 in the C library which is a stub, meaning it will fail
4 every time called, usually setting errno to ENOSYS. */
5
6#ifdef _LIBC
7 #error Applications may not define the macro _LIBC
8#endif
9
10#define __stub_chflags
11#define __stub_fchflags
12#define __stub_gtty
13#define __stub_revoke
14#define __stub_setlogin
15#define __stub_sigreturn
16#define __stub_stty
\ No newline at end of file
lib/libc/include/powerpc-linux-gnu/sys/platform/ppc.h created+146
......@@ -0,0 +1,146 @@
1/* Facilities specific to the PowerPC architecture
2 Copyright (C) 2012-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
18
19#ifndef _SYS_PLATFORM_PPC_H
20#define _SYS_PLATFORM_PPC_H 1
21
22#include <features.h>
23#include <stdint.h>
24#include <bits/ppc.h>
25
26/* Read the Time Base Register. */
27static __inline__ uint64_t
28__ppc_get_timebase (void)
29{
30#if __GNUC_PREREQ (4, 8)
31 return __builtin_ppc_get_timebase ();
32#else
33# ifdef __powerpc64__
34 uint64_t __tb;
35 /* "volatile" is necessary here, because the user expects this assembly
36 isn't moved after an optimization. */
37 __asm__ volatile ("mfspr %0, 268" : "=r" (__tb));
38 return __tb;
39# else /* not __powerpc64__ */
40 uint32_t __tbu, __tbl, __tmp; \
41 __asm__ volatile ("0:\n\t"
42 "mftbu %0\n\t"
43 "mftbl %1\n\t"
44 "mftbu %2\n\t"
45 "cmpw %0, %2\n\t"
46 "bne- 0b"
47 : "=r" (__tbu), "=r" (__tbl), "=r" (__tmp));
48 return (((uint64_t) __tbu << 32) | __tbl);
49# endif /* not __powerpc64__ */
50#endif
51}
52
53/* The following functions provide hints about the usage of shared processor
54 resources, as defined in ISA 2.06 and newer. */
55
56/* Provides a hint that performance will probably be improved if shared
57 resources dedicated to the executing processor are released for use by other
58 processors. */
59static __inline__ void
60__ppc_yield (void)
61{
62 __asm__ volatile ("or 27,27,27");
63}
64
65/* Provides a hint that performance will probably be improved if shared
66 resources dedicated to the executing processor are released until
67 all outstanding storage accesses to caching-inhibited storage have been
68 completed. */
69static __inline__ void
70__ppc_mdoio (void)
71{
72 __asm__ volatile ("or 29,29,29");
73}
74
75/* Provides a hint that performance will probably be improved if shared
76 resources dedicated to the executing processor are released until all
77 outstanding storage accesses to cacheable storage for which the data is not
78 in the cache have been completed. */
79static __inline__ void
80__ppc_mdoom (void)
81{
82 __asm__ volatile ("or 30,30,30");
83}
84
85
86/* ISA 2.05 and beyond support the Program Priority Register (PPR) to adjust
87 thread priorities based on lock acquisition, wait and release. The ISA
88 defines the use of form 'or Rx,Rx,Rx' as the way to modify the PRI field.
89 The unprivileged priorities are:
90 Rx = 1 (low)
91 Rx = 2 (medium)
92 Rx = 6 (medium-low/normal)
93 The 'or' instruction form is a nop in previous hardware, so it is safe to
94 use unguarded. The default value is 'medium'.
95 */
96
97static __inline__ void
98__ppc_set_ppr_med (void)
99{
100 __asm__ volatile ("or 2,2,2");
101}
102
103static __inline__ void
104__ppc_set_ppr_med_low (void)
105{
106 __asm__ volatile ("or 6,6,6");
107}
108
109static __inline__ void
110__ppc_set_ppr_low (void)
111{
112 __asm__ volatile ("or 1,1,1");
113}
114
115/* Power ISA 2.07 (Book II, Chapter 3) extends the priorities that can be set
116 to the Program Priority Register (PPR). The form 'or Rx,Rx,Rx' is used to
117 modify the PRI field of the PPR, the same way as described above.
118 The new priority levels are:
119 Rx = 31 (very low)
120 Rx = 5 (medium high)
121 Any program can set the priority to very low, low, medium low, and medium,
122 as these are unprivileged.
123 The medium high priority, on the other hand, is privileged, and may only be
124 set during certain time intervals by problem-state programs. If the program
125 priority is medium high when the time interval expires or if an attempt is
126 made to set the priority to medium high when it is not allowed, the PRI
127 field is set to medium.
128 */
129
130#ifdef _ARCH_PWR8
131
132static __inline__ void
133__ppc_set_ppr_very_low (void)
134{
135 __asm__ volatile ("or 31,31,31");
136}
137
138static __inline__ void
139__ppc_set_ppr_med_high (void)
140{
141 __asm__ volatile ("or 5,5,5");
142}
143
144#endif
145
146#endif /* sys/platform/ppc.h */
\ No newline at end of file
lib/libc/include/riscv-linux-gnu/bits/long-double.h deleted-21
......@@ -1,21 +0,0 @@
1/* Properties of long double type. ldbl-128 version.
2 Copyright (C) 2016-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
18
19/* long double is distinct from double, so there is nothing to
20 define here. */
21#define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0
\ No newline at end of file
lib/libc/include/riscv-linux-gnu/bits/struct_stat.h deleted-127
......@@ -1,127 +0,0 @@
1/* Definition for struct stat.
2 Copyright (C) 2020-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library. If not, see
17 <https://www.gnu.org/licenses/>. */
18
19#if !defined _SYS_STAT_H && !defined _FCNTL_H
20# error "Never include <bits/struct_stat.h> directly; use <sys/stat.h> instead."
21#endif
22
23#ifndef _BITS_STRUCT_STAT_H
24#define _BITS_STRUCT_STAT_H 1
25
26#include <bits/endian.h>
27#include <bits/wordsize.h>
28
29#if defined __USE_FILE_OFFSET64
30# define __field64(type, type64, name) type64 name
31#elif __WORDSIZE == 64 || defined __INO_T_MATCHES_INO64_T
32# if defined __INO_T_MATCHES_INO64_T && !defined __OFF_T_MATCHES_OFF64_T
33# error "ino_t and off_t must both be the same type"
34# endif
35# define __field64(type, type64, name) type name
36#elif __BYTE_ORDER == __LITTLE_ENDIAN
37# define __field64(type, type64, name) \
38 type name __attribute__((__aligned__ (__alignof__ (type64)))); int __##name##_pad
39#else
40# define __field64(type, type64, name) \
41 int __##name##_pad __attribute__((__aligned__ (__alignof__ (type64)))); type name
42#endif
43
44struct stat
45 {
46 __dev_t st_dev; /* Device. */
47 __field64(__ino_t, __ino64_t, st_ino); /* File serial number. */
48 __mode_t st_mode; /* File mode. */
49 __nlink_t st_nlink; /* Link count. */
50 __uid_t st_uid; /* User ID of the file's owner. */
51 __gid_t st_gid; /* Group ID of the file's group.*/
52 __dev_t st_rdev; /* Device number, if device. */
53 __dev_t __pad1;
54 __field64(__off_t, __off64_t, st_size); /* Size of file, in bytes. */
55 __blksize_t st_blksize; /* Optimal block size for I/O. */
56 int __pad2;
57 __field64(__blkcnt_t, __blkcnt64_t, st_blocks); /* 512-byte blocks */
58#ifdef __USE_XOPEN2K8
59 /* Nanosecond resolution timestamps are stored in a format
60 equivalent to 'struct timespec'. This is the type used
61 whenever possible but the Unix namespace rules do not allow the
62 identifier 'timespec' to appear in the <sys/stat.h> header.
63 Therefore we have to handle the use of this header in strictly
64 standard-compliant sources special. */
65 struct timespec st_atim; /* Time of last access. */
66 struct timespec st_mtim; /* Time of last modification. */
67 struct timespec st_ctim; /* Time of last status change. */
68# define st_atime st_atim.tv_sec /* Backward compatibility. */
69# define st_mtime st_mtim.tv_sec
70# define st_ctime st_ctim.tv_sec
71#else
72 __time_t st_atime; /* Time of last access. */
73 unsigned long int st_atimensec; /* Nscecs of last access. */
74 __time_t st_mtime; /* Time of last modification. */
75 unsigned long int st_mtimensec; /* Nsecs of last modification. */
76 __time_t st_ctime; /* Time of last status change. */
77 unsigned long int st_ctimensec; /* Nsecs of last status change. */
78#endif
79 int __glibc_reserved[2];
80 };
81
82#undef __field64
83
84#ifdef __USE_LARGEFILE64
85struct stat64
86 {
87 __dev_t st_dev; /* Device. */
88 __ino64_t st_ino; /* File serial number. */
89 __mode_t st_mode; /* File mode. */
90 __nlink_t st_nlink; /* Link count. */
91 __uid_t st_uid; /* User ID of the file's owner. */
92 __gid_t st_gid; /* Group ID of the file's group.*/
93 __dev_t st_rdev; /* Device number, if device. */
94 __dev_t __pad1;
95 __off64_t st_size; /* Size of file, in bytes. */
96 __blksize_t st_blksize; /* Optimal block size for I/O. */
97 int __pad2;
98 __blkcnt64_t st_blocks; /* Nr. 512-byte blocks allocated. */
99#ifdef __USE_XOPEN2K8
100 /* Nanosecond resolution timestamps are stored in a format
101 equivalent to 'struct timespec'. This is the type used
102 whenever possible but the Unix namespace rules do not allow the
103 identifier 'timespec' to appear in the <sys/stat.h> header.
104 Therefore we have to handle the use of this header in strictly
105 standard-compliant sources special. */
106 struct timespec st_atim; /* Time of last access. */
107 struct timespec st_mtim; /* Time of last modification. */
108 struct timespec st_ctim; /* Time of last status change. */
109#else
110 __time_t st_atime; /* Time of last access. */
111 unsigned long int st_atimensec; /* Nscecs of last access. */
112 __time_t st_mtime; /* Time of last modification. */
113 unsigned long int st_mtimensec; /* Nsecs of last modification. */
114 __time_t st_ctime; /* Time of last status change. */
115 unsigned long int st_ctimensec; /* Nsecs of last status change. */
116#endif
117 int __glibc_reserved[2];
118 };
119#endif
120
121/* Tell code we have these members. */
122#define _STATBUF_ST_BLKSIZE
123#define _STATBUF_ST_RDEV
124/* Nanosecond resolution time values are supported. */
125#define _STATBUF_ST_NSEC
126
127#endif /* _BITS_STRUCT_STAT_H */
\ No newline at end of file
lib/libc/include/riscv-linux-gnu/bits/timesize.h deleted-20
......@@ -1,20 +0,0 @@
1/* Bit size of the time_t type at glibc build time, general case.
2 Copyright (C) 2018-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
18
19/* Size in bits of the 'time_t' type of the default ABI. */
20#define __TIMESIZE 64
\ No newline at end of file
lib/libc/include/riscv-linux-gnu/gnu/lib-names-ilp32d.h+1
......@@ -24,4 +24,5 @@
2424#define LIBRESOLV_SO "libresolv.so.2"
2525#define LIBRT_SO "librt.so.1"
2626#define LIBTHREAD_DB_SO "libthread_db.so.1"
27#define LIBUNWIND_SO "libunwind.so.1"
2728#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
lib/libc/include/riscv-linux-gnu/gnu/lib-names-lp64d.h+1
......@@ -24,4 +24,5 @@
2424#define LIBRESOLV_SO "libresolv.so.2"
2525#define LIBRT_SO "librt.so.1"
2626#define LIBTHREAD_DB_SO "libthread_db.so.1"
27#define LIBUNWIND_SO "libunwind.so.1"
2728#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
lib/libc/include/s390x-linux-gnu/bits/elfclass.h+1-6
......@@ -27,11 +27,6 @@
2727
2828#define __ELF_NATIVE_CLASS __WORDSIZE
2929
30#if __WORDSIZE == 64
3130/* 64 bit Linux for S/390 is exceptional as it has .hash section with
3231 64 bit entries. */
33typedef uint64_t Elf_Symndx;
34#else
35/* 32 bit Linux for S/390 has normal .hash section entries with 32 bits. */
36typedef uint32_t Elf_Symndx;
37#endif
\ No newline at end of file
32typedef uint64_t Elf_Symndx;
\ No newline at end of file
lib/libc/include/s390x-linux-gnu/bits/environments.h deleted-96
......@@ -1,96 +0,0 @@
1/* Copyright (C) 1999-2026 Free Software Foundation, Inc.
2 This file is part of the GNU C Library.
3
4 The GNU C Library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
8
9 The GNU C Library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public
15 License along with the GNU C Library; if not, see
16 <https://www.gnu.org/licenses/>. */
17
18#ifndef _UNISTD_H
19# error "Never include this file directly. Use <unistd.h> instead"
20#endif
21
22#include <bits/wordsize.h>
23
24/* This header should define the following symbols under the described
25 situations. A value `1' means that the model is always supported,
26 `-1' means it is never supported. Undefined means it cannot be
27 statically decided.
28
29 _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type
30 _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type
31
32 _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type
33 _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type
34
35 The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG,
36 _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32,
37 _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were
38 used in previous versions of the Unix standard and are available
39 only for compatibility.
40*/
41
42#if __WORDSIZE == 64
43
44/* Environments with 32-bit wide pointers are optionally provided.
45 Therefore following macros aren't defined:
46 # undef _POSIX_V7_ILP32_OFF32
47 # undef _POSIX_V7_ILP32_OFFBIG
48 # undef _POSIX_V6_ILP32_OFF32
49 # undef _POSIX_V6_ILP32_OFFBIG
50 # undef _XBS5_ILP32_OFF32
51 # undef _XBS5_ILP32_OFFBIG
52 and users need to check at runtime. */
53
54/* We also have no use (for now) for an environment with bigger pointers
55 and offsets. */
56# define _POSIX_V7_LPBIG_OFFBIG -1
57# define _POSIX_V6_LPBIG_OFFBIG -1
58# define _XBS5_LPBIG_OFFBIG -1
59
60/* By default we have 64-bit wide `long int', pointers and `off_t'. */
61# define _POSIX_V7_LP64_OFF64 1
62# define _POSIX_V6_LP64_OFF64 1
63# define _XBS5_LP64_OFF64 1
64
65#else /* __WORDSIZE == 32 */
66
67/* By default we have 32-bit wide `int', `long int', pointers and `off_t'
68 and all platforms support LFS. */
69# define _POSIX_V7_ILP32_OFF32 1
70# define _POSIX_V7_ILP32_OFFBIG 1
71# define _POSIX_V6_ILP32_OFF32 1
72# define _POSIX_V6_ILP32_OFFBIG 1
73# define _XBS5_ILP32_OFF32 1
74# define _XBS5_ILP32_OFFBIG 1
75
76/* We optionally provide an environment with the above size but an 64-bit
77 side `off_t'. Therefore we don't define _POSIX_V7_ILP32_OFFBIG. */
78
79/* Environments with 64-bit wide pointers can be provided,
80 so these macros aren't defined:
81 # undef _POSIX_V7_LP64_OFF64
82 # undef _POSIX_V7_LPBIG_OFFBIG
83 # undef _POSIX_V6_LP64_OFF64
84 # undef _POSIX_V6_LPBIG_OFFBIG
85 # undef _XBS5_LP64_OFF64
86 # undef _XBS5_LPBIG_OFFBIG
87 and sysconf tests for it at runtime. */
88
89#endif /* __WORDSIZE == 32 */
90
91#define __ILP32_OFF32_CFLAGS "-m31"
92#define __ILP32_OFFBIG_CFLAGS "-m31 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
93#define __ILP32_OFF32_LDFLAGS "-m31"
94#define __ILP32_OFFBIG_LDFLAGS "-m31"
95#define __LP64_OFF64_CFLAGS "-m64"
96#define __LP64_OFF64_LDFLAGS "-m64"
\ No newline at end of file
lib/libc/include/s390x-linux-gnu/bits/fcntl.h+6-20
......@@ -22,29 +22,20 @@
2222
2323#include <bits/wordsize.h>
2424
25#if __WORDSIZE == 64
2625/* Not necessary, files are always with 64bit off_t. */
27# define __O_LARGEFILE 0
28#endif
26#define __O_LARGEFILE 0
2927
30#if __WORDSIZE == 64
3128/* Not necessary, we always have 64-bit offsets. */
32# define F_GETLK64 5 /* Get record locking info. */
33# define F_SETLK64 6 /* Set record locking info (non-blocking). */
34# define F_SETLKW64 7 /* Set record locking info (blocking). */
35#endif
29#define F_GETLK64 5 /* Get record locking info. */
30#define F_SETLK64 6 /* Set record locking info (non-blocking). */
31#define F_SETLKW64 7 /* Set record locking info (blocking). */
3632
3733struct flock
3834 {
3935 short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
4036 short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
41#if __WORDSIZE == 64 || !defined __USE_FILE_OFFSET64
4237 __off_t l_start; /* Offset where the lock begins. */
4338 __off_t l_len; /* Size of the locked area; zero means until EOF. */
44#else
45 __off64_t l_start; /* Offset where the lock begins. */
46 __off64_t l_len; /* Size of the locked area; zero means until EOF. */
47#endif
4839 __pid_t l_pid; /* Process holding the lock. */
4940 };
5041
......@@ -59,13 +50,8 @@ struct flock64
5950 };
6051#endif
6152
62#if __WORDSIZE == 64
63# define __POSIX_FADV_DONTNEED 6 /* Don't need these pages. */
64# define __POSIX_FADV_NOREUSE 7 /* Data will be accessed once. */
65#else
66# define __POSIX_FADV_DONTNEED 4 /* Don't need these pages. */
67# define __POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */
68#endif
53#define __POSIX_FADV_DONTNEED 6 /* Don't need these pages. */
54#define __POSIX_FADV_NOREUSE 7 /* Data will be accessed once. */
6955
7056/* Include generic Linux declarations. */
7157#include <bits/fcntl-linux.h>
\ No newline at end of file
lib/libc/include/s390x-linux-gnu/bits/fenv.h+4-4
......@@ -77,9 +77,9 @@ typedef struct
7777{
7878 fexcept_t __fpc;
7979 void *__glibc_reserved;
80 /* The field __unused (formerly __ieee_instruction_pointer) is a relict from
81 commit "Remove PTRACE_PEEKUSER" (87b9b50f0d4b92248905e95a06a13c513dc45e59)
82 and isn't used anymore. */
80 /* The field __glibc_reserved (formerly __ieee_instruction_pointer) is a
81 relict from commit "Remove PTRACE_PEEKUSER"
82 (87b9b50f0d4b92248905e95a06a13c513dc45e59) and isn't used anymore. */
8383} fenv_t;
8484
8585/* If the default argument is used we use this value. */
......@@ -96,4 +96,4 @@ typedef unsigned int femode_t;
9696
9797/* Default floating-point control modes. */
9898# define FE_DFL_MODE ((const femode_t *) -1L)
99#endif
99#endif
\ No newline at end of file
lib/libc/include/s390x-linux-gnu/bits/link.h+1-61
......@@ -23,64 +23,6 @@
2323typedef char La_s390_vr[16];
2424#endif
2525
26#if __ELF_NATIVE_CLASS == 32
27
28/* Registers for entry into PLT on s390-32. */
29typedef struct La_s390_32_regs
30{
31 uint32_t lr_r2;
32 uint32_t lr_r3;
33 uint32_t lr_r4;
34 uint32_t lr_r5;
35 uint32_t lr_r6;
36 double lr_fp0;
37 double lr_fp2;
38# if defined HAVE_S390_VX_ASM_SUPPORT
39 La_s390_vr lr_v24;
40 La_s390_vr lr_v25;
41 La_s390_vr lr_v26;
42 La_s390_vr lr_v27;
43 La_s390_vr lr_v28;
44 La_s390_vr lr_v29;
45 La_s390_vr lr_v30;
46 La_s390_vr lr_v31;
47# endif
48} La_s390_32_regs;
49
50/* Return values for calls from PLT on s390-32. */
51typedef struct La_s390_32_retval
52{
53 uint32_t lrv_r2;
54 uint32_t lrv_r3;
55 double lrv_fp0;
56# if defined HAVE_S390_VX_ASM_SUPPORT
57 La_s390_vr lrv_v24;
58# endif
59} La_s390_32_retval;
60
61
62__BEGIN_DECLS
63
64extern Elf32_Addr la_s390_32_gnu_pltenter (Elf32_Sym *__sym,
65 unsigned int __ndx,
66 uintptr_t *__refcook,
67 uintptr_t *__defcook,
68 La_s390_32_regs *__regs,
69 unsigned int *__flags,
70 const char *__symname,
71 long int *__framesizep);
72extern unsigned int la_s390_32_gnu_pltexit (Elf32_Sym *__sym,
73 unsigned int __ndx,
74 uintptr_t *__refcook,
75 uintptr_t *__defcook,
76 const La_s390_32_regs *__inregs,
77 La_s390_32_retval *__outregs,
78 const char *symname);
79
80__END_DECLS
81
82#else
83
8426/* Registers for entry into PLT on s390-64. */
8527typedef struct La_s390_64_regs
8628{
......@@ -134,6 +76,4 @@ extern unsigned int la_s390_64_gnu_pltexit (Elf64_Sym *__sym,
13476 La_s390_64_retval *__outregs,
13577 const char *__symname);
13678
137__END_DECLS
138
139#endif
\ No newline at end of file
79__END_DECLS
\ No newline at end of file
lib/libc/include/s390x-linux-gnu/bits/procfs-extra.h deleted-75
......@@ -1,75 +0,0 @@
1/* Extra sys/procfs.h definitions. S/390 version.
2 Copyright (C) 2000-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
18
19#ifndef _SYS_PROCFS_H
20# error "Never include <bits/procfs-extra.h> directly; use <sys/procfs.h> instead."
21#endif
22
23#if __WORDSIZE == 64
24
25/* Provide 32-bit variants so that BFD can read 32-bit
26 core files. */
27#define ELF_NGREG32 36
28typedef unsigned int elf_greg_t32;
29typedef elf_greg_t32
30 elf_gregset_t32[ELF_NGREG32] __attribute__ ((__aligned__ (8)));
31typedef elf_fpregset_t elf_fpregset_t32;
32
33struct elf_prstatus32
34 {
35 struct elf_siginfo pr_info; /* Info associated with signal. */
36 short int pr_cursig; /* Current signal. */
37 unsigned int pr_sigpend; /* Set of pending signals. */
38 unsigned int pr_sighold; /* Set of held signals. */
39 __pid_t pr_pid;
40 __pid_t pr_ppid;
41 __pid_t pr_pgrp;
42 __pid_t pr_sid;
43 struct
44 {
45 int tv_sec, tv_usec;
46 } pr_utime, /* User time. */
47 pr_stime, /* System time. */
48 pr_cutime, /* Cumulative user time. */
49 pr_cstime; /* Cumulative system time. */
50 elf_gregset_t32 pr_reg; /* GP registers. */
51 int pr_fpvalid; /* True if math copro being used. */
52 };
53
54struct elf_prpsinfo32
55 {
56 char pr_state; /* Numeric process state. */
57 char pr_sname; /* Char for pr_state. */
58 char pr_zomb; /* Zombie. */
59 char pr_nice; /* Nice val. */
60 unsigned int pr_flag; /* Flags. */
61 unsigned short int pr_uid;
62 unsigned short int pr_gid;
63 int pr_pid, pr_ppid, pr_pgrp, pr_sid;
64 /* Lots missing */
65 char pr_fname[16]; /* Filename of executable. */
66 char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
67 };
68
69typedef elf_gregset_t32 prgregset32_t;
70typedef elf_fpregset_t32 prfpregset32_t;
71
72typedef struct elf_prstatus32 prstatus32_t;
73typedef struct elf_prpsinfo32 prpsinfo32_t;
74
75#endif
\ No newline at end of file
lib/libc/include/s390x-linux-gnu/bits/procfs-id.h deleted-30
......@@ -1,30 +0,0 @@
1/* Types of pr_uid and pr_gid in struct elf_prpsinfo. S/390 version.
2 Copyright (C) 2018-2026 Free Software Foundation, Inc.
3
4 This file is part of the GNU C Library.
5
6 The GNU C Library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
10
11 The GNU C Library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
15
16 You should have received a copy of the GNU Lesser General Public
17 License along with the GNU C Library; if not, see
18 <https://www.gnu.org/licenses/>. */
19
20#ifndef _SYS_PROCFS_H
21# error "Never include <bits/procfs-id.h> directly; use <sys/procfs.h> instead."
22#endif
23
24#if __WORDSIZE == 64
25typedef unsigned int __pr_uid_t;
26typedef unsigned int __pr_gid_t;
27#else
28typedef unsigned short int __pr_uid_t;
29typedef unsigned short int __pr_gid_t;
30#endif
\ No newline at end of file
lib/libc/include/s390x-linux-gnu/bits/setjmp.h-6
......@@ -33,13 +33,7 @@ typedef struct __s390_jmp_buf
3333 /* We save registers 6-15. */
3434 long int __gregs[10];
3535
36# if __WORDSIZE == 64
37 /* We save fpu registers f8 - f15. */
3836 long __fpregs[8];
39# else
40 /* We save fpu registers 4 and 6. */
41 long __fpregs[4];
42# endif
4337} __jmp_buf[1];
4438
4539#endif
lib/libc/include/s390x-linux-gnu/bits/sigaction.h+1-34
......@@ -1,4 +1,4 @@
1/* Definitions for 31 & 64 bit S/390 sigaction.
1/* Definitions for 64 bit S/390 sigaction.
22 Copyright (C) 2001-2026 Free Software Foundation, Inc.
33 This file is part of the GNU C Library.
44
......@@ -23,9 +23,6 @@
2323# error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
2424#endif
2525
26#include <bits/wordsize.h>
27
28#if __WORDSIZE == 64
2926/* Structure describing the action to be taken when a signal arrives. */
3027struct sigaction
3128 {
......@@ -55,36 +52,6 @@ struct sigaction
5552 /* Additional set of signals to be blocked. */
5653 __sigset_t sa_mask;
5754 };
58#else
59/* Structure describing the action to be taken when a signal arrives. */
60struct sigaction
61 {
62 /* Signal handler. */
63#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED
64 union
65 {
66 /* Used if SA_SIGINFO is not set. */
67 __sighandler_t sa_handler;
68 /* Used if SA_SIGINFO is set. */
69 void (*sa_sigaction) (int, siginfo_t *, void *);
70 }
71 __sigaction_handler;
72# define sa_handler __sigaction_handler.sa_handler
73# define sa_sigaction __sigaction_handler.sa_sigaction
74#else
75 __sighandler_t sa_handler;
76#endif
77
78 /* Additional set of signals to be blocked. */
79 __sigset_t sa_mask;
80
81 /* Special flags. */
82 int sa_flags;
83
84 /* Restore handler. */
85 void (*sa_restorer) (void);
86 };
87#endif
8855
8956/* Bits in `sa_flags'. */
9057#define SA_NOCLDSTOP 1 /* Don't send SIGCHLD when children stop. */
lib/libc/include/s390x-linux-gnu/bits/struct_mutex.h+2-24
......@@ -24,39 +24,17 @@ struct __pthread_mutex_s
2424 int __lock;
2525 unsigned int __count;
2626 int __owner;
27#if __WORDSIZE == 64
2827 unsigned int __nusers;
29#endif
3028 /* KIND must stay at this position in the structure to maintain
3129 binary compatibility with static initializers. */
3230 int __kind;
33#if __WORDSIZE == 64
3431 short __spins;
3532 short __glibc_reserved;
3633 __pthread_list_t __list;
3734# define __PTHREAD_MUTEX_HAVE_PREV 1
38#else
39 unsigned int __nusers;
40 __extension__ union
41 {
42 struct
43 {
44 short __data_spins;
45 short __data_unused;
46 } __data;
47# define __spins __data.__data_spins
48 __pthread_slist_t __list;
49 };
50# define __PTHREAD_MUTEX_HAVE_PREV 0
51#endif
5235};
5336
54#if __WORDSIZE == 64
55# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
37#define __PTHREAD_MUTEX_INITIALIZER(__kind) \
5638 0, 0, 0, 0, __kind, 0, 0, { 0, 0 }
57#else
58# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
59 0, 0, 0, __kind, 0, { { 0, 0 } }
60#endif
6139
62#endif
40#endif
\ No newline at end of file
lib/libc/include/s390x-linux-gnu/bits/struct_rwlock.h+1-16
......@@ -28,7 +28,6 @@ struct __pthread_rwlock_arch_t
2828 unsigned int __writers_futex;
2929 unsigned int __pad3;
3030 unsigned int __pad4;
31#if __WORDSIZE == 64
3231 int __cur_writer;
3332 int __shared;
3433 unsigned long int __pad1;
......@@ -36,23 +35,9 @@ struct __pthread_rwlock_arch_t
3635 /* FLAGS must stay at this position in the structure to maintain
3736 binary compatibility. */
3837 unsigned int __flags;
39# else
40 unsigned char __pad1;
41 unsigned char __pad2;
42 unsigned char __shared;
43 /* FLAGS must stay at this position in the structure to maintain
44 binary compatibility. */
45 unsigned char __flags;
46 int __cur_writer;
47#endif
4838};
4939
50#if __WORDSIZE == 64
51# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
40#define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
5241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags
53#else
54# define __PTHREAD_RWLOCK_INITIALIZER(__flags) \
55 0, 0, 0, 0, 0, 0, 0, 0, 0, __flags, 0
56#endif
5742
5843#endif
\ No newline at end of file
lib/libc/include/s390x-linux-gnu/bits/struct_stat.h+6-114
......@@ -25,7 +25,6 @@
2525
2626#include <bits/wordsize.h>
2727
28#if __WORDSIZE == 64
2928struct stat
3029 {
3130 __dev_t st_dev; /* Device. */
......@@ -62,70 +61,8 @@ struct stat
6261 __blkcnt_t st_blocks; /* Nr. 512-byte blocks allocated. */
6362 long int __glibc_reserved[3];
6463 };
65#else
66struct stat
67 {
68# ifdef __USE_TIME64_REDIRECTS
69# include <bits/struct_stat_time64_helper.h>
70# else
71 __dev_t st_dev; /* Device. */
72 unsigned int __pad1;
73# ifndef __USE_FILE_OFFSET64
74 __ino_t st_ino; /* File serial number. */
75# else
76 __ino_t __st_ino; /* 32bit file serial number. */
77# endif
78 __mode_t st_mode; /* File mode. */
79 __nlink_t st_nlink; /* Link count. */
80 __uid_t st_uid; /* User ID of the file's owner. */
81 __gid_t st_gid; /* Group ID of the file's group.*/
82 __dev_t st_rdev; /* Device number, if device. */
83 unsigned int __pad2;
84# ifndef __USE_FILE_OFFSET64
85 __off_t st_size; /* Size of file, in bytes. */
86# else
87 __off64_t st_size; /* Size of file, in bytes. */
88# endif
89 __blksize_t st_blksize; /* Optimal block size for I/O. */
90
91# ifndef __USE_FILE_OFFSET64
92 __blkcnt_t st_blocks; /* Number 512-byte blocks allocated. */
93# else
94 __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
95# endif
96# ifdef __USE_XOPEN2K8
97 /* Nanosecond resolution timestamps are stored in a format
98 equivalent to 'struct timespec'. This is the type used
99 whenever possible but the Unix namespace rules do not allow the
100 identifier 'timespec' to appear in the <sys/stat.h> header.
101 Therefore we have to handle the use of this header in strictly
102 standard-compliant sources special. */
103 struct timespec st_atim; /* Time of last access. */
104 struct timespec st_mtim; /* Time of last modification. */
105 struct timespec st_ctim; /* Time of last status change. */
106# define st_atime st_atim.tv_sec /* Backward compatibility. */
107# define st_mtime st_mtim.tv_sec
108# define st_ctime st_ctim.tv_sec
109# else
110 __time_t st_atime; /* Time of last access. */
111 unsigned long int st_atimensec; /* Nscecs of last access. */
112 __time_t st_mtime; /* Time of last modification. */
113 unsigned long int st_mtimensec; /* Nsecs of last modification. */
114 __time_t st_ctime; /* Time of last status change. */
115 unsigned long int st_ctimensec; /* Nsecs of last status change. */
116# endif
117# ifndef __USE_FILE_OFFSET64
118 unsigned long int __glibc_reserved4;
119 unsigned long int __glibc_reserved5;
120# else
121 __ino64_t st_ino; /* File serial number. */
122# endif
123# endif
124 };
125# endif
12664
12765#ifdef __USE_LARGEFILE64
128# if __WORDSIZE == 64
12966/* Note stat64 is the same shape as stat. */
13067struct stat64
13168 {
......@@ -138,7 +75,7 @@ struct stat64
13875 int __glibc_reserved0;
13976 __dev_t st_rdev; /* Device number, if device. */
14077 __off_t st_size; /* Size of file, in bytes. */
141# ifdef __USE_XOPEN2K8
78# ifdef __USE_XOPEN2K8
14279 /* Nanosecond resolution timestamps are stored in a format
14380 equivalent to 'struct timespec'. This is the type used
14481 whenever possible but the Unix namespace rules do not allow the
......@@ -148,66 +85,21 @@ struct stat64
14885 struct timespec st_atim; /* Time of last access. */
14986 struct timespec st_mtim; /* Time of last modification. */
15087 struct timespec st_ctim; /* Time of last status change. */
151# define st_atime st_atim.tv_sec /* Backward compatibility. */
152# define st_mtime st_mtim.tv_sec
153# define st_ctime st_ctim.tv_sec
154# else
88# define st_atime st_atim.tv_sec /* Backward compatibility. */
89# define st_mtime st_mtim.tv_sec
90# define st_ctime st_ctim.tv_sec
91# else
15592 __time_t st_atime; /* Time of last access. */
15693 unsigned long int st_atimensec; /* Nscecs of last access. */
15794 __time_t st_mtime; /* Time of last modification. */
15895 unsigned long int st_mtimensec; /* Nsecs of last modification. */
15996 __time_t st_ctime; /* Time of last status change. */
16097 unsigned long int st_ctimensec; /* Nsecs of last status change. */
161# endif
98# endif
16299 __blksize_t st_blksize; /* Optimal block size for I/O. */
163100 __blkcnt64_t st_blocks; /* Nr. 512-byte blocks allocated. */
164101 long int __glibc_reserved[3];
165102 };
166# else
167struct stat64
168 {
169# ifdef __USE_TIME64_REDIRECTS
170# include <bits/struct_stat_time64_helper.h>
171# else
172 __dev_t st_dev; /* Device. */
173 unsigned int __pad1;
174
175 __ino_t __st_ino; /* 32bit file serial number. */
176 __mode_t st_mode; /* File mode. */
177 __nlink_t st_nlink; /* Link count. */
178 __uid_t st_uid; /* User ID of the file's owner. */
179 __gid_t st_gid; /* Group ID of the file's group.*/
180 __dev_t st_rdev; /* Device number, if device. */
181 unsigned int __pad2;
182 __off64_t st_size; /* Size of file, in bytes. */
183 __blksize_t st_blksize; /* Optimal block size for I/O. */
184
185 __blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
186# ifdef __USE_XOPEN2K8
187 /* Nanosecond resolution timestamps are stored in a format
188 equivalent to 'struct timespec'. This is the type used
189 whenever possible but the Unix namespace rules do not allow the
190 identifier 'timespec' to appear in the <sys/stat.h> header.
191 Therefore we have to handle the use of this header in strictly
192 standard-compliant sources special. */
193 struct timespec st_atim; /* Time of last access. */
194 struct timespec st_mtim; /* Time of last modification. */
195 struct timespec st_ctim; /* Time of last status change. */
196# define st_atime st_atim.tv_sec /* Backward compatibility. */
197# define st_mtime st_mtim.tv_sec
198# define st_ctime st_ctim.tv_sec
199# else
200 __time_t st_atime; /* Time of last access. */
201 unsigned long int st_atimensec; /* Nscecs of last access. */
202 __time_t st_mtime; /* Time of last modification. */
203 unsigned long int st_mtimensec; /* Nsecs of last modification. */
204 __time_t st_ctime; /* Time of last status change. */
205 unsigned long int st_ctimensec; /* Nsecs of last status change. */
206# endif
207 __ino64_t st_ino; /* File serial number. */
208# endif
209 };
210# endif
211103#endif
212104
213105/* Tell code we have these members. */
lib/libc/include/s390x-linux-gnu/bits/timesize.h deleted-22
......@@ -1,22 +0,0 @@
1/* Bit size of the time_t type at glibc build time, Linux/s390.
2 Copyright (C) 2021-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
18
19#include <bits/wordsize.h>
20
21/* Size in bits of the 'time_t' type of the default ABI. */
22#define __TIMESIZE __WORDSIZE
\ No newline at end of file
lib/libc/include/s390x-linux-gnu/bits/typesizes.h+14-22
......@@ -57,42 +57,34 @@
5757#define __TIMER_T_TYPE void *
5858#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE
5959#define __FSID_T_TYPE struct { int __val[2]; }
60#if defined __GNUC__ && __GNUC__ <= 2
61/* Compatibility with g++ 2.95.x. */
62#define __SSIZE_T_TYPE __SWORD_TYPE
63#else
64/* size_t is unsigned long int on s390 -m31. */
65#define __SSIZE_T_TYPE __SLONGWORD_TYPE
66#endif
60
61/* With s390-32, __SSIZE_T_TYPE was __SWORD_TYPE for compatibility with
62 g++ 2.95.x. Afterwards __SLONGWORD_TYPE was needed as size_t was
63 unsigned long int on s390-32.
64 Now as only s390-64 exists, __SWORD_TYPE can be used as also used in the
65 generic version as both types result in long int. */
66#define __SSIZE_T_TYPE __SWORD_TYPE
67
6768#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
6869#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
69#define __CPU_MASK_TYPE __ULONGWORD_TYPE
70#define __CPU_MASK_TYPE __ULONGWORD_TYPE
7071
71#ifdef __s390x__
7272/* Tell the libc code that off_t and off64_t are actually the same type
7373 for all ABI purposes, even if possibly expressed as different base types
7474 for C type-checking purposes. */
75# define __OFF_T_MATCHES_OFF64_T 1
75#define __OFF_T_MATCHES_OFF64_T 1
7676
7777/* Same for ino_t and ino64_t. */
78# define __INO_T_MATCHES_INO64_T 1
78#define __INO_T_MATCHES_INO64_T 1
7979
8080/* And for __rlim_t and __rlim64_t. */
81# define __RLIM_T_MATCHES_RLIM64_T 1
81#define __RLIM_T_MATCHES_RLIM64_T 1
8282
8383/* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */
84# define __STATFS_MATCHES_STATFS64 1
84#define __STATFS_MATCHES_STATFS64 1
8585
8686/* And for getitimer, setitimer and rusage */
87# define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1
88#else
89# define __RLIM_T_MATCHES_RLIM64_T 0
90
91# define __STATFS_MATCHES_STATFS64 0
92
93/* And for getitimer, setitimer and rusage */
94# define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 0
95#endif
87#define __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1
9688
9789/* Number of descriptors that can fit in an `fd_set'. */
9890#define __FD_SETSIZE 1024
lib/libc/include/s390x-linux-gnu/bits/utmp.h deleted-127
......@@ -1,127 +0,0 @@
1/* The `struct utmp' type, describing entries in the utmp file. GNU version.
2 Copyright (C) 1993-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
18
19#ifndef _UTMP_H
20# error "Never include <bits/utmp.h> directly; use <utmp.h> instead."
21#endif
22
23#include <paths.h>
24#include <sys/time.h>
25#include <sys/types.h>
26#include <bits/wordsize.h>
27
28
29#define UT_LINESIZE 32
30#define UT_NAMESIZE 32
31#define UT_HOSTSIZE 256
32
33
34/* The structure describing an entry in the database of
35 previous logins. */
36struct lastlog
37 {
38#if __WORDSIZE == 32
39 int64_t ll_time;
40#else
41 __time_t ll_time;
42#endif
43 char ll_line[UT_LINESIZE];
44 char ll_host[UT_HOSTSIZE];
45 };
46
47
48/* The structure describing the status of a terminated process. This
49 type is used in `struct utmp' below. */
50struct exit_status
51 {
52 short int e_termination; /* Process termination status. */
53 short int e_exit; /* Process exit status. */
54 };
55
56
57/* The structure describing an entry in the user accounting database. */
58struct utmp
59{
60 short int ut_type; /* Type of login. */
61 pid_t ut_pid; /* Process ID of login process. */
62 char ut_line[UT_LINESIZE]
63 __attribute_nonstring__; /* Devicename. */
64 char ut_id[4]
65 __attribute_nonstring__; /* Inittab ID. */
66 char ut_user[UT_NAMESIZE]
67 __attribute_nonstring__; /* Username. */
68 char ut_host[UT_HOSTSIZE]
69 __attribute_nonstring__; /* Hostname for remote login. */
70 struct exit_status ut_exit; /* Exit status of a process marked
71 as DEAD_PROCESS. */
72/* The ut_session and ut_tv fields must be the same size when compiled
73 32- and 64-bit. This allows data files and shared memory to be
74 shared between 32- and 64-bit applications. */
75#if __WORDSIZE == 32
76 int64_t ut_session; /* Session ID, used for windowing. */
77 struct
78 {
79 int64_t tv_sec; /* Seconds. */
80 int64_t tv_usec; /* Microseconds. */
81 } ut_tv; /* Time entry was made. */
82#else
83 long int ut_session; /* Session ID, used for windowing. */
84 struct timeval ut_tv; /* Time entry was made. */
85#endif
86
87 int32_t ut_addr_v6[4]; /* Internet address of remote host. */
88 char __glibc_reserved[20]; /* Reserved for future use. */
89};
90
91/* Backwards compatibility hacks. */
92#define ut_name ut_user
93#ifndef _NO_UT_TIME
94/* We have a problem here: `ut_time' is also used otherwise. Define
95 _NO_UT_TIME if the compiler complains. */
96# define ut_time ut_tv.tv_sec
97#endif
98#define ut_xtime ut_tv.tv_sec
99#define ut_addr ut_addr_v6[0]
100
101
102/* Values for the `ut_type' field of a `struct utmp'. */
103#define EMPTY 0 /* No valid user accounting information. */
104
105#define RUN_LVL 1 /* The system's runlevel. */
106#define BOOT_TIME 2 /* Time of system boot. */
107#define NEW_TIME 3 /* Time after system clock changed. */
108#define OLD_TIME 4 /* Time when system clock changed. */
109
110#define INIT_PROCESS 5 /* Process spawned by the init process. */
111#define LOGIN_PROCESS 6 /* Session leader of a logged in user. */
112#define USER_PROCESS 7 /* Normal process. */
113#define DEAD_PROCESS 8 /* Terminated process. */
114
115#define ACCOUNTING 9
116
117/* Old Linux name for the EMPTY type. */
118#define UT_UNKNOWN EMPTY
119
120
121/* Tell the user that we have a modern system with UT_HOST, UT_PID,
122 UT_TYPE, UT_ID and UT_TV fields. */
123#define _HAVE_UT_TYPE 1
124#define _HAVE_UT_PID 1
125#define _HAVE_UT_ID 1
126#define _HAVE_UT_TV 1
127#define _HAVE_UT_HOST 1
\ No newline at end of file
lib/libc/include/s390x-linux-gnu/bits/utmpx.h deleted-106
......@@ -1,106 +0,0 @@
1/* Structures and definitions for the user accounting database. GNU version.
2 Copyright (C) 1997-2026 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
18
19#ifndef _UTMPX_H
20# error "Never include <bits/utmpx.h> directly; use <utmpx.h> instead."
21#endif
22
23#include <bits/types.h>
24#include <sys/time.h>
25#include <bits/wordsize.h>
26
27
28#ifdef __USE_GNU
29# include <paths.h>
30# define _PATH_UTMPX _PATH_UTMP
31# define _PATH_WTMPX _PATH_WTMP
32#endif
33
34
35#define __UT_LINESIZE 32
36#define __UT_NAMESIZE 32
37#define __UT_HOSTSIZE 256
38
39
40/* The structure describing the status of a terminated process. This
41 type is used in `struct utmpx' below. */
42struct __exit_status
43 {
44#ifdef __USE_GNU
45 short int e_termination; /* Process termination status. */
46 short int e_exit; /* Process exit status. */
47#else
48 short int __e_termination; /* Process termination status. */
49 short int __e_exit; /* Process exit status. */
50#endif
51 };
52
53
54/* The structure describing an entry in the user accounting database. */
55struct utmpx
56{
57 short int ut_type; /* Type of login. */
58 __pid_t ut_pid; /* Process ID of login process. */
59 char ut_line[__UT_LINESIZE]
60 __attribute_nonstring__; /* Devicename. */
61 char ut_id[4]
62 __attribute_nonstring__; /* Inittab ID. */
63 char ut_user[__UT_NAMESIZE]
64 __attribute_nonstring__; /* Username. */
65 char ut_host[__UT_HOSTSIZE]
66 __attribute_nonstring__; /* Hostname for remote login. */
67 struct __exit_status ut_exit; /* Exit status of a process marked
68 as DEAD_PROCESS. */
69
70/* The fields ut_session and ut_tv must be the same size when compiled
71 32- and 64-bit. This allows files and shared memory to be shared
72 between 32- and 64-bit applications. */
73#if __WORDSIZE == 32
74 __int64_t ut_session; /* Session ID, used for windowing. */
75 struct
76 {
77 __int64_t tv_sec; /* Seconds. */
78 __int64_t tv_usec; /* Microseconds. */
79 } ut_tv; /* Time entry was made. */
80#else
81 long int ut_session; /* Session ID, used for windowing. */
82 struct timeval ut_tv; /* Time entry was made. */
83#endif
84 __int32_t ut_addr_v6[4]; /* Internet address of remote host. */
85 char __glibc_reserved[20]; /* Reserved for future use. */
86};
87
88
89/* Values for the `ut_type' field of a `struct utmpx'. */
90#define EMPTY 0 /* No valid user accounting information. */
91
92#ifdef __USE_GNU
93# define RUN_LVL 1 /* The system's runlevel. */
94#endif
95#define BOOT_TIME 2 /* Time of system boot. */
96#define NEW_TIME 3 /* Time after system clock changed. */
97#define OLD_TIME 4 /* Time when system clock changed. */
98
99#define INIT_PROCESS 5 /* Process spawned by the init process. */
100#define LOGIN_PROCESS 6 /* Session leader of a logged in user. */
101#define USER_PROCESS 7 /* Normal process. */
102#define DEAD_PROCESS 8 /* Terminated process. */
103
104#ifdef __USE_GNU
105# define ACCOUNTING 9 /* System accounting. */
106#endif
\ No newline at end of file
lib/libc/include/s390x-linux-gnu/bits/wordsize.h+17-9
......@@ -1,11 +1,19 @@
1/* Determine the wordsize from the preprocessor defines. */
1/* Copyright (C) 1999-2026 Free Software Foundation, Inc.
2 This file is part of the GNU C Library.
23
3#if defined __s390x__
4# define __WORDSIZE 64
5#else
6# define __WORDSIZE 32
7# define __WORDSIZE32_SIZE_ULONG 1
8# define __WORDSIZE32_PTRDIFF_LONG 0
9#endif
4 The GNU C Library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
108
11#define __WORDSIZE_TIME64_COMPAT32 0
\ No newline at end of file
9 The GNU C Library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public
15 License along with the GNU C Library; if not, see
16 <https://www.gnu.org/licenses/>. */
17
18#define __WORDSIZE 64
19#define __WORDSIZE_TIME64_COMPAT32 0
\ No newline at end of file
lib/libc/include/s390x-linux-gnu/gnu/lib-names-64.h deleted-27
......@@ -1,27 +0,0 @@
1/* This file is automatically generated. */
2#ifndef __GNU_LIB_NAMES_H
3# error "Never use <gnu/lib-names-64.h> directly; include <gnu/lib-names.h> instead."
4#endif
5
6#define LD64_SO "ld64.so.1"
7#define LD_SO "ld64.so.1"
8#define LIBANL_SO "libanl.so.1"
9#define LIBBROKENLOCALE_SO "libBrokenLocale.so.1"
10#define LIBC_MALLOC_DEBUG_SO "libc_malloc_debug.so.0"
11#define LIBC_SO "libc.so.6"
12#define LIBDL_SO "libdl.so.2"
13#define LIBGCC_S_SO "libgcc_s.so.1"
14#define LIBMVEC_SO "libmvec.so.1"
15#define LIBM_SO "libm.so.6"
16#define LIBNSL_SO "libnsl.so.1"
17#define LIBNSS_COMPAT_SO "libnss_compat.so.2"
18#define LIBNSS_DB_SO "libnss_db.so.2"
19#define LIBNSS_DNS_SO "libnss_dns.so.2"
20#define LIBNSS_FILES_SO "libnss_files.so.2"
21#define LIBNSS_HESIOD_SO "libnss_hesiod.so.2"
22#define LIBNSS_LDAP_SO "libnss_ldap.so.2"
23#define LIBPTHREAD_SO "libpthread.so.0"
24#define LIBRESOLV_SO "libresolv.so.2"
25#define LIBRT_SO "librt.so.1"
26#define LIBTHREAD_DB_SO "libthread_db.so.1"
27#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
lib/libc/include/s390x-linux-gnu/gnu/lib-names.h+23-8
......@@ -4,13 +4,28 @@
44#ifndef __GNU_LIB_NAMES_H
55#define __GNU_LIB_NAMES_H 1
66
7#include <bits/wordsize.h>
8
9#if __WORDSIZE == 32
10# include <gnu/lib-names-32.h>
11#endif
12#if __WORDSIZE == 64
13# include <gnu/lib-names-64.h>
14#endif
7#define LD64_SO "ld64.so.1"
8#define LD_SO "ld64.so.1"
9#define LIBANL_SO "libanl.so.1"
10#define LIBBROKENLOCALE_SO "libBrokenLocale.so.1"
11#define LIBC_MALLOC_DEBUG_SO "libc_malloc_debug.so.0"
12#define LIBC_SO "libc.so.6"
13#define LIBDL_SO "libdl.so.2"
14#define LIBGCC_S_SO "libgcc_s.so.1"
15#define LIBMVEC_SO "libmvec.so.1"
16#define LIBM_SO "libm.so.6"
17#define LIBNSL_SO "libnsl.so.1"
18#define LIBNSS_COMPAT_SO "libnss_compat.so.2"
19#define LIBNSS_DB_SO "libnss_db.so.2"
20#define LIBNSS_DNS_SO "libnss_dns.so.2"
21#define LIBNSS_FILES_SO "libnss_files.so.2"
22#define LIBNSS_HESIOD_SO "libnss_hesiod.so.2"
23#define LIBNSS_LDAP_SO "libnss_ldap.so.2"
24#define LIBPTHREAD_SO "libpthread.so.0"
25#define LIBRESOLV_SO "libresolv.so.2"
26#define LIBRT_SO "librt.so.1"
27#define LIBTHREAD_DB_SO "libthread_db.so.1"
28#define LIBUNWIND_SO "libunwind.so.1"
29#define LIBUTIL_SO "libutil.so.1"
1530
1631#endif /* gnu/lib-names.h */
\ No newline at end of file
lib/libc/include/s390x-linux-gnu/gnu/stubs.h+13-9
......@@ -1,12 +1,16 @@
11/* This file is automatically generated.
2 This file selects the right generated file of `__stub_FUNCTION' macros
3 based on the architecture being compiled for. */
2 It defines a symbol `__stub_FUNCTION' for each function
3 in the C library which is a stub, meaning it will fail
4 every time called, usually setting errno to ENOSYS. */
45
5#include <bits/wordsize.h>
6
7#if __WORDSIZE == 32
8# include <gnu/stubs-32.h>
6#ifdef _LIBC
7 #error Applications may not define the macro _LIBC
98#endif
10#if __WORDSIZE == 64
11# include <gnu/stubs-64.h>
12#endif
\ No newline at end of file
9
10#define __stub_chflags
11#define __stub_fchflags
12#define __stub_gtty
13#define __stub_revoke
14#define __stub_setlogin
15#define __stub_sigreturn
16#define __stub_stty
\ No newline at end of file
lib/libc/include/s390x-linux-gnu/sys/ucontext.h+1-5
......@@ -45,11 +45,7 @@ typedef unsigned long greg_t;
4545 the register set is an array, we make gregset_t a simple array
4646 that has the same size as s390_regs. This is needed for the
4747 elf_prstatus structure. */
48#if __WORDSIZE == 64
49# define __NGREG 27
50#else
51# define __NGREG 36
52#endif
48#define __NGREG 27
5349#ifdef __USE_MISC
5450# define NGREG __NGREG
5551#endif
lib/libc/include/sparc-linux-gnu/bits/cloexec.h created+1
......@@ -0,0 +1 @@
1#define __O_CLOEXEC 0x400000
\ No newline at end of file
lib/libc/include/sparc-linux-gnu/gnu/lib-names-64.h+1
......@@ -24,4 +24,5 @@
2424#define LIBRESOLV_SO "libresolv.so.2"
2525#define LIBRT_SO "librt.so.1"
2626#define LIBTHREAD_DB_SO "libthread_db.so.1"
27#define LIBUNWIND_SO "libunwind.so.1"
2728#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
lib/libc/include/sparc-linux-gnu/gnu/stubs-64.h created+16
......@@ -0,0 +1,16 @@
1/* This file is automatically generated.
2 It defines a symbol `__stub_FUNCTION' for each function
3 in the C library which is a stub, meaning it will fail
4 every time called, usually setting errno to ENOSYS. */
5
6#ifdef _LIBC
7 #error Applications may not define the macro _LIBC
8#endif
9
10#define __stub_chflags
11#define __stub_fchflags
12#define __stub_gtty
13#define __stub_revoke
14#define __stub_setlogin
15#define __stub_sigreturn
16#define __stub_stty
\ No newline at end of file
lib/libc/include/x86-linux-gnu/bits/struct_mutex.h+1-1
......@@ -59,4 +59,4 @@ struct __pthread_mutex_s
5959 0, 0, 0, __kind, 0, { { 0, 0 } }
6060#endif
6161
62#endif
62#endif
\ No newline at end of file
lib/libc/include/x86-linux-gnu/gnu/lib-names-64.h+1
......@@ -24,4 +24,5 @@
2424#define LIBRESOLV_SO "libresolv.so.2"
2525#define LIBRT_SO "librt.so.1"
2626#define LIBTHREAD_DB_SO "libthread_db.so.1"
27#define LIBUNWIND_SO "libunwind.so.1"
2728#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
lib/libc/include/x86-linux-gnu/gnu/lib-names-x32.h+1
......@@ -24,4 +24,5 @@
2424#define LIBRESOLV_SO "libresolv.so.2"
2525#define LIBRT_SO "librt.so.1"
2626#define LIBTHREAD_DB_SO "libthread_db.so.1"
27#define LIBUNWIND_SO "libunwind.so.1"
2728#define LIBUTIL_SO "libutil.so.1"
\ No newline at end of file
tools/process_headers.zig+2
......@@ -36,6 +36,8 @@ const glibc_targets = [_]LibCTarget{
3636 .{ .arch = .aarch64_be, .abi = .gnu, .dest = "aarch64-linux-gnu" },
3737 .{ .arch = .csky, .abi = .gnueabi, .dest = "csky-linux-gnu" },
3838 .{ .arch = .csky, .abi = .gnueabihf, .dest = "csky-linux-gnu" },
39 .{ .arch = .loongarch32, .abi = .gnu, .dest = "loongarch-linux-gnu" },
40 .{ .arch = .loongarch32, .abi = .gnusf, .dest = "loongarch-linux-gnu" },
3941 .{ .arch = .loongarch64, .abi = .gnu, .dest = "loongarch-linux-gnu" },
4042 .{ .arch = .loongarch64, .abi = .gnusf, .dest = "loongarch-linux-gnu" },
4143 .{ .arch = .m68k, .abi = .gnu },