Compare commits

..
Author SHA1 Message Date
Hemanth Kumar M D f8f3d451ba nptl: Skip pretty-printer tests without python3 [BZ #34507]
The tests-printers-out rule in Rules wraps $(PYTHON) through
$(test-wrapper-env).  Unlike ordinary tests, which wrap a freshly built
target binary, this wraps python3, a build-host tool.  When cross-testing
with test-wrapper set (e.g. via scripts/cross-test-ssh.sh) the whole
command is forwarded to the target; if the target lacks python3 the shell
returns 127 and evaluate-test.sh reports the six nptl pretty-printer
tests as FAIL instead of UNSUPPORTED.

scripts/test_printers_common.py already exits UNSUPPORTED (77) when its
dependencies are missing, but that is unreachable when python3 itself is
absent.

Guard the invocation with a "command -v" check so the recipe exits 77
(UNSUPPORTED) when python3 is not found.  Native builds are unaffected,
as configure requires python3.

Signed-off-by: Hemanth Kumar M D <Hemanth.KumarMD@windriver.com>
Suggested-by: Adhemerval Zanella Netto <adhemerval.zanella@linaro.org>
Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

(cherry picked from commit c958d789db)
2026-09-08 10:42:32 -03:00
Adhemerval Zanella d9a8ff5c01 hesiod: use booleans in parser macro calls
The swallow argument in the INT_FIELD and STRING_FIELD macros is used as a
boolean, change all callers to use false and true instead of 0 and 1.

Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
(cherry picked from commit 7052455f0e)
2026-09-08 10:42:32 -03:00
Adhemerval Zanella 1c1f5103a9 hesiod: fix swapped arguments in service parser
The port number in the service file is a decimal number followed by a
single slash.

Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
(cherry picked from commit 41e9457c53)
2026-09-08 10:42:32 -03:00
Andreas Schwab 049168237f nss_files: use booleans in parser macro calls
The swallow argument in the INT_FIELD and STRING_FIELD macros is used as a
boolean, change all callers to use false and true instead of 0 and 1.

(cherry picked from commit aa56ccb98b)
2026-09-08 10:37:56 -03:00
Andreas Schwab 0770e8b07c nss_files: fix swapped arguments in service parser
The port number in the service file is a decimal number followed by a
single slash.

(cherry picked from commit 66efdda2f8)
2026-09-08 10:37:56 -03:00
Shamil Abdulaev 20b3e87176 libio: Add test for fopen with an empty ", ccs=" value [BZ #34574]
This goes on top of the fix for CVE-2026-18374.  The test runs the
reproducer from the bug report, plus "w,ccs=" and "w,ccs=,", and
expects NULL with errno set to EINVAL.

Signed-off-by: Shamil Abdulaev <ashamil435@gmail.com>
Reviewed-by: Florian Weimer <fweimer@redhat.com>
(cherry picked from commit cca93e5d88)
2026-09-04 22:41:02 +02:00
Dongkyun Son 72351055c6 libio: Fix CVE-2026-18374 heap buffer overflow in ccs= handling
When fopen() is called with a ,ccs= parameter whose value becomes empty
after strip(), the code must reject it with EINVAL instead of attempting
to use it.  The original upstr() fallback could read past the ',' delimiter
and cause a heap buffer overflow.

The fix checks if the charset specification is empty after strip() and
returns EINVAL immediately, preventing the overflow and following the
approach described in BZ #34574.

CVE-2026-18374 - CVSS 4.9 (AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L)

Reported-by: AISLE in partnership with Red Hat
Signed-off-by: Dongkyun Son <dongkyun.s@samsung.com>
Reviewed-by: Florian Weimer <fweimer@redhat.com>
(cherry picked from commit 9765a538eb)
2026-09-04 22:31:28 +02:00
Matt Turner 8dad0ee453 alpha: expect test-float32x-float64-div to fail
_Float32x and _Float64 are both binary64 on Alpha, so this narrowing
divide is a plain divide and the hardware alone decides whether to signal
underflow.

IEEE 754 determines tininess after rounding from the result rounded as if
the exponent range were unbounded, while Alpha determines it from the
delivered result.  The two differ for a quotient that is tiny but rounds
up to the smallest normal, as in DBL_MIN / (1 + 2^-52) under a rounding
mode that rounds away from zero: the binade below DBL_MIN has a finer
spacing than the subnormals, so the unbounded rounding stays below
DBL_MIN and the result is tiny, but the delivered result is DBL_MIN and
looks normal.  Alpha signals no underflow for it.

Nothing in software can correct this.  The hardware detects no underflow,
so no software completion trap is taken and the kernel emulation never
runs, and as the operation is not really narrowing there is no wider
intermediate for libm to examine.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
(cherry picked from commit a32db99a38)
2026-08-29 14:22:28 +02:00
Matt Turner f024355965 alpha: add the denormal trap enable bit to FE_NOMASK_ENV
FE_NOMASK_ENV is the floating-point environment in which no exception is
masked, so it must enable every exception that FE_ALL_EXCEPT covers.  On
Alpha that includes the GNU extension FE_DENORMAL, whose SWCR trap enable
bit is IEEE_TRAP_ENABLE_DNO (bit 6).

The constant only set bits 1 through 5 (INV, DZE, OVF, UNF and INE), so
after fesetenv (FE_NOMASK_ENV) a subsequent fegetexcept () returned
0x3e0000 rather than FE_ALL_EXCEPT (0x7e0000), and denormal exceptions
stayed masked.  Set bit 6 as well.

Fixes math/test-fenv-return on alpha.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
(cherry picked from commit 8e41f6008d)
2026-08-29 14:22:28 +02:00
Magnus Lindholm c4dac931ab alpha: Fix stack alignment in makecontext
The Alpha ABI requires the stack pointer to be 16-byte aligned.
However, __makecontext did not realign it after reserving space for
arguments. Depending on uc_stack.ss_size, this could leave the stack
only 8-byte aligned.

Round the new stack pointer down to a 16-byte boundary after reserving
the argument area.

This fixes stdlib/tst-makecontext2.

Signed-off-by: Magnus Lindholm <linmag7@gmail.com>
Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
(cherry picked from commit 4a07bb292f)
2026-08-29 14:22:28 +02:00
Matt Turner 76115597fe alpha: fix setrlimit compat symbol for negative rlim values besides -1
Old alpha glibc defined rlim_t as signed long, making RLIM_INFINITY
equal to LONG_MAX (0x7ffffffffffffffful).  The compat symbol
__old_setrlimit64 (setrlimit@GLIBC_2.0 and setrlimit64@GLIBC_2.1) was
introduced in 0d0bc784ca [BZ #22648] to translate this old RLIM_INFINITY
to the kernel's RLIM64_INFINITY (ULONG_MAX) before the prlimit64
syscall, using an exact equality check.

Because old rlim_t was signed, any value a caller treats as negative
(e.g. -2 = 0xfffffffffffffffe unsigned) is also an "infinity or beyond"
value in the old ABI.  Such values are >= OLD_RLIM64_INFINITY and
should be translated to RLIM64_INFINITY; passing them through unchanged
causes prlimit64 to treat them as large finite limits, resulting in
unexpected failures (EPERM or silent truncation).

Change the equality check to >= OLD_RLIM64_INFINITY in
__old_setrlimit64 so that all values the old signed-rlim_t ABI would
interpret as infinity-or-more are correctly mapped to RLIM64_INFINITY.

No change is made to __old_getrlimit64: prlimit64 returns only exact
RLIM64_INFINITY for unlimited resources, so the existing equality
check against RLIM64_INFINITY is correct and mirrors the kernel's own
rlim64_is_infinity() logic.

Fixes: 0d0bc784ca ("Alpha: Add wrappers to get/setrlimit64 to fix
RLIM64_INFINITY constant [BZ #22648]")
Fixes: https://sourceware.org/bugzilla/show_bug.cgi?id=30992
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

(cherry picked from commit c056561d31)
2026-08-29 14:22:28 +02:00
Florian Weimer c29ca5d216 iconvdata: Test case for bug 34556, bug 34568
Assisted-by: LLM
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
(cherry picked from commit 35efcffa97)
2026-08-29 14:22:01 +02:00
Florian Weimer 3ad1bbd8f9 iconvdata: EUC_JISX0213 decoding lacks pending character reset (CVE-2026-80489)
This fixes bug 34568.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
(cherry picked from commit 4dafa087ff)
2026-08-29 14:22:01 +02:00
Florian Weimer 138c43f018 iconvdata: SHIFT_JISX0213 decoding lacks pending character reset (CVE-2026-77117)
This fixes bug 34556.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
(cherry picked from commit 68d94bbe50)
2026-08-29 14:22:01 +02:00
Florian Weimer 713998bf00 stdlib: Fix right-justification in strfmon (bug 34510, CVE-2026-19499)
The memmove call did not take into account that __printf_buffer_pad
updated the buffer pointers.

Fixes commit e88b9f0e5c
("stdio-common: Convert vfprintf and related functions to buffers"),
which went into glibc 2.37.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
(cherry picked from commit b090cf226f)
2026-08-28 21:23:09 +02:00
Adhemerval Zanella 2a35bab35b posix: Remove unnecessary overflow check in wordexp (BZ 34090)
The WRDE_APPEND path duplicates the caller's we_wordv array, which
already holds we_offs + we_wordc + 1 pointers.  Follow-up to commit
e2cefe16c3.

Checked on x86_64-linux-gnu and i686-linux-gnu.

(cherry picked from commit 53ec26f173)
2026-08-28 21:15:00 +02:00
Andreas Schwab 4964178b4d m68k: remove sysdeps/m68k/m680x0/fpu/w_fmod_compat.c (bug 34559)
This was missed from commit 6deadd4eb6.

(cherry picked from commit ff1c558061)
2026-08-24 18:35:55 +02:00
Florian Weimer 0afa34adb0 misc: Fix out-of-bounds array write in tdelete (bug 34506)
Allocate the maximum array sizes directly, instead of resizing
the arrays as needed.  This eliminates alloca usage from the
function, and fixes the out-of-bounds accesses.  The asserts
guard against the bug coming back if the balancing of the tree
turns out not to work correctly.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
(cherry picked from commit e2789c46e3)
2026-08-23 11:29:46 +02:00
Wilco Dijkstra 7d26579873 malloc: Show hugetlb tunable default in --list-tunables
Update the hugetlb tunable default in elf/dl-tunables.c so it is shown as 1
with /lib/ld-linux-aarch64.so.1 --list-tunables.
Move the intitialization of thp_mode/thp_pagesize to do_set_hugetlb() and
avoid accessing /sys/kernel/mm if DEFAULT_THP_PAGESIZE > 0.  Switch off THP if
glibc.malloc.hugetlb=0 is used - this behaves as if DEFAULT_THP_PAGESIZE==0.
Fix the --list-tunables testcase.

Reviewed-by: DJ Delorie <dj@redhat.com>
Signed-off-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
(cherry picked from commit e87c151130)
2026-08-14 14:18:01 +00:00
Adhemerval Zanella 8017bcfc4d m68k: Fix fmod/fmodf infinite recursion (BZ 34508)
Commits 6deadd4eb6 and ade9f30ce2 changed m68k fmod to call
__m81_u(fmod), instead of the mathimpl.h inline
__m81_u(__ieee754_fmod) (that wraps the m68k fmod instruction).
This leads to infinite recursion.

Tested-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>

(cherry picked from commit bb213471be)
2026-08-12 13:34:03 -05:00
Adhemerval Zanella a388c4002d posix: Fix wordexp WRDE_APPEND to preserve state on non-NOSPACE errors (BZ 34090, CVE-2026-6368)
The previous implementation saved a copy of the wordexp_t struct at
entry and blindly restored it on error via (*pwordexp = old_word).
This is incorrect when WRDE_APPEND is set because w_addword may have
called realloc on we_wordv during partial processing before the error
was detected.  If realloc relocated the buffer, the saved we_wordv
pointer is dangling; restoring it causes a use-after-free in the
caller (e.g. via wordfree), and the relocated buffer is leaked.

Fix this by duplicating the we_wordv pointer array at entry when
WRDE_APPEND is set, so that all subsequent realloc calls inside
w_addword operate on the copy.

This change also fixes a POSIX conformance issue: if the WRDE_APPEND
flag is specified, pwordexp->we_wordc and pwordexp->we_wordv shall
not be modified.

Also fix two pre-existing error return paths in the '"' and '\'' cases
that returned directly from w_addword failures instead of going through
do_error, which would leak the saved array (and previously would also
skip the word cleanup).

Checked on x86_64-linux-gnu and i686-linux-gnu.

Reviewed-by: DJ Delorie <dj@redhat.com>
(cherry picked from commit e2cefe16c3)
2026-08-12 12:27:32 +02:00
Sachin Monga bc95068f5f ppc64le: Restore optimized memchr for power10 [BZ #34300]
Restore the POWER10 memchr implementation reverted in commit
a7877bb668 [BZ #33059], addressing the
actual cause:
The non-volatile vector register v20 used as the
zero vector (M_VREG_ZERO) is replaced with the volatile register v17.

Additionally, the assembler workaround used earlier for the
instructions lxvp and vextractbm is replaced with actual
instructions.

(cherry picked from commit c9b5a4a593)
2026-07-23 10:42:00 -05:00
Fabian Rast 1c9988e525 rtld: cache cpuid results on the stack for intel
dl_init_cacheinfo retrieves various information about cache
sizes, using the cpuid instruction on x86.
Previously, the same cpuid leaves were queried multiple times.
This behavior caused intel_check_word to prominently show up in
profiles of dynamic loader startup on the Intel(R) Xeon(R) Gold 6430.
The big performance impact could not be reproduced on other Intel cpus.

This patch reduces the number of cpuid queries on startup
by caching their results on the stack for reuse when searching for a
different cache size value.
This approach does not change the overall design of
the cache enumeration code (repeated calls to handle_* functions).
The values are cached on the stack instead of globally (e.g.
in the cpu_features global) because they are never needed after
early initialization.

The cache is only active for Intel cpus, because it has not yet
been shown through benchmarks that it meaningfully improves performance
for other processors.

Signed-off-by: Fabian Rast <fabian.rast@tum.de>
Reviewed-by: Sunil K Pandey <skpgkp2@gmail.com>
(cherry picked from commit df83fa8813)
2026-07-13 17:59:33 -07:00
Adhemerval Zanella dae425b554 posix: Fix stack overflow in wordexp tilde expansion (BZ 34091, CVE-2026-6791)
The parse_tilde function previously used strndupa to allocate memory
for the parsed username on the stack, and since the input is
user-defined, this can lead to a stack overflow.

This patch fixes the issue by replacing strndupa with scratch_buffer,
by reusing the buffer used in the __getpwnam_r call.

The new “tst-wordexp-tilde.c” test is a test-container to avoid using
system-defined NSS modules.

Checked on x86_64-linux-gnu and i686-linux-gnu.

(cherry picked from commit 07c24f3539)
2026-07-01 23:37:40 +02:00
Florian Weimer 8759917de5 resolv: Add test case tst-ns_sprintrr (bug 34033, bug 34069)
This test case covers both input buffer overreads and output buffer
overflows.  It should systematically cover these issues.

I used code auto-generation for updating the test expectations for
truncated RDATA in TXT, ISDN records, after writing the rest
of the test by hand.

Assisted-by: LLM
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
(cherry picked from commit 4ba0b79b95)
2026-07-01 23:35:24 +02:00
Florian Weimer 3a418da6a3 resolv: Fix buffer overreads in ns_sprintrrf (CVE-2026-6238)
Check that the RDATA payload does not require more than RDATALEN
bytes while processing it.  The fixes cover A6, LOC records.
(CERT, TKEY, TSIG were fixed before, by switching to the generic
formatter.)

The vulnerable LOC record handling was first introduced before
glibc 2.0, in commit ee188d555b.

CERT, TSIG, TKEY handling came with commit
b43b13ac25, released with glibc 2.2.

A6 record handling was introduced in commit
9163381643 ("* resolv/ns_print.c
(ns_sprintrrf): Handle ns_t_a6 and ns_t_opt."), which went into glibc
2.7.

This fixes bug 34069.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
(cherry picked from commit a7b60d23bb)
2026-07-01 23:35:24 +02:00
Florian Weimer e64ae5a591 resolv: More types as unknown in ns_sprintrrf (CVE-2026-5435)
Specifically, CERT, TKEY, TSIG, OPT.  This removes the buggy
implementations of TSIG, fixing bug 34033, and partially
fixing bug 34069.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
(cherry picked from commit ca44a6609c)
2026-07-01 23:35:24 +02:00
Florian Weimer c9225a3e73 resolv: Check for inet_ntop failure in ns_sprintrrf
This makes the output more consistent (either failure or complete
output) and helps with systematic testing with varying buffer
sizes.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
(cherry picked from commit cd0db208d5)
2026-07-01 23:35:24 +02:00
Florian Weimer c46f7b2fd6 resolv: Improve formatting of unknown records in ns_sprintrrf
Do not add the "unknown RR type" comment.  After adding the TYPE
prefix, the number is largely redundant.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
(cherry picked from commit d58415eb17)
2026-07-01 23:35:24 +02:00
Florian Weimer 1d7d1a16b0 resolv: Fix ns_sprintrrf formatting of class, type values (bug 34289)
The p_class and p_type results could overwrite each other if both
were unknown.  Format unknown values with CLASS and TYPE prefixes,
as in RFC 3597.  Handle A6 separately because it cannot be added
to __p_type_syms for ABI reasons.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
(cherry picked from commit f69b7f95e3)
2026-07-01 23:35:24 +02:00
Florian Weimer 349297a4eb resolv: Declare __p_class_syms, __p_type_syms for internal use
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
(cherry picked from commit 360f352c9a)
2026-07-01 23:35:24 +02:00
John David Anglin fdf10644d6 hppa: Fix missing call to __feraiseexcept (BZ 34306)
The feupdateenv function is supposed to raise exceptions after
installing the environment represented by its envp argument.
This was accidentally missed on hppa.

The failure to raise exceptions was noticed by the failure of
the math/test-narrowing-trap test.

Signed-off-by: John David Anglin <dave.anglin@bell.net>
2026-06-23 13:44:21 -04:00
Adhemerval Zanella a6fa9a9594 arm: Save/restore VFP registers in PLT trampolines (BZ 34144, BZ 15792)
_dl_runtime_resolve and _dl_runtime_profile only preserved the integer
argument registers (r0-r3) across the inner call to _dl_fixup /
_dl_profile_fixup.  Two related ABI requirements demand more:

  * Under AAPCS-VFP, d0-d7 hold the caller's double arguments to the
    function being resolved.  Recent GCC emits VFP instructions inside
    the fixup routines, clobbering them, so the resolved function sees
    corrupted arguments (BZ 34144).

  * Per RTABI32, the __aeabi_mem* helpers (and similar runtime helpers
    reachable through the dynamic linker) must only corrupt integer
    core registers.  IFUNC resolvers, audit modules, and interposed
    malloc invoked during symbol resolution may also use VFP, even on
    softfp ABI builds (BZ 15792).

Save all call-clobbered VFP state -- d0-d15 unconditionally, d16-d31
when HWCAP_ARM_VFPD32 is set, and fpscr -- around the inner fixup
call.  Whether VFP is usable is a property of the hardware, not of
the ABI glibc was built with, so the decision is gated on AT_HWCAP at
runtime in both hardfp and softfp builds; hardfp builds will always
find HWCAP_ARM_VFP set, while softfp builds running on a non-VFP CPU
correctly skip the save.

For _dl_runtime_profile the save area is slipped in just before the
bl to _dl_profile_fixup; the outgoing framesizep argument is
recomputed to account for the extra frame, and both the fast path
(no audit framesize) and the slow path (audit wraps with
pltenter/pltexit) traverse the restore before splitting.

Checked on arm-linux-gnueabihf.

Tested-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
(cherry picked from commit 1111fbdd3e)
2026-06-17 22:28:26 +02:00
Florian Weimer fe0ccc9564 iconv: Suppress intermediate errors with //TRANSLIT (bug 34236)
When tentatively converting characters on behalf of
__gconv_transliterate, do not create a persistent error.  Just
produce a local error, and rely on __gconv_transliterate to
produce the error if all transliteration options are exhausted.

This fixes transliteration of “½” to ASCII, which cannot use the
“ 1⁄2 ” alternative.  Eventually, the “ 1/2 ” alternative is chosen,
but the error sticks.  Therefore, iconv exited with status 1 before
this change.

Adjust iconv/tst-iconv_prog.sh to test both C and en_US.UTF-8 locales.
This requires changing the way the ICONV template is defined, so that
run_program_env is evaluated multiple times.

Fixes commit 9a4b0eaf72 ("iconv: do not
report error exit with transliteration [BZ #32448]"),
commit 6cbf845fcd ("iconv: Preserve
iconv -c error exit on invalid inputs (bug 32046)"), and bug 34236.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
(cherry picked from commit e9325bd7d0)
2026-06-09 07:56:33 +02:00
Samuel Thibault 22f3d24a6b Hurd: restore some SIOC ioctls
We do not define struct ifreq_short and ifreq_int, but we do
define _IOT_ifreq_short and _IOT_ifreq_int, and need these for
sysdeps/gnu/ifaddrs.c and sysdeps/mach/hurd/if_index.c

(cherry picked from commit b507b6d4c6)
2026-06-08 19:10:09 +01:00
Samuel Thibault a13ebdbc7e Hurd: comment ioctls which cannot currently compile
We don't currently have struct ifreq_short, ifreq_int and ifaliasreq, so
don't let applications even try to compile these.

(cherry picked from commit 7073112263)
2026-06-08 19:10:02 +01:00
Samuel Thibault 446f708e4c Hurd: comment PF_ROUTE/AF_ROUTE defines
Comment out the PF_ROUTE and AF_ROUTE defines, since they would be used for
PF_ROUTE setsockopts, which are not available on Hurd.

(cherry picked from commit ec98b25af5)
2026-06-08 19:09:57 +01:00
Pino Toscano ced45fd472 Hurd: comment PF_LINK/AF_LINK defines
Comment out the PF_LINK and AF_LINK defines, since they are usually associated
with struct sockaddr_dl, which is not available on Hurd.

(cherry picked from commit 59a0de89ba)
2026-06-08 19:09:52 +01:00
Sam James 89cbf46693 elf: don't clobber ld.so.conf in tst-glibc-hwcaps-prepend-cache [BZ #34210]
dbe5065f21 and ae589cb84d
cater for setups where ld.so.conf{,.d} is required to find runtime support
libraries, but tst-glibc-hwcaps-prepend-cache clobbers the created ld.so.conf
with its own entry.

Fix it to instead use the ld.so.conf.d created in ae589cb84d
to co-exist with existing entries.

Bug: https://bugs.gentoo.org/976773
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31901
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=34210
Tested-by: Andreas K. Hüttel <dilfridge@gentoo.org>
Reported-by: Eli Schwartz <eschwartz@gentoo.org>
Reviewed-by: Andreas K. Hüttel <dilfridge@gentoo.org>
(cherry picked from commit d0cc9bf859)
2026-06-08 15:40:02 +01:00
Jakub Jelinek 18b97b03b7 Rename __unused fields to __glibc_reserved.
__unused is often defined to __attribute__((unused)) in BSD
sources and furthermore libstdc++ testsuite uses it as a macro
to verify libstdc++ headers don't use __unused identifiers.
In ~2012 glibc headers have been cleaned up, but some new
uses of __unused have reappeared (s390 fenv.h already many
years ago, the rest last November).

Reviewed-by: Florian Weimer <fweimer@redhat.com>
(cherry picked from commit 243bdfec8f)
2026-05-31 18:36:12 +01:00
Adhemerval Zanella a47b5b2b3e math: Fix fma alignment when exponent difference is exactly 64 (BZ 34183)
When d (the exponent difference between z and x*y) is exactly 64,
the alignment path shifts z left by 64 bits via (zhi = nz.m, zlo = 0)
and decrements d to 0, then takes the inner 'if (d < 64)' branch
which evaluates 'rhi << (64 - d)' with d == 0.  A shift by 64 of a
64-bit value is UB in C.

Add the explicit 'if (d == 0)' empty branch (present in the
original musl implementation).

Checked on x86_64-linux-gnu with --disable-multi-arch and
arm-linux-gnueabihf.

Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
(cherry picked from commit 1e7935ae87)
2026-05-28 10:34:20 -03:00
Rocket Ma 4070d808be stdio-common: Fix buffer overflow in scanf %mc [BZ #34008]
* stdio-common/vfscanf-internal.c: When enlarging allocated buffer with
format %mc or %mC, glibc allocates one byte less, leading to
user-controlled one byte overflow. This commit fixes BZ #34008, or
CVE-2026-5450.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Signed-off-by: Rocket Ma <marocketbd@gmail.com>
Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
(cherry picked from commit 8398987772)
2026-05-09 11:16:19 +02:00
Rocket Ma 2890b35cd3 libio: Fix ungetwc operating on byte stream [BZ #33998]
* libio/wgenops.c: When _IO_wdefault_pbackfail attempts to push back one
character, it accidently compare the wchar to push back with the last
char from byte stream, instead of wide stream. Under specific coding,
attacker may exploit this to leak information. This commit fix bug
33998, or CVE-2026-5928.

Signed-off-by: Rocket Ma <marocketbd@gmail.com>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
(cherry picked from commit ef3bfb5f91)
2026-05-09 11:16:19 +02:00
H.J. Lu e9517114ac abilist.awk: Handle weak unversioned defined symbols
After

commit f685e3953f9a38a41bbd0a597f9882870cee13d5
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Oct 29 09:49:57 2025 +0800

    elf: Don't set its DT_VERSYM entry for unversioned symbol

ld no longer assigns version index 1 to unversioned defined symbol.
For libmachuser.so, "objdump --dynamic-syms" reports:

0000dd30  w   DF .text	000000f8              processor_start

instead of

0000dd30  w   DF .text	000000f8 (Base)       processor_start

Also allow NF == 6 for weak unversioned dynamic symbols.  This fixes BZ
33650.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Reviewed-by: Sam James <sam@gentoo.org>
(cherry picked from commit ee5d1db2a8)
2026-05-03 06:52:45 +01:00
Florian Weimer 1634cc11a5 Linux: Only define OPEN_TREE_* macros in <sys/mount.h> if undefined (bug 33921)
There is a conditional inclusion of <linux/mount.h> earlier in the file.
If that defines the macros, do not redefine them.  This addresses build
problems as the token sequence used by the UAPI macro definitions
changes between Linux versions.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
(cherry picked from commit d12b017cdd)
2026-05-02 12:52:34 +02:00
DJ Delorie d1d8d27164 include: isolate __O_CLOEXEC flag for sys/mount.h and fcntl.h
Including sys/mount.h should not implicitly include fcntl.h
as that causes namespace pollution and conflicts with kernel
headers.  It only needs O_CLOEXEC for OPEN_TREE_CLOEXEC
(although it shouldn't need that, but it's defined that way)
so we provide that define (via a private version) separately.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
Tested-by: Florian Weimer <fweimer@redhat.com>
(cherry picked from commit 419245719c)
2026-05-02 12:52:30 +02:00
Florian Weimer 8362e8ce10 Use pending character state in IBM1390, IBM1399 character sets (CVE-2026-4046)
Follow the example in iso-2022-jp-3.c and use the __count state
variable to store the pending character.  This avoids restarting
the conversion if the output buffer ends between two 4-byte UCS-4
code points, so that the assert reported in the bug can no longer
happen.

Even though the fix is applied to ibm1364.c, the change is only
effective for the two HAS_COMBINED codecs for IBM1390, IBM1399.

The test case was mostly auto-generated using
claude-4.6-opus-high-thinking, and composer-2-fast shows up in the
log as well.  During review, gpt-5.4-xhigh flagged that the original
version of the test case was not exercising the new character
flush logic.

This fixes bug 33980.

Assisted-by: LLM
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
(cherry picked from commit d6f08d1cf0)
2026-04-19 11:32:09 +02:00
Michael Jeanson ce1013a197 tests: fix tst-rseq with Linux 7.0
A sub-test of tst-rseq is to validate the return code and errno of the
rseq syscall when attempting to register the exact same rseq area as was
done in the dynamic loader.

This involves finding the rseq area address by adding the
'__rseq_offset' to the thread pointer and calculating the area size from
the AT_RSEQ_FEATURE_SIZE auxiliary vector. However the test currently
calculates the size of the rseq area allocation in the TLS block which
must be a multiple of AT_RSEQ_ALIGN.

Up until now that happened to be the same value since the feature size
and alignment exposed by the kernel were below the minimum ABI size of
32. Starting with Linux 7.0 the feature size has reached 33 while the
alignment is now 64.

This results in the test trying to re-register the rseq area with a
different size and thus not getting the expected errno value.

Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
(cherry picked from commit 67f303b47d)
2026-03-28 23:31:09 +01:00
Adhemerval Zanella Netto 60cabd0464 riscv: Resolve calls to memcpy using memcpy-generic in early startup
This patch from Adhemerval sets up the ifunc redirections so that we
resolve memcpy to memcpy_generic in early startup.  This avoids infinite
recursion for memcpy calls before the loader is fully initialized.

Tested-by: Jeff Law <jeffrey.law@oss.qualcomm.com>
(cherry picked from commit 0a9e54d40a4321ebf7d87cdbc0868c43d1e8a657)
2026-03-28 18:26:55 +01:00
Adhemerval Zanella 02ffd413cf elf: Use dl-symbol-redir-ifunc.h instead _dl_strlen
Also replace the loop with strlen And remove
-fno-tree-loop-distribute-patterns usage.

It requires redirect the strlen to the baseline implementation
for x86_64, aarch64, and loongarch64.

Checked on x86_64-linux-gnu{-v2,v3} and aarch64-linux-gnu with
both gcc-15 and clang-21.

Reviewed-by: DJ Delorie <dj@redhat.com>
(cherry picked from commit 15cc350e507101ac7b01e1343ac55087a6cd9317)
2026-03-28 18:26:49 +01:00
Xi Ruoyao 2695314378 elf: parse /proc/self/maps as the last resort to find the gap for tst-link-map-contiguous-ldso
The initialization process of libc.so calls mmap() several times and the
kernel may lay the maps into the gap.  If all pages in the gap are
occupied, the test would not be able to find the gap with mmap() and the
test would fail.

The failure reproduces most frequently on LoongArch because with the
commonly used page size (16 KiB) the gap only contains 4 pages and the
probability they are all occupied is not near to zero.

With the changes in the patch, a test run may output:

    info: ld.so link map is not contiguous
    info: object "/dev/zero" found at 0x7ffff1fe0000 - 0x7ffff1fe4000
    info: anonymous mapping found at 0x7ffff1fe4000 - 0x7ffff1fec000

Also take the chance to fix a mistake in the "object found at" message
which has puzzled me during the initial debug session.

Signed-off-by: Xi Ruoyao <xry111@xry111.site>
Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
(cherry picked from commit aed8390a6a)
2026-03-28 17:42:07 +01:00
Carlos O'Donell dd9945c0ba resolv: Check hostname for validity (CVE-2026-4438)
The processed hostname in getanswer_ptr should be correctly checked to
avoid invalid characters from being allowed, including shell
metacharacters. It is a security issue to fail to check the returned
hostname for validity.

A regression test is added for invalid metacharacters and other cases
of invalid or valid characters.

No regressions on x86_64-linux-gnu.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
(cherry picked from commit e10977481f)
2026-03-26 15:06:40 -04:00
Carlos O'Donell 5c6fca0c62 resolv: Count records correctly (CVE-2026-4437)
The answer section boundary was previously ignored, and the code in
getanswer_ptr would iterate past the last resource record, but not
beyond the end of the returned data.  This could lead to subsequent data
being interpreted as answer records, thus violating the DNS
specification.  Such resource records could be maliciously crafted and
hidden from other tooling, but processed by the glibc stub resolver and
acted upon by the application.  While we trust the data returned by the
configured recursive resolvers, we should not trust its format and
should validate it as required.  It is a security issue to incorrectly
process the DNS protocol.

A regression test is added for response section crossing.

No regressions on x86_64-linux-gnu.

Reviewed-by: Collin Funk <collin.funk1@gmail.com>
(cherry picked from commit 9f5f18aab4)
2026-03-24 07:43:56 -04:00
Florian Weimer 2be6cf2e75 posix: Run tst-wordexp-reuse-mem test
The test was not properly scheduled for execution with a Makefile
dependency.

Fixes commit 80cc58ea2d ("posix: Reset
wordexp_t fields with WRDE_REUSE (CVE-2025-15281 / BZ 33814").

(cherry picked from commit bed2db02f3)
2026-03-23 15:22:21 +01:00
Yury Khrustalev 305ce0b588 aarch64: Tests for locking GCS
Check that GCS is locked properly based on the value of the
glibc.cpu.aarch64_gcs tunable.

Test tst-gcs-execv checks that a child process can be spawned correctly
when GCS is locked for the parent process.

Test tst-gcs-fork checks that if GCS is not locked for the parent
process, the forked child can disable GCS.

Tests tst-gcs-lock and tst-gcs-lock-static check that GCS is locked
for dynamic and static executables when run with aarch64_gcs=1.

Tests tst-gcs-unlock and tst-gcs-unlock-static check that GCS is not
locked for dynamic and static executables when run with aarch64_gcs=0.

Test tst-gcs-lock-ptrace checks via ptrace that when GCS is locked,
all GCS features are locked.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
(cherry picked from commit ad9784419e)
2026-03-10 11:01:37 +00:00
Yury Khrustalev 2ee41ba6ec aarch64: Lock GCS status at startup
If GCS is enabled (see tunable glibc.cpu.aarch64_gcs), we lock all GCS
operations (including status, write on shadow stack, and push to shadow
stack) unless OPTIONAL policy is used.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
(cherry picked from commit 5061f524a2)
2026-03-10 10:58:44 +00:00
Yury Khrustalev fa4a40c7d4 tests: aarch64: fix makefile dependencies for dlopen tests for BTI
Some BTI tests in the sysdeps/aarch64 directory use
test shared objects via dlopen. Due to lack of direct makefile level
dependencies on these modules these tests could be run before the
required .so files would be created. This could lead to flaky test
results when running make check with -j flag. This commit fixes it.

Reviewed-by: Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
(cherry picked from commit 4db97f4d04)
2026-03-10 10:57:16 +00:00
Wilco Dijkstra 9898ea58b5 malloc: Avoid accessing /sys/kernel/mm files
On AArch64 malloc always checks /sys/kernel/mm/transparent_hugepage/enabled to
set the THP mode.  However this check is quite expensive and the file may not
be accessible in containers. If DEFAULT_THP_PAGESIZE is non-zero, use
malloc_thp_mode_madvise so that we take advantage of THP in all cases.  Since
madvise is a fast systemcall, it adds only a small overhead compared to the
cost of mmap and populating the pages.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
(cherry picked from commit 2e8a940df1)
2026-03-08 23:53:02 +01:00
Adhemerval Zanella c3ceb93dc4 Add BZ 33904 entry to NEWS 2026-02-26 10:21:24 -03:00
Adhemerval Zanella 911bd469f8 debug: Fix build with --enable-fortify-source=1 (BZ 33904)
The libio/bits/stdio2-decl.h only defined the prototypes for
__vasprintf_chk and __vfprintf_chk for __USE_FORTIFY_LEVEL > 1.
Also defined them for the internal header regardless.

Checked with a build with --enable-fortify-source=1 and
--enable-fortify-source=2 for all afftected ABIs.

(cherry picked from commit f96e9bd2fe)
2026-02-26 10:14:06 -03:00
Florian Weimer 48f5a05a7a nss: Missing checks in __nss_configure_lookup, __nss_database_get (bug 28940)
This avoids a null pointer dereference in the
nss_database_check_reload_and_get function, and assertion failures.

Reviewed-by: Sam James <sam@gentoo.org>
(cherry picked from commit 5b713b4944)
2026-02-18 08:58:14 +01:00
Florian Weimer d6cb7ce0e9 Linux: In getlogin_r, use utmp fallback only for specific errors
Most importantly, if getwpuid_r fails, it does not make sense to retry
via utmp because the user ID obtained from there is less reliable than
the one from /proc/self/loginuid.

Reviewed-by: Sam James <sam@gentoo.org>
(cherry picked from commit 28660f4b45)
2026-02-18 08:58:14 +01:00
Florian Weimer 140c760d71 nss: Introduce dedicated struct nss_database_for_fork type
The initialized field in struct nss_database_data is rather confusing
because it is not used by the regular NSS code, only by the fork
state synchronization code.  Introduce a separate type and place
the initialized field there.

Reviewed-by: Sam James <sam@gentoo.org>
(cherry picked from commit 7bb859f419)
2026-02-18 08:58:14 +01:00
Andreas Schwab 856c426a75 Don't include <bits/openat2.h> directly (bug 33848)
Headers from bits directories should never be included directly, only via
the official headers.

(cherry picked from commit 0e47414ce8)
2026-02-04 15:32:03 -03:00
Andreas K. Hüttel 144ba30208 po: Incorporate translatins (nl updated, ar new)
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
(cherry picked from commit bad2da7f77)
2026-01-26 01:31:16 +01:00
Aurelien Jarno 022abaeacb Fix ldbl-128ibm ceill, floorl, roundl and truncl zero-sign handling
When the result of ceill, floorl, roundl and truncl is zero, the sign of
the result must match the sign of the input. For the IBM 128-bit long
double format, the sign is determined by the high part.

Ensure the correct sign when the high part is the result of
computations, by copying the sign from the input high part to the output
high part. On POWER, this conveniently maps to the fcpsgn instruction.

In addition add test for the values provided in BZ #33623, and for the
opposite value when the result is 0.

Fixes: BZ #33623

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
(cherry picked from commit 6f4b28b20a)
2026-01-24 11:57:48 +01:00
Andreas K. Hüttel 45b58d6bd1 NEWS: add new section 2.43.1
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
2026-01-24 02:32:06 +01:00
Andreas K. Hüttel f02515d8a6 Replace advisories directory with file ADVISORIES
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
2026-01-23 23:59:36 +01:00
1652 changed files with 28893 additions and 61215 deletions
+2
View File
@@ -0,0 +1,2 @@
For the GNU C Library Security Advisories, see the git master branch:
https://sourceware.org/git/?p=glibc.git;a=tree;f=advisories;hb=HEAD
+150 -24
View File
@@ -8489,37 +8489,70 @@ sysdeps/s390/memchr-z900.S:
sysdeps/s390/memset-z900.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/s390/__longjmp.c:
sysdeps/s390/s390-32/__longjmp.c:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/s390/add_n.S:
sysdeps/s390/s390-32/add_n.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/s390/crti.S:
sysdeps/s390/s390-32/addmul_1.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/s390/crtn.S:
sysdeps/s390/s390-32/dl-machine.h:
Contributed by Carl Pederson & Martin Schwidefsky.
sysdeps/s390/s390-32/mul_1.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/s390/dl-machine.h:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/s390/s390x-mcount.h:
sysdeps/s390/s390-32/s390-mcount.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com)
sysdeps/s390/setjmp.S:
sysdeps/s390/s390-32/setjmp.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/s390/start.S:
sysdeps/s390/s390-32/start.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/s390/strncpy-z900.S:
sysdeps/s390/s390-32/strncpy-z900.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/s390/sub_n.S:
sysdeps/s390/s390-32/sub_n.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/s390/sysdep.h:
sysdeps/s390/s390-32/sysdep.h:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/s390/s390-64/__longjmp.c:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/s390/s390-64/add_n.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/s390/s390-64/crti.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/s390/s390-64/crtn.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/s390/s390-64/dl-machine.h:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/s390/s390-64/s390x-mcount.h:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com)
sysdeps/s390/s390-64/setjmp.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/s390/s390-64/start.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/s390/s390-64/strncpy-z900.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/s390/s390-64/sub_n.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/s390/s390-64/sysdep.h:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/s390/strcmp-z900.S:
@@ -9580,37 +9613,130 @@ sysdeps/unix/sysv/linux/s390/bits/elfclass.h:
sysdeps/unix/sysv/linux/s390/dl-procinfo.h:
Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2006.
sysdeps/unix/sysv/linux/s390/____longjmp_chk.c:
sysdeps/unix/sysv/linux/s390/s390-32/____longjmp_chk.c:
Contributed by Jakub Jelinek <jakub@redhat.com>.
sysdeps/unix/sysv/linux/s390/clone.S:
sysdeps/unix/sysv/linux/s390/s390-32/clone.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/unix/sysv/linux/s390/getcontext.S:
sysdeps/unix/sysv/linux/s390/s390-32/getcontext.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/unix/sysv/linux/s390/makecontext.c:
sysdeps/unix/sysv/linux/s390/s390-32/getutent.c:
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c:
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
sysdeps/unix/sysv/linux/s390/s390-32/getutid.c:
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c:
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
sysdeps/unix/sysv/linux/s390/s390-32/getutline.c:
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c:
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c:
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c:
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c:
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c:
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
sysdeps/unix/sysv/linux/s390/s390-32/login.c:
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
sysdeps/unix/sysv/linux/s390/s390-32/login32.c:
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
sysdeps/unix/sysv/linux/s390/s390-32/makecontext.c:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/unix/sysv/linux/s390/register-dump.h:
sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c:
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
sysdeps/unix/sysv/linux/s390/s390-32/register-dump.h:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/unix/sysv/linux/s390/setcontext.S:
sysdeps/unix/sysv/linux/s390/s390-32/setcontext.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/unix/sysv/linux/s390/swapcontext.S:
sysdeps/unix/sysv/linux/s390/s390-32/swapcontext.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/unix/sysv/linux/s390/syscall.S:
sysdeps/unix/sysv/linux/s390/s390-32/syscall.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/unix/sysv/linux/s390/sysdep.S:
sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/unix/sysv/linux/s390/sysdep.h:
sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/unix/sysv/linux/s390/vfork.S:
sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c:
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c:
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h:
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h:
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c:
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h:
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c:
Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
sysdeps/unix/sysv/linux/s390/s390-32/vfork.S:
Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
sysdeps/unix/sysv/linux/s390/s390-64/____longjmp_chk.c:
Contributed by Jakub Jelinek <jakub@redhat.com>.
sysdeps/unix/sysv/linux/s390/s390-64/clone.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/unix/sysv/linux/s390/s390-64/getcontext.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/unix/sysv/linux/s390/s390-64/makecontext.c:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/unix/sysv/linux/s390/s390-64/register-dump.h:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/unix/sysv/linux/s390/s390-64/setcontext.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/unix/sysv/linux/s390/s390-64/swapcontext.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/unix/sysv/linux/s390/s390-64/syscall.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h:
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
sysdeps/unix/sysv/linux/s390/s390-64/vfork.S:
Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
sysdeps/unix/sysv/linux/s390/sigcontextinfo.h:
+20
View File
@@ -154,10 +154,30 @@ passed to 'configure'. For example:
NOTE: '--enable-cet' is only supported on x86_64 and x32.
'--enable-memory-tagging'
Enable memory tagging support if the architecture supports it.
When the GNU C Library is built with this option then the resulting
library will be able to control the use of tagged memory when
hardware support is present by use of the tunable
'glibc.mem.tagging'. This includes the generation of tagged memory
when using the 'malloc' APIs.
At present only AArch64 platforms with MTE provide this
functionality, although the library will still operate (without
memory tagging) on older versions of the architecture.
The default is to disable support for memory tagging.
'--disable-profile'
Don't build libraries with profiling information. You may want to
use this option if you don't plan to do profiling.
'--enable-static-nss'
Compile static versions of the NSS (Name Service Switch) libraries.
This is not recommended because it defeats the purpose of NSS; a
program linked statically with the NSS libraries cannot be
dynamically reconfigured to use a different name database.
'--enable-hardcoded-path-in-tests'
By default, dynamic tests are linked to run with the installed C
library. This option hardcodes the newly built C library path in
+21 -12
View File
@@ -711,29 +711,25 @@ link-libc-static-tests = -Wl,--start-group $(common-objpfx)libc.a $(static-gnuli
ifndef gnulib
ifneq ($(have-cc-with-libunwind),yes)
libunwind =
ifeq ($(have-libgcc_s),yes)
libgcc_s = -lgcc_s
endif
else
libunwind = -lunwind $(libgcc-name)
libgcc_s = $(libunwind)
libunwind = -lunwind
endif
libgcc_eh := -Wl,--as-needed $(libgcc_s) -Wl,--no-as-needed
libgcc_eh := -Wl,--as-needed -lgcc_s $(libunwind) -Wl,--no-as-needed
gnulib-arch =
gnulib = $(libgcc-name) $(gnulib-arch)
gnulib-tests := $(libgcc-name) $(libgcc_eh)
gnulib = -lgcc $(gnulib-arch)
gnulib-tests := -lgcc $(libgcc_eh)
gnulib-extralibdir = $(dir $(shell $(CC) -print-file-name=libgcc_s.so$(libgcc_s.so-version)))
static-gnulib-arch =
# By default, elf/static-stubs.o, instead of -lgcc_eh, is used to
# statically link programs. When --disable-shared is used, we use
# -lgcc_eh since elf/static-stubs.o isn't sufficient.
ifeq (yes,$(build-shared))
static-gnulib = $(libgcc-name) $(static-gnulib-arch)
static-gnulib = -lgcc $(static-gnulib-arch)
else
static-gnulib = $(libgcc-name) $(libgcc_eh-name) $(static-gnulib-arch)
static-gnulib = -lgcc -lgcc_eh $(static-gnulib-arch)
endif
static-gnulib-tests := $(libgcc-name) $(libgcc_eh-name) $(libunwind)
libc.so-gnulib := $(libgcc-name)
static-gnulib-tests := -lgcc -lgcc_eh $(libunwind)
libc.so-gnulib := -lgcc
endif
+preinit = $(addprefix $(csu-objpfx),crti.o)
+postinit = $(addprefix $(csu-objpfx),crtn.o)
@@ -1456,6 +1452,19 @@ endif
sysd-rules-targets := $(sort $(foreach p,$(sysd-rules-patterns),\
$(firstword $(subst :, ,$p))))
# $(libpthread-routines-var) and $(librt-routines-var) are the make
# variable to which pthread routines need to be added to land in the
# right library.
ifeq ($(pthread-in-libc),yes)
libpthread-routines-var = routines
librt-routines-var = routines
libanl-routines-var = routines
else
libpthread-routines-var = libpthread-routines
librt-routines-var = librt-routines
libanl-routines-var = libanl-routines
endif
# A sysdeps Makeconfig fragment may set libc-reentrant to yes.
ifeq (yes,$(libc-reentrant))
defines += -D_LIBC_REENTRANT
+1 -29
View File
@@ -594,35 +594,7 @@ define summarize-tests
@grep -E '^[A-Z]+:' $(objpfx)$1 | grep -E -v '^(PASS|XFAIL):' || true
@echo " === Summary of results$2 ==="
@sed -e '/:.*/!d' -e 's/:.*//' < $(objpfx)$1 | sort | uniq -c
@{ \
grep -E '^[A-Z]+:' $(objpfx)$1 | \
grep -E -v '^(X?PASS|XFAIL|UNSUPPORTED):' | \
( \
if ! test -f $(..)allowed-failures.txt; then \
read -r _; exit $$(( $$? == 0 )); \
fi; \
status=0; \
while IFS= read -r line; do \
case "$$line" in \
FAIL:*) \
name=$${line#FAIL: }; \
escaped_name=`printf '%s' "$$name" | sed 's/[.+]/\\&/g'`; \
if grep -Eq -- "^$${escaped_name}[[:space:]]*#" \
$(..)allowed-failures.txt; then \
echo "Ignoring allowed FAIL: $${name}"; \
continue; \
fi; \
echo "Unallowed FAIL: $${name}"; \
status=1; \
;; \
*) \
status=1; \
;; \
esac; \
done; \
exit $$status; \
); \
}
@! grep -E '^[A-Z]+:' $(objpfx)$1 | grep -E -q -v '^(X?PASS|XFAIL|UNSUPPORTED):'
endef
# The intention here is to do ONE install of our build into the
+1 -2
View File
@@ -565,8 +565,7 @@ $(LINK.o) -shared -static-libgcc $(sysdep-LDFLAGS) $(rtld-LDFLAGS) \
-B$(csu-objpfx) $(load-map-file) \
$(LDFLAGS.so) $(LDFLAGS-$(@F:%.so=%).so) \
$(link-test-modules-rpath-link) \
-L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link) \
$(libgcc_eh)
-L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link)
endef
# This macro is similar to build-shlib but it does not define a soname
+11 -75
View File
@@ -5,83 +5,19 @@ See the end for copying conditions.
Please send GNU C library bug reports via <https://sourceware.org/bugzilla/>
using `glibc' in the "product" field.
Version 2.44
Version 2.43.1
Major new features:
The following bugs are resolved with this release:
* A new tunable, glibc.elf.thp, is added to map read-only segments with
Transparent Huge Pages (THP) if THP isn't disable in kernel. When
glibc.elf.thp is set to 1, malloc uses the actual kernel THP mode
instead of defaulting to madvise mode and madvise_thp will stop issuing
MADV_HUGEPAGE if kernel THP mode is always.
* THP page size in malloc is capped to MAX_THP_PAGESIZE. If THP page
size is above MAX_THP_PAGESIZE, THP in malloc is disabled.
* Additional optimized and correctly rounded mathematical functions have
been imported from the CORE-MATH project, in particular cosh, sinh, and
tanh.
* The SVID handling for cosh and sinh were moved to compat symbols, allowing
improvements in performance.
* New locale added: hrx_BR (Hunsrik language spoken in Brazil).
* Static PIE is now supported for arm-*-linux-gnueabi. It requires toolchain
support to correctly set the expected linker options.
* On AArch64 targets that support Guarded Control Stack extension all GCS
operations (including status, write on shadow stack, and push to shadow
stack) are locked after enabling GCS with ENFORCED or OVERRIDE GCS policy.
When a GCS operation is locked, a program cannot change this operation
status via prctl syscall. This prevents disabling or corrupting GCS
shadow stack during runtime.
Deprecated and removed features, and other changes affecting compatibility:
* Although malloc and related functions currently return pointers
aligned to alignof (max_align_t), the documentation now says future
versions of glibc may relax alignment requirements for small allocations.
For example, a future malloc (1) might return a pointer with odd
alignment, because no object of size 1 can have a fundamental
alignment greater than 1.
* The s390-linux-gnu (31bit) configuration is no longer supported.
* The --enable-memory-tagging configure option has been removed.
The corresponding AArch64-specific functionality that was previously
activated by this flag has been removed as well.
* The --enable-static-nss configure option has been removed. It had no
effect on the build since the NSS reorganization in glibc 2.33; its only
remaining behavior was to suppress the link-time warnings on the NSS
interface functions in libc.a, which are now emitted unconditionally.
Changes to build and runtime requirements:
[Add changes to build and runtime requirements here]
Security related changes:
The following CVEs were fixed in this release, details of which can be
found in the advisories directory of the release tarball:
GLIBC-SA-2026-0005:
gethostbyaddr and gethostbyaddr_r may incorrectly handle DNS
response (CVE-2026-4437)
GLIBC-SA-2026-0006:
gethostbyaddr and gethostbyaddr_r return invalid DNS hostnames
(CVE-2026-4438)
GLIBC-SA-2026-0007:
iconv crash due to assertion failure with untrusted input
(CVE-2026-4046)
The following bugs were resolved with this release:
[The release manager will add the list generated by
scripts/list-fixed-bugs.py just before the release.]
[33623] [ldbl-128ibm] roundl, ceill, truncl, floorl bad sign of zero
results
[33848] build: Build fails at openat2.h, redefinition of 'struct
open_how'
[33904] build: error: '__vasprintf_chk' undeclared here
[34507] nptl: Pretty-printer tests FAIL instead of UNSUPPORTED when
cross-testing without python3 on target
[34509] libc: [m68k] Regression: Perl locks up after upgrading glibc
to 2.43
Version 2.43
+4 -4
View File
@@ -38,6 +38,7 @@ The GNU C Library supports these configurations for using Linux kernels:
or1k-*-linux-gnu
powerpc-*-linux-gnu Hardware or software floating point, BE only.
powerpc64*-*-linux-gnu Big-endian and little-endian.
s390-*-linux-gnu
s390x-*-linux-gnu
riscv32-*-linux-gnu
riscv64-*-linux-gnu
@@ -62,10 +63,9 @@ following the bug-reporting instructions below. Please be sure to check
the manual in the current development sources to see if your problem has
already been corrected.
Please see https://sourceware.org/glibc/wiki/Bugzilla%20Procedures for bug
reporting information. We are now using the Bugzilla system to track all
bug reports. This web page gives detailed information on how to report
bugs properly.
Please see https://www.gnu.org/software/libc/bugs.html for bug reporting
information. We are now using the Bugzilla system to track all bug reports.
This web page gives detailed information on how to report bugs properly.
The GNU C Library is free software. See the file COPYING.LIB for copying
conditions, and LICENSES for notices about a few contributions that require
+13 -32
View File
@@ -288,8 +288,7 @@ $(addprefix $(objpfx),$(binaries-malloc-check-tests)): %-malloc-check: %.o \
endif
ifneq "$(strip $(binaries-malloc-hugetlb1-tests))" ""
$(addprefix $(objpfx),$(binaries-malloc-hugetlb1-tests)): \
%-malloc-hugetlb1: %-malloc-hugetlb1.o \
$(addprefix $(objpfx),$(binaries-malloc-hugetlb1-tests)): %-malloc-hugetlb1: %.o \
$(link-extra-libs-tests) \
$(sort $(filter $(common-objpfx)lib%,$(link-libc))) \
$(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
@@ -297,8 +296,7 @@ $(addprefix $(objpfx),$(binaries-malloc-hugetlb1-tests)): \
endif
ifneq "$(strip $(binaries-malloc-hugetlb2-tests))" ""
$(addprefix $(objpfx),$(binaries-malloc-hugetlb2-tests)): \
%-malloc-hugetlb2: %-malloc-hugetlb2.o \
$(addprefix $(objpfx),$(binaries-malloc-hugetlb2-tests)): %-malloc-hugetlb2: %.o \
$(link-extra-libs-tests) \
$(sort $(filter $(common-objpfx)lib%,$(link-libc))) \
$(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
@@ -350,39 +348,21 @@ $(1)-malloc-check-ENV = MALLOC_CHECK_=3 \
endef
$(foreach t,$(tests-malloc-check),$(eval $(call malloc-check-ENVS,$(t))))
# Generate environment variable GLIBC_TUNABLES to be appended to
# the test environment, appending tunables specifically added for
# each test to the ambient GLIBC_TUNABLES environment variable.
# The *-TUNABLES-only can be used by a test to override any ambient
# tunables.
define test-tun-joined
$(subst $(empty) ,:,$(strip $($*-TUNABLES)))
endef
define test-tunables-all
$(if $($*-TUNABLES),$(if $(GLIBC_TUNABLES),GLIBC_TUNABLES=$(GLIBC_TUNABLES):$(test-tun-joined),GLIBC_TUNABLES=$(test-tun-joined)),)
endef
define test-tunables-only
GLIBC_TUNABLES=$(subst $(empty) ,:,$(strip $($*-TUNABLES-only)))
endef
define test-tunables
$(if $($*-TUNABLES-only),$(test-tunables-only),$(test-tunables-all))
endef
# All malloc-hugetlb1 tests will be run with GLIBC_TUNABLES=glibc.malloc.hugetlb=1
define malloc-hugetlb1-ENVS
$(1)-malloc-hugetlb1-TUNABLES += glibc.malloc.hugetlb=1
$(1)-malloc-hugetlb1-ENV += GLIBC_TUNABLES=glibc.malloc.hugetlb=1
endef
$(foreach t,$(tests-malloc-hugetlb1),$(eval $(call malloc-hugetlb1-ENVS,$(t))))
# All malloc-hugetlb2 tests will be run with GLIBC_TUNABLE=glibc.malloc.hugetlb=2
define malloc-hugetlb2-ENVS
$(1)-malloc-hugetlb2-TUNABLES += glibc.malloc.hugetlb=2
$(1)-malloc-hugetlb2-ENV += GLIBC_TUNABLES=glibc.malloc.hugetlb=2
endef
$(foreach t,$(tests-malloc-hugetlb2),$(eval $(call malloc-hugetlb2-ENVS,$(t))))
# All malloc-largetcache tests will be run with GLIBC_TUNABLE=glibc.malloc.tcache_max=1048576
define malloc-largetcache-ENVS
$(1)-malloc-largetcache-TUNABLES += glibc.malloc.tcache_max=1048576
$(1)-malloc-largetcache-ENV += GLIBC_TUNABLES=glibc.malloc.tcache_max=1048576
endef
$(foreach t,$(tests-malloc-largetcache),$(eval $(call malloc-largetcache-ENVS,$(t))))
@@ -392,13 +372,13 @@ $(1)-mcheck-ENV = LD_PRELOAD=$(common-objpfx)/malloc/libc_malloc_debug.so
endef
$(foreach t,$(tests-mcheck),$(eval $(call mcheck-ENVS,$(t))))
ifneq "$(strip $(tests) $(tests-container) $(tests-internal) $(xtests) $(test-srcs))" ""
ifneq "$(strip $(tests) $(tests-internal) $(xtests) $(test-srcs))" ""
# These are the implicit rules for making test outputs
# from the test programs and whatever input files are present.
define make-test-out
$(if $($*-ENV-only),$(test-wrapper-env-only) $($*-ENV-only) $(test-tunables),\
$(test-wrapper-env) $(run-program-env) $($*-ENV) $(test-tunables)) \
$(if $($*-ENV-only),$(test-wrapper-env-only) $($*-ENV-only),\
$(test-wrapper-env) $(run-program-env) $($*-ENV)) \
$(host-test-program-cmd) $($*-ARGS)
endef
$(objpfx)%.out: %.input $(objpfx)%
@@ -414,7 +394,7 @@ $(objpfx)%.out: /dev/null $(objpfx)% # Make it 2nd arg for canned sequence.
# tests-container.
$(tests-container:%=$(objpfx)%.out): $(objpfx)%.out : $(if $(wildcard $(objpfx)%.files),$(objpfx)%.files,/dev/null) $(objpfx)%
$(test-wrapper-env) $(run-program-env) $(test-via-rtld-prefix) \
$(common-objpfx)support/test-container env $(run-program-env) $($*-ENV) $(test-tunables) \
$(common-objpfx)support/test-container env $(run-program-env) $($*-ENV) \
$(host-test-program-cmd) $($*-ARGS) > $@; \
$(evaluate-test)
@@ -451,8 +431,9 @@ py-env := PYTHONPATH=$(py-const-dir):$(..)scripts:$${PYTHONPATH}
# The pretty printer files and test_common_printers.py must be present for all.
$(tests-printers-out): $(objpfx)%.out: $(objpfx)% %.py %.c $(pretty-printers) \
$(..)scripts/test_printers_common.py
$(test-wrapper-env) $(py-env) \
$(PYTHON) $*.py $*.c $(objpfx)$* $(pretty-printers) > $@; \
$(test-wrapper-env) $(py-env) sh -c \
'command -v $(firstword $(PYTHON)) > /dev/null 2>&1 || exit 77; \
exec $(PYTHON) $*.py $*.c $(objpfx)$* $(pretty-printers)' > $@; \
$(evaluate-test)
endif
+1 -1
View File
@@ -170,7 +170,7 @@ the bug, the fix, or the mailing list discussions.
## CVE assignment
Security bugs flagged with `security+` should have [CVE
identifiers](https://www.cve.org/About/Overview). Please reach out to the glibc
identifiers](http://cve.mitre.org/about/). Please reach out to the glibc
security team using the documented [security
process](https://sourceware.org/glibc/security.html) and they work on getting a
CVE number.
+15 -560
View File
@@ -36,22 +36,8 @@ gnulib:
# Merged from gnulib 2025-10-29 (gnulib commit 1790ef25d8)
include/intprops.h
include/intprops-internal.h
# Merged from gnulib 2026-02-16
include/assure.h
include/flexmember.h
include/hash.h
include/next-prime.h
include/xalloc-oversized.h
# Merged from gnulib 2021-09-21
include/regex.h
# Merged from gnulib 2026-02-16
io/cycle-check.c
io/cycle-check.h
io/dev-ino.h
io/fts-cycle.c
io/fts-common.c
io/i-ring.c
io/same-inode.h
locale/programs/3level.h
# Merged from gnulib 2014-6-23
malloc/obstack.c
@@ -61,9 +47,7 @@ gnulib:
misc/error.c
misc/error.h
misc/getpass.c
misc/hash.c
misc/mkdtemp.c
misc/next-prime.c
# Merged from gnulib 2021-09-21
misc/sys/cdefs.h
posix/fnmatch_loop.c
@@ -113,8 +97,6 @@ gnulib:
stdlib/setenv.c
stdlib/strtoll.c
stdlib/strtoul.c
stdlib/tst-stdc_rotate_left.c
stdlib/tst-stdc_rotate_right.c
# Merged from gnulib 2014-6-26, needs merge back
string/memchr.c
string/memcmp.c
@@ -152,7 +134,9 @@ gnulib:
time/strptime.c
time/timegm.c
# Synced with GNU gettext 1.0 (2026-05-18), through gettext commit 2ebbdd0e2.
# The last merge was 2014-12-11 and merged gettext 0.19.3 into glibc with a
# patch submitted to the gettext mailing list for changes that could be merged
# back.
#
# This commit was omitted from the merge as it does not appear to be compatible
# with how glibc expects things to work:
@@ -169,7 +153,6 @@ gettext:
intl/dcngettext.c
intl/dgettext.c
intl/dngettext.c
intl/eval-plural.h
intl/explodename.c
intl/finddomain.c
intl/gettext.c
@@ -200,7 +183,7 @@ linux:
# The following files are shared with the upstream Unicode project and must be
# updated regularly to stay in sync with the upstream unicode releases.
#
# Merged from Unicode 17.0.0 release (2025 September 9)
# Merged from Unicode 16.0.0 release.
unicode:
localedata/unicode-gen/UnicodeData.txt
localedata/unicode-gen/unicode-license.txt
@@ -211,9 +194,8 @@ unicode:
# The following files are shared with the upstream tzcode project and must be
# updated regularly to stay in sync with the upstream releases.
#
# Currently synced to TZDB 2026b, distributed at:
# https://github.com/eggert/tz/releases/tag/2026b
# https://data.iana.org/time-zones/releases/tzdb-2026b.tar.lz
# Currently synced to TZDB 2024b, announced and distributed here:
# https://github.com/eggert/tz/releases/tag/2024b
tzcode:
timezone/private.h
timezone/tzfile.h
@@ -258,41 +240,35 @@ tzdata:
# FLT_EVAL_METHOD equal to 2 (i386). Additionally, extra optimizations
# are applied to share the internal data table across different
# implementations.
#
#
# The project is distribute here:
# https://gitlab.inria.fr/core-math/core-math/
core-math:
# src/binary64/acosh/acosh.c, revision 887cab6f
# src/binary64/acosh/acosh.c, revision 1bd85b89
sysdeps/ieee754/dbl-64/e_acosh.c
# src/binary64/atanh/atanh.c, revision 532e37dc
# src/binary64/atanh/atanh.c, revision c423b9a3
sysdeps/ieee754/dbl-64/e_atanh.c
# src/binary64/cosh/cosh.c, revision 5d0c89d5
sysdeps/ieee754/dbl-64/e_cosh.c
# src/binary64/tgamma/tgamma.c, revision 0f185e23
sysdeps/ieee754/dbl-64/e_gamma_r.c
# src/binary64/lgamma/lgamma.c, revision 0413bb7e
sysdeps/ieee754/dbl-64/e_lgamma_r.c
# src/binary64/sinh/sinh.c, revision 8127b7ac
sysdeps/ieee754/dbl-64/e_sinh.c
# src/binary64/asinh/asinh.c, revision cd653cf7
sysdeps/ieee754/dbl-64/s_asinh.c
# src/binary64/erf/erf.c, revision 384ed01d
sysdeps/ieee754/dbl-64/s_erf.c
# src/binary64/erfc/erfc.c, revision 55e9869e
sysdeps/ieee754/dbl-64/s_erfc.c
# src/binary64/tanh/tanh.c, revision 8ea8ea35
sysdeps/ieee754/dbl-64/s_tanh.c
# src/binary32/acos/acosf.c, revision 56dd347
sysdeps/ieee754/flt-32/e_acosf.c
# src/binary32/acosh/acoshf.c, revision d0b9ddd
sysdeps/ieee754/flt-32/e_acoshf.c
# file src/binary32/cosh/coshf.c, revision de59ecfb
sysdeps/ieee754/flt-32/e_coshf.c
# src/binary32/tgamma/tgammaf.c, revision 8ea8ea35
# src/binary32/tgamma/tgammaf.c, revision a48e352
sysdeps/ieee754/flt-32/e_gammaf_r.c
# src/binary32/lgamma/lgammaf.c, revision 8ea8ea35
# src/binary32/lgamma/lgammaf.c, revision bc385c2
sysdeps/ieee754/flt-32/e_lgammaf_r.c
# src/binary32/log10/log10f.c, revision ebff4c43
# src/binary32/log10/log10f.c, revision bc385c2
sysdeps/ieee754/flt-32/e_log10f.c
# src/binary32/sinh/sinhf.c, revision bbfabd99
sysdeps/ieee754/flt-32/e_sinhf.c
@@ -318,11 +294,11 @@ core-math:
sysdeps/ieee754/flt-32/s_exp2m1f.c
# src/binary32/expm1/expm1f.c, revision bc385c2
sysdeps/ieee754/flt-32/s_expm1f.c
# src/binary32/log10p1/log10p1f.c revision eb28456b
# src/binary32/log10p1/log10p1f.c revision bc385c2
sysdeps/ieee754/flt-32/s_log10p1f.c
# src/binary32/log1p/log1pf.c revision 24ef43a1
# src/binary32/log1p/log1pf.c revision bc385c2
sysdeps/ieee754/flt-32/s_log1pf.c
# src/binary32/log2p1/log2p1f.c revision 3fbe16be
# src/binary32/log2p1/log2p1f.c revision bc385c2
sysdeps/ieee754/flt-32/s_log2p1f.c
# src/binary32/sinpi/sinpif.c, revision bbfabd99d
sysdeps/ieee754/flt-32/s_sinpif.c
@@ -332,524 +308,3 @@ core-math:
sysdeps/ieee754/flt-32/s_tanhf.c
# src/binary32/tanpi/tanpif.c, revision 3bbf907
sysdeps/ieee754/flt-32/s_tanpif.c
# The following files are imported from the Arm Optimized-Routines project,
# with adjustments made to follow glibc code style and integrate with
# glibc-specific infrastructure where needed.
#
# The project is distributed here:
# https://github.com/ARM-software/optimized-routines/
arm-optimized-routines:
# Math routines
# math/math_config.h, revision 712aa21
sysdeps/ieee754/flt-32/math_config.h
# math/math_config.h, revision 712aa21
sysdeps/ieee754/dbl-64/math_config.h
# math/math_err.c, revision 189dfef
sysdeps/ieee754/dbl-64/math_err.c
# math/math_errf.c, revision 189dfef
sysdeps/ieee754/flt-32/math_errf.c
# math/cosf.c, revision aec783d
sysdeps/ieee754/flt-32/s_cosf.c
# math/exp2f.c, revision 712aa21
sysdeps/ieee754/flt-32/e_exp2f.c
# math/exp2f_data.c, revision 189dfef
sysdeps/ieee754/flt-32/e_exp2f_data.c
# math/expf.c, revision 712aa21
sysdeps/ieee754/flt-32/e_expf.c
# math/log2f.c, revision 712aa21
sysdeps/ieee754/flt-32/e_log2f.c
# math/log2f_data.c, revision 189dfef
sysdeps/ieee754/flt-32/e_log2f_data.c
# math/logf.c, revision 712aa21
sysdeps/ieee754/flt-32/e_logf.c
# math/logf_data.c, revision c0136f1
sysdeps/ieee754/flt-32/e_logf_data.c
# math/powf.c, revision 712aa21
sysdeps/ieee754/flt-32/e_powf.c
# math/powf_log2_data.c, revision 189dfef
sysdeps/ieee754/flt-32/e_powf_log2_data.c
# math/sincosf.c, revision af29d39
sysdeps/ieee754/flt-32/s_sincosf.c
# math/sincosf.h, revision aed553c
sysdeps/ieee754/flt-32/s_sincosf.h
# math/sincosf_data.c, revision 189dfef
sysdeps/ieee754/flt-32/s_sincosf_data.c
# math/sinf.c, revision aec783d
sysdeps/ieee754/flt-32/s_sinf.c
# math/exp.c, revision 712aa21
sysdeps/ieee754/dbl-64/e_exp.c
# math/exp10.c, revision 712aa21
sysdeps/ieee754/dbl-64/e_exp10.c
# math/exp2.c, revision 712aa21
sysdeps/ieee754/dbl-64/e_exp2.c
# math/exp_data.c, revision c013701
sysdeps/ieee754/dbl-64/e_exp_data.c
# math/log.c, revision 712aa21
sysdeps/ieee754/dbl-64/e_log.c
# math/log2.c, revision 712aa21
sysdeps/ieee754/dbl-64/e_log2.c
# math/log2_data.c, revision 189dfef
sysdeps/ieee754/dbl-64/e_log2_data.c
# math/log_data.c, revision 189dfef
sysdeps/ieee754/dbl-64/e_log_data.c
# math/pow.c, revision 712aa21
sysdeps/ieee754/dbl-64/e_pow.c
# math/pow_log_data.c, revision 189dfef
sysdeps/ieee754/dbl-64/e_pow_log_data.c
# Mathvec routines
# math/math_config.h, revision 712aa21
sysdeps/aarch64/fpu/vecmath_config.h
# math/aarch64/v_erf_data.c, revision 0a6ab6d
sysdeps/aarch64/fpu/erf_data.c
# math/aarch64/v_erfc_data.c, revision 0a6ab6d
sysdeps/aarch64/fpu/erfc_data.c
# math/aarch64/v_erfcf_data.c, revision 0a6ab6d
sysdeps/aarch64/fpu/erfcf_data.c
# math/aarch64/v_erff_data.c, revision 0a6ab6d
sysdeps/aarch64/fpu/erff_data.c
# math/aarch64/v_exp_data.c, revision 0a6ab6d
sysdeps/aarch64/fpu/v_exp_data.c
# math/aarch64/v_exp_tail_data.c, revision 0a6ab6d
sysdeps/aarch64/fpu/v_exp_tail_data.c
# math/aarch64/v_log10_data.c, revision 0a6ab6d
sysdeps/aarch64/fpu/v_log10_data.c
# math/aarch64/v_log2_data.c, revision 0a6ab6d
sysdeps/aarch64/fpu/v_log2_data.c
# math/aarch64/v_log_data.c, revision 0a6ab6d
sysdeps/aarch64/fpu/v_log_data.c
# math/aarch64/v_pow_exp_data.c, revision 0a6ab6d
sysdeps/aarch64/fpu/v_pow_exp_data.c
# math/aarch64/v_pow_log_data.c, revision 0a6ab6d
sysdeps/aarch64/fpu/v_pow_log_data.c
# math/aarch64/v_powf_data.c, revision 0a6ab6d
sysdeps/aarch64/fpu/v_powf_data.c
# math/aarch64/sve/acos.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/acos.c
# math/aarch64/sve/acosf.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/acosf.c
# math/aarch64/sve/acosh.c, revision 8b665af
sysdeps/aarch64/fpu/sve/acosh.c
# math/aarch64/sve/acoshf.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/acoshf.c
# math/aarch64/sve/acospi.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/acospi.c
# math/aarch64/sve/acospif.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/acospif.c
# math/aarch64/sve/asin.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/asin.c
# math/aarch64/sve/asinf.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/asinf.c
# math/aarch64/sve/asinh.c, revision 9bf4cfc
sysdeps/aarch64/fpu/sve/asinh.c
# math/aarch64/sve/asinhf.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/asinhf.c
# math/aarch64/sve/asinpi.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/asinpi.c
# math/aarch64/sve/asinpif.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/asinpif.c
# math/aarch64/sve/atan.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/atan.c
# math/aarch64/sve/atan2.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/atan2.c
# math/aarch64/sve/atan2f.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/atan2f.c
# math/aarch64/sve/atan2pi.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/atan2pi.c
# math/aarch64/sve/atan2pif.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/atan2pif.c
# math/aarch64/sve/atanf.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/atanf.c
# math/aarch64/sve/atanh.c, revision 29c7342
sysdeps/aarch64/fpu/sve/atanh.c
# math/aarch64/sve/atanhf.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/atanhf.c
# math/aarch64/sve/atanpi.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/atanpi.c
# math/aarch64/sve/atanpif.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/atanpif.c
# math/aarch64/sve/cbrt.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/cbrt.c
# math/aarch64/sve/cbrtf.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/cbrtf.c
# math/aarch64/sve/cos.c, revision 99cbbad
sysdeps/aarch64/fpu/sve/cos.c
# math/aarch64/sve/cosf.c, revision 25aa012
sysdeps/aarch64/fpu/sve/cosf.c
# math/aarch64/sve/cosh.c, revision 242a017
sysdeps/aarch64/fpu/sve/cosh.c
# math/aarch64/sve/coshf.c, revision 2fff60c
sysdeps/aarch64/fpu/sve/coshf.c
# math/aarch64/sve/cospi.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/cospi.c
# math/aarch64/sve/cospif.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/cospif.c
# math/aarch64/sve/erf.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/erf.c
# math/aarch64/sve/erfc.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/erfc.c
# math/aarch64/sve/erfcf.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/erfcf.c
# math/aarch64/sve/erff.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/erff.c
# math/aarch64/sve/exp.c, revision d664b69
sysdeps/aarch64/fpu/sve/exp.c
# math/aarch64/sve/exp10.c, revision d664b69
sysdeps/aarch64/fpu/sve/exp10.c
# math/aarch64/sve/exp10f.c, revision d664b69
sysdeps/aarch64/fpu/sve/exp10f.c
# math/aarch64/sve/exp10m1.c, revision d664b69
sysdeps/aarch64/fpu/sve/exp10m1.c
# math/aarch64/sve/exp10m1f.c, revision d664b69
sysdeps/aarch64/fpu/sve/exp10m1f.c
# math/aarch64/sve/exp2.c, revision d664b69
sysdeps/aarch64/fpu/sve/exp2.c
# math/aarch64/sve/exp2f.c, revision d664b69
sysdeps/aarch64/fpu/sve/exp2f.c
# math/aarch64/sve/exp2m1.c, revision d664b69
sysdeps/aarch64/fpu/sve/exp2m1.c
# math/aarch64/sve/exp2m1f.c, revision d664b69
sysdeps/aarch64/fpu/sve/exp2m1f.c
# math/aarch64/sve/expf.c, revision 47044a5
sysdeps/aarch64/fpu/sve/expf.c
# math/aarch64/sve/expm1.c, revision d664b69
sysdeps/aarch64/fpu/sve/expm1.c
# math/aarch64/sve/expm1f.c, revision d664b69
sysdeps/aarch64/fpu/sve/expm1f.c
# math/aarch64/sve/hypot.c, revision 74d699d
sysdeps/aarch64/fpu/sve/hypot.c
# math/aarch64/sve/hypotf.c, revision 74d699d
sysdeps/aarch64/fpu/sve/hypotf.c
# math/aarch64/sve/log.c, revision 91b052e
sysdeps/aarch64/fpu/sve/log.c
# math/aarch64/sve/log10.c, revision 91b052e
sysdeps/aarch64/fpu/sve/log10.c
# math/aarch64/sve/log10f.c, revision 8ca4cc0
sysdeps/aarch64/fpu/sve/log10f.c
# math/aarch64/sve/log10p1.c, revision 166744d
sysdeps/aarch64/fpu/sve/log10p1.c
# math/aarch64/sve/log10p1f.c, revision 8124d30
sysdeps/aarch64/fpu/sve/log10p1f.c
# math/aarch64/sve/log1p.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/log1p.c
# math/aarch64/sve/log1pf.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/log1pf.c
# math/aarch64/sve/log2.c, revision 91b052e
sysdeps/aarch64/fpu/sve/log2.c
# math/aarch64/sve/log2f.c, revision 8ca4cc0
sysdeps/aarch64/fpu/sve/log2f.c
# math/aarch64/sve/log2p1.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/log2p1.c
# math/aarch64/sve/log2p1f.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/log2p1f.c
# math/aarch64/sve/logf.c, revision 8ca4cc0
sysdeps/aarch64/fpu/sve/logf.c
# math/aarch64/sve/pow.c, revision 2c38e83
sysdeps/aarch64/fpu/sve/pow.c
# math/aarch64/sve/powf.c, revision 2c38e83
sysdeps/aarch64/fpu/sve/powf.c
# math/aarch64/sve/powr.c, revision 30da949
sysdeps/aarch64/fpu/sve/powr.c
# math/aarch64/sve/powrf.c, revision e2bca42
sysdeps/aarch64/fpu/sve/powrf.c
# math/aarch64/sve/rsqrt.c, revision 4fc7374
sysdeps/aarch64/fpu/sve/rsqrt.c
# math/aarch64/sve/rsqrtf.c, revision b1bc8ba
sysdeps/aarch64/fpu/sve/rsqrtf.c
# math/aarch64/sve/sin.c, revision 99cbbad
sysdeps/aarch64/fpu/sve/sin.c
# math/aarch64/sve/sinf.c, revision 25aa012
sysdeps/aarch64/fpu/sve/sinf.c
# math/aarch64/sve/sinh.c, revision 242a017
sysdeps/aarch64/fpu/sve/sinh.c
# math/aarch64/sve/sinhf.c, revision 2fff60c
sysdeps/aarch64/fpu/sve/sinhf.c
# math/aarch64/sve/sinpi.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/sinpi.c
# math/aarch64/sve/sinpif.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/sinpif.c
# math/aarch64/sve/tan.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/tan.c
# math/aarch64/sve/tanf.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/tanf.c
# math/aarch64/sve/tanh.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/tanh.c
# math/aarch64/sve/tanhf.c, revision 2fff60c
sysdeps/aarch64/fpu/sve/tanhf.c
# math/aarch64/sve/tanpi.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/tanpi.c
# math/aarch64/sve/tanpif.c, revision 1aad38d
sysdeps/aarch64/fpu/sve/tanpif.c
# math/aarch64/sve/sv_exp_special_inline.h, revision d664b69
sysdeps/aarch64/fpu/sve/sv_exp_special_inline.h
# math/aarch64/sve/sv_expf_inline.h, revision ba35b32
sysdeps/aarch64/fpu/sve/sv_expf_inline.h
# math/aarch64/sve/sv_expf_special_inline.h, revision d664b69
sysdeps/aarch64/fpu/sve/sv_expf_special_inline.h
# math/aarch64/sve/sv_expm1f_inline.h, revision 78cd003
sysdeps/aarch64/fpu/sve/sv_expm1f_inline.h
# math/aarch64/sve/sv_log1p_inline.h, revision 7d08237
sysdeps/aarch64/fpu/sve/sv_log1p_inline.h
# math/aarch64/sve/sv_log1pf_inline.h, revision a386525
sysdeps/aarch64/fpu/sve/sv_log1pf_inline.h
# math/aarch64/sve/sv_pow_inline.h, revision 30da949
sysdeps/aarch64/fpu/sve/sv_pow_inline.h
# math/aarch64/sve/sv_powf_inline.h, revision 30da949
sysdeps/aarch64/fpu/sve/sv_powf_inline.h
# math/aarch64/sve/sv_poly_f32.h, revision 5d5e6e6
sysdeps/aarch64/fpu/sve/poly_sve_f32.h
# math/aarch64/sve/sv_poly_f64.h, revision 5d5e6e6
sysdeps/aarch64/fpu/sve/poly_sve_f64.h
# math/aarch64/sve/sv_poly_generic.h, revision 5d5e6e6
sysdeps/aarch64/fpu/sve/poly_sve_generic.h
# math/aarch64/sve/sv_math.h, revision 7361ef6
sysdeps/aarch64/fpu/sve/sv_math.h
# math/aarch64/sve/sv_trig_fallback.h, revision 99cbbad
sysdeps/aarch64/fpu/sve/sv_trig_fallback.h
# math/aarch64/sve/sv_trigf_fallback.h, revision 25aa012
sysdeps/aarch64/fpu/sve/sv_trigf_fallback.h
# math/aarch64/advsimd/acos.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/acos.c
# math/aarch64/advsimd/acosf.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/acosf.c
# math/aarch64/advsimd/acosh.c, revision 188e75a
sysdeps/aarch64/fpu/advsimd/acosh.c
# math/aarch64/advsimd/acoshf.c, revision af3851e
sysdeps/aarch64/fpu/advsimd/acoshf.c
# math/aarch64/advsimd/acospi.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/acospi.c
# math/aarch64/advsimd/acospif.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/acospif.c
# math/aarch64/advsimd/asin.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/asin.c
# math/aarch64/advsimd/asinf.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/asinf.c
# math/aarch64/advsimd/asinh.c, revision bac1b4f
sysdeps/aarch64/fpu/advsimd/asinh.c
# math/aarch64/advsimd/asinhf.c, revision af3851e
sysdeps/aarch64/fpu/advsimd/asinhf.c
# math/aarch64/advsimd/asinpi.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/asinpi.c
# math/aarch64/advsimd/asinpif.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/asinpif.c
# math/aarch64/advsimd/atan.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/atan.c
# math/aarch64/advsimd/atan2.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/atan2.c
# math/aarch64/advsimd/atan2f.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/atan2f.c
# math/aarch64/advsimd/atan2pi.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/atan2pi.c
# math/aarch64/advsimd/atan2pif.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/atan2pif.c
# math/aarch64/advsimd/atanf.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/atanf.c
# math/aarch64/advsimd/atanh.c, revision 281cb3a
sysdeps/aarch64/fpu/advsimd/atanh.c
# math/aarch64/advsimd/atanhf.c, revision d852158
sysdeps/aarch64/fpu/advsimd/atanhf.c
# math/aarch64/advsimd/atanpi.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/atanpi.c
# math/aarch64/advsimd/atanpif.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/atanpif.c
# math/aarch64/advsimd/cbrt.c, revision 0a6ab6d
sysdeps/aarch64/fpu/advsimd/cbrt.c
# math/aarch64/advsimd/cbrtf.c, revision 6c74650
sysdeps/aarch64/fpu/advsimd/cbrtf.c
# math/aarch64/advsimd/cos.c, revision 677a12b
sysdeps/aarch64/fpu/advsimd/cos.c
# math/aarch64/advsimd/cosf.c, revision 15c35d9
sysdeps/aarch64/fpu/advsimd/cosf.c
# math/aarch64/advsimd/cosh.c, revision 447bbaa
sysdeps/aarch64/fpu/advsimd/cosh.c
# math/aarch64/advsimd/coshf.c, revision 45237ba
sysdeps/aarch64/fpu/advsimd/coshf.c
# math/aarch64/advsimd/cospi.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/cospi.c
# math/aarch64/advsimd/cospif.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/cospif.c
# math/aarch64/advsimd/erf.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/erf.c
# math/aarch64/advsimd/erfc.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/erfc.c
# math/aarch64/advsimd/erfcf.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/erfcf.c
# math/aarch64/advsimd/erff.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/erff.c
# math/aarch64/advsimd/exp.c, revision dce5dab
sysdeps/aarch64/fpu/advsimd/exp.c
# math/aarch64/advsimd/exp10.c, revision dce5dab
sysdeps/aarch64/fpu/advsimd/exp10.c
# math/aarch64/advsimd/exp10f.c, revision 69d38dd
sysdeps/aarch64/fpu/advsimd/exp10f.c
# math/aarch64/advsimd/exp10m1.c, revision dce5dab
sysdeps/aarch64/fpu/advsimd/exp10m1.c
# math/aarch64/advsimd/exp10m1f.c, revision a5092e8
sysdeps/aarch64/fpu/advsimd/exp10m1f.c
# math/aarch64/advsimd/exp2.c, revision dce5dab
sysdeps/aarch64/fpu/advsimd/exp2.c
# math/aarch64/advsimd/exp2f.c, revision 69d38dd
sysdeps/aarch64/fpu/advsimd/exp2f.c
# math/aarch64/advsimd/exp2m1.c, revision dce5dab
sysdeps/aarch64/fpu/advsimd/exp2m1.c
# math/aarch64/advsimd/exp2m1f.c, revision a5092e8
sysdeps/aarch64/fpu/advsimd/exp2m1f.c
# math/aarch64/advsimd/expf.c, revision 69d38dd
sysdeps/aarch64/fpu/advsimd/expf.c
# math/aarch64/advsimd/expm1.c, revision dce5dab
sysdeps/aarch64/fpu/advsimd/expm1.c
# math/aarch64/advsimd/expm1f.c, revision a5092e8
sysdeps/aarch64/fpu/advsimd/expm1f.c
# math/aarch64/advsimd/hypot.c, revision 09f8d05
sysdeps/aarch64/fpu/advsimd/hypot.c
# math/aarch64/advsimd/hypotf.c, revision 99dff4f
sysdeps/aarch64/fpu/advsimd/hypotf.c
# math/aarch64/advsimd/log.c, revision 0345857
sysdeps/aarch64/fpu/advsimd/log.c
# math/aarch64/advsimd/log10.c, revision 77aff35
sysdeps/aarch64/fpu/advsimd/log10.c
# math/aarch64/advsimd/log10f.c, revision ff1596f
sysdeps/aarch64/fpu/advsimd/log10f.c
# math/aarch64/advsimd/log10p1.c, revision 7fc8510
sysdeps/aarch64/fpu/advsimd/log10p1.c
# math/aarch64/advsimd/log10p1f.c, revision 58cd796
sysdeps/aarch64/fpu/advsimd/log10p1f.c
# math/aarch64/advsimd/log1p.c, revision 355a985
sysdeps/aarch64/fpu/advsimd/log1p.c
# math/aarch64/advsimd/log1pf.c, revision 5cf8408
sysdeps/aarch64/fpu/advsimd/log1pf.c
# math/aarch64/advsimd/log2.c, revision b8deb33
sysdeps/aarch64/fpu/advsimd/log2.c
# math/aarch64/advsimd/log2f.c, revision b98f80d
sysdeps/aarch64/fpu/advsimd/log2f.c
# math/aarch64/advsimd/log2p1.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/log2p1.c
# math/aarch64/advsimd/log2p1f.c, revision 58cd796
sysdeps/aarch64/fpu/advsimd/log2p1f.c
# math/aarch64/advsimd/logf.c, revision 1b15b12
sysdeps/aarch64/fpu/advsimd/logf.c
# math/aarch64/advsimd/finite_pow.h, revision 30da949
sysdeps/aarch64/fpu/advsimd/finite_pow.h
# math/pow_common.h, revision 30da949
sysdeps/aarch64/fpu/pow_common.h
# math/powf_common.h, revision 30da949
sysdeps/aarch64/fpu/powf_common.h
# math/aarch64/advsimd/pow.c, revision 30da949
sysdeps/aarch64/fpu/advsimd/pow.c
# math/aarch64/advsimd/powf.c, revision 30da949
sysdeps/aarch64/fpu/advsimd/powf.c
# math/aarch64/advsimd/powr.c, revision 30da949
sysdeps/aarch64/fpu/advsimd/powr.c
# math/aarch64/advsimd/powrf.c, revision e2bca42
sysdeps/aarch64/fpu/advsimd/powrf.c
# math/aarch64/advsimd/rsqrt.c, revision 0945eab
sysdeps/aarch64/fpu/advsimd/rsqrt.c
# math/aarch64/advsimd/rsqrtf.c, revision 88e9cc9
sysdeps/aarch64/fpu/advsimd/rsqrtf.c
# math/aarch64/advsimd/sin.c, revision 677a12b
sysdeps/aarch64/fpu/advsimd/sin.c
# math/aarch64/advsimd/sinf.c, revision 15c35d9
sysdeps/aarch64/fpu/advsimd/sinf.c
# math/aarch64/advsimd/sinh.c, revision 447bbaa
sysdeps/aarch64/fpu/advsimd/sinh.c
# math/aarch64/advsimd/sinhf.c, revision 45237ba
sysdeps/aarch64/fpu/advsimd/sinhf.c
# math/aarch64/advsimd/sinpi.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/sinpi.c
# math/aarch64/advsimd/sinpif.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/sinpif.c
# math/aarch64/advsimd/tan.c, revision a8bbb87
sysdeps/aarch64/fpu/advsimd/tan.c
# math/aarch64/advsimd/tanf.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/tanf.c
# math/aarch64/advsimd/tanh.c, revision 447bbaa
sysdeps/aarch64/fpu/advsimd/tanh.c
# math/aarch64/advsimd/tanhf.c, revision 45237ba
sysdeps/aarch64/fpu/advsimd/tanhf.c
# math/aarch64/advsimd/tanpi.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/tanpi.c
# math/aarch64/advsimd/tanpif.c, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/tanpif.c
# math/aarch64/advsimd/v_exp_special_case_inline.h, revision dce5dab
sysdeps/aarch64/fpu/advsimd/v_exp_special_case_inline.h
# math/aarch64/advsimd/v_expf_inline.h, revision 747e0e1
sysdeps/aarch64/fpu/advsimd/v_expf_inline.h
# math/aarch64/advsimd/v_expf_special_inline.h, revision a5092e8
sysdeps/aarch64/fpu/advsimd/v_expf_special_inline.h
# math/aarch64/advsimd/v_expm1_inline.h, revision 0a6ab6d
sysdeps/aarch64/fpu/advsimd/v_expm1_inline.h
# math/aarch64/advsimd/v_expm1f_inline.h, revision 0a6ab6d
sysdeps/aarch64/fpu/advsimd/v_expm1f_inline.h
# math/aarch64/advsimd/v_log1p_inline.h, revision 1aad38d
sysdeps/aarch64/fpu/advsimd/v_log1p_inline.h
# math/aarch64/advsimd/v_log1pf_inline.h, revision 0a6ab6d
sysdeps/aarch64/fpu/advsimd/v_log1pf_inline.h
# math/aarch64/advsimd/v_pow_inline.h, revision efde0c7
sysdeps/aarch64/fpu/advsimd/v_pow_inline.h
# math/aarch64/advsimd/v_powf_inline.h, revision 5b06a16
sysdeps/aarch64/fpu/advsimd/v_powf_inline.h
# math/aarch64/advsimd/v_powrf_inline.h, revision 30da949
sysdeps/aarch64/fpu/advsimd/v_powrf_inline.h
# math/aarch64/advsimd/v_poly_f32.h, revision 0a6ab6d
sysdeps/aarch64/fpu/advsimd/poly_advsimd_f32.h
# math/aarch64/advsimd/v_poly_f64.h, revision 0a6ab6d
sysdeps/aarch64/fpu/advsimd/poly_advsimd_f64.h
# math/poly_generic.h, revision 0a6ab6d
sysdeps/aarch64/fpu/advsimd/poly_generic.h
# math/aarch64/advsimd/v_math.h, revision 1829557
sysdeps/aarch64/fpu/advsimd/v_math.h
# math/aarch64/advsimd/v_trig_fallback.h, revision 677a12b
sysdeps/aarch64/fpu/advsimd/v_trig_fallback.h
# math/aarch64/advsimd/v_trigf_fallback.h, revision 15c35d9
sysdeps/aarch64/fpu/advsimd/v_trigf_fallback.h
# String routines
# string/aarch64/__mtag_tag_region.S, revision 41e5ae5
sysdeps/aarch64/__mtag_tag_region.S
# string/aarch64/__mtag_tag_zero_region.S, revision 41e5ae5
sysdeps/aarch64/__mtag_tag_zero_region.S
# string/aarch64/memchr-mte.S, revision 41e5ae5
sysdeps/aarch64/memchr.S
# string/aarch64/memcmp.S, revision 41e5ae5
sysdeps/aarch64/memcmp.S
# string/aarch64/memcpy-advsimd.S, revision 41e5ae5
sysdeps/aarch64/memcpy.S
# string/aarch64/memcpy-mops.S, revision 41e5ae5
sysdeps/aarch64/multiarch/memcpy_mops.S
# string/aarch64/memcpy-sve.S, revision 71e3640
sysdeps/aarch64/multiarch/memcpy_sve.S
# string/aarch64/memmove-mops.S, revision 41e5ae5
sysdeps/aarch64/multiarch/memmove_mops.S
# string/aarch64/memrchr.S, revision 41e5ae5
sysdeps/aarch64/memrchr.S
# string/aarch64/memset-mops.S, revision 41e5ae5
sysdeps/aarch64/multiarch/memset_mops.S
# string/aarch64/memset-sve.S, revision 0f71101
sysdeps/aarch64/multiarch/memset_sve_zva64.S
# string/aarch64/memset.S, revision 098df8c
sysdeps/aarch64/memset.S
# string/aarch64/stpcpy.S, revision 189dfef
sysdeps/aarch64/stpcpy.S
# string/aarch64/strchr-mte.S, revision 41e5ae5
sysdeps/aarch64/strchr.S
# string/aarch64/strchrnul-mte.S, revision 41e5ae5
sysdeps/aarch64/strchrnul.S
# string/aarch64/strcmp.S, revision 41e5ae5
sysdeps/aarch64/strcmp.S
# string/aarch64/strcpy.S, revision 41e5ae5
sysdeps/aarch64/strcpy.S
# string/aarch64/strlen-mte.S, revision 41e5ae5
sysdeps/aarch64/strlen.S
# string/aarch64/strncmp.S, revision 41e5ae5
sysdeps/aarch64/strncmp.S
# string/aarch64/strnlen.S, revision 41e5ae5
sysdeps/aarch64/strnlen.S
# string/aarch64/strrchr-mte.S, revision 41e5ae5
sysdeps/aarch64/strrchr.S
# string/arm/memchr.S, revision 1eb5d7c
sysdeps/arm/armv6t2/memchr.S
# string/arm/memcpy.S, revision 1eb5d7c
sysdeps/arm/armv7/multiarch/memcpy_impl.S
# string/arm/strcmp.S, revision 1eb5d7c
sysdeps/arm/armv7/strcmp.S
# string/arm/strlen-armv6t2.S, revision 1eb5d7c
sysdeps/arm/armv6t2/strlen.S
-14
View File
@@ -1,14 +0,0 @@
printf: incorrect output for integers with thousands separator and width field
When the printf family of functions is called with a format specifier
that uses an <apostrophe> (enable grouping) and a minimum width
specifier, the resulting output could be larger than reasonably expected
by a caller that computed a tight bound on the buffer size. The
resulting larger than expected output could result in a buffer overflow
in the printf family of functions.
CVE-Id: CVE-2023-25139
Public-Date: 2023-02-02
Vulnerable-Commit: e88b9f0e5cc50cab57a299dc7efe1a4eb385161d (2.37)
Fix-Commit: c980549cc6a1c03c23cc2fe3e7b0fe626a0364b0 (2.38)
Fix-Commit: 07b9521fc6369d000216b96562ff7c0ed32a16c4 (2.37-4)
-15
View File
@@ -1,15 +0,0 @@
getaddrinfo: Stack read overflow in no-aaaa mode
If the system is configured in no-aaaa mode via /etc/resolv.conf,
getaddrinfo is called for the AF_UNSPEC address family, and a DNS
response is received over TCP that is larger than 2048 bytes,
getaddrinfo may potentially disclose stack contents via the returned
address data, or crash.
CVE-Id: CVE-2023-4527
Public-Date: 2023-09-12
Vulnerable-Commit: f282cdbe7f436c75864e5640a409a10485e9abb2 (2.36)
Fix-Commit: bd77dd7e73e3530203be1c52c8a29d08270cb25d (2.39)
Fix-Commit: 4ea972b7edd7e36610e8cde18bf7a8149d7bac4f (2.36-113)
Fix-Commit: b7529346025a130fee483d42178b5c118da971bb (2.37-38)
Fix-Commit: b25508dd774b617f99419bdc3cf2ace4560cd2d6 (2.38-19)
-15
View File
@@ -1,15 +0,0 @@
getaddrinfo: Potential use-after-free
When an NSS plugin only implements the _gethostbyname2_r and
_getcanonname_r callbacks, getaddrinfo could use memory that was freed
during buffer resizing, potentially causing a crash or read or write to
arbitrary memory.
CVE-Id: CVE-2023-4806
Public-Date: 2023-09-12
Fix-Commit: 973fe93a5675c42798b2161c6f29c01b0e243994 (2.39)
Fix-Commit: e09ee267c03e3150c2c9ba28625ab130705a485e (2.34-420)
Fix-Commit: e3ccb230a961b4797510e6a1f5f21fd9021853e7 (2.35-270)
Fix-Commit: a9728f798ec7f05454c95637ee6581afaa9b487d (2.36-115)
Fix-Commit: 6529a7466c935f36e9006b854d6f4e1d4876f942 (2.37-39)
Fix-Commit: 00ae4f10b504bc4564e9f22f00907093f1ab9338 (2.38-20)
-16
View File
@@ -1,16 +0,0 @@
tunables: local privilege escalation through buffer overflow
If a tunable of the form NAME=NAME=VAL is passed in the environment of a
setuid program and NAME is valid, it may result in a buffer overflow,
which could be exploited to achieve escalated privileges. This flaw was
introduced in glibc 2.34.
CVE-Id: CVE-2023-4911
Public-Date: 2023-10-03
Vulnerable-Commit: 2ed18c5b534d9e92fc006202a5af0df6b72e7aca (2.34)
Fix-Commit: 1056e5b4c3f2d90ed2b4a55f96add28da2f4c8fa (2.39)
Fix-Commit: dcc367f148bc92e7f3778a125f7a416b093964d9 (2.34-423)
Fix-Commit: c84018a05aec80f5ee6f682db0da1130b0196aef (2.35-274)
Fix-Commit: 22955ad85186ee05834e47e665056148ca07699c (2.36-118)
Fix-Commit: b4e23c75aea756b4bddc4abcf27a1c6dca8b6bd3 (2.37-45)
Fix-Commit: 750a45a783906a19591fb8ff6b7841470f1f5701 (2.38-27)
-18
View File
@@ -1,18 +0,0 @@
getaddrinfo: DoS due to memory leak
The fix for CVE-2023-4806 introduced a memory leak when an application
calls getaddrinfo for AF_INET6 with AI_CANONNAME, AI_ALL and AI_V4MAPPED
flags set.
CVE-Id: CVE-2023-5156
Public-Date: 2023-09-25
Vulnerable-Commit: e09ee267c03e3150c2c9ba28625ab130705a485e (2.34-420)
Vulnerable-Commit: e3ccb230a961b4797510e6a1f5f21fd9021853e7 (2.35-270)
Vulnerable-Commit: a9728f798ec7f05454c95637ee6581afaa9b487d (2.36-115)
Vulnerable-Commit: 6529a7466c935f36e9006b854d6f4e1d4876f942 (2.37-39)
Vulnerable-Commit: 00ae4f10b504bc4564e9f22f00907093f1ab9338 (2.38-20)
Fix-Commit: 8006457ab7e1cd556b919f477348a96fe88f2e49 (2.34-421)
Fix-Commit: 17092c0311f954e6f3c010f73ce3a78c24ac279a (2.35-272)
Fix-Commit: 856bac55f98dc840e7c27cfa82262b933385de90 (2.36-116)
Fix-Commit: 4473d1b87d04b25cdd0e0354814eeaa421328268 (2.37-42)
Fix-Commit: 5ee59ca371b99984232d7584fe2b1a758b4421d3 (2.38-24)
-15
View File
@@ -1,15 +0,0 @@
syslog: Heap buffer overflow in __vsyslog_internal
__vsyslog_internal did not handle a case where printing a SYSLOG_HEADER
containing a long program name failed to update the required buffer
size, leading to the allocation and overflow of a too-small buffer on
the heap.
CVE-Id: CVE-2023-6246
Public-Date: 2024-01-30
Vulnerable-Commit: 52a5be0df411ef3ff45c10c7c308cb92993d15b1 (2.37)
Fix-Commit: 6bd0e4efcc78f3c0115e5ea9739a1642807450da (2.39)
Fix-Commit: 23514c72b780f3da097ecf33a793b7ba9c2070d2 (2.38-42)
Fix-Commit: 97a4292aa4a2642e251472b878d0ec4c46a0e59a (2.37-57)
Vulnerable-Commit: b0e7888d1fa2dbd2d9e1645ec8c796abf78880b9 (2.36-16)
Fix-Commit: d1a83b6767f68b3cb5b4b4ea2617254acd040c82 (2.36-126)
-15
View File
@@ -1,15 +0,0 @@
syslog: Heap buffer overflow in __vsyslog_internal
__vsyslog_internal used the return value of snprintf/vsnprintf to
calculate buffer sizes for memory allocation. If these functions (for
any reason) failed and returned -1, the resulting buffer would be too
small to hold output.
CVE-Id: CVE-2023-6779
Public-Date: 2024-01-30
Vulnerable-Commit: 52a5be0df411ef3ff45c10c7c308cb92993d15b1 (2.37)
Fix-Commit: 7e5a0c286da33159d47d0122007aac016f3e02cd (2.39)
Fix-Commit: d0338312aace5bbfef85e03055e1212dd0e49578 (2.38-43)
Fix-Commit: 67062eccd9a65d7fda9976a56aeaaf6c25a80214 (2.37-58)
Vulnerable-Commit: b0e7888d1fa2dbd2d9e1645ec8c796abf78880b9 (2.36-16)
Fix-Commit: 2bc9d7c002bdac38b5c2a3f11b78e309d7765b83 (2.36-127)
-13
View File
@@ -1,13 +0,0 @@
syslog: Integer overflow in __vsyslog_internal
__vsyslog_internal calculated a buffer size by adding two integers, but
did not first check if the addition would overflow.
CVE-Id: CVE-2023-6780
Public-Date: 2024-01-30
Vulnerable-Commit: 52a5be0df411ef3ff45c10c7c308cb92993d15b1 (2.37)
Fix-Commit: ddf542da94caf97ff43cc2875c88749880b7259b (2.39)
Fix-Commit: d37c2b20a4787463d192b32041c3406c2bd91de0 (2.38-44)
Fix-Commit: 2b58cba076e912961ceaa5fa58588e4b10f791c0 (2.37-59)
Vulnerable-Commit: b0e7888d1fa2dbd2d9e1645ec8c796abf78880b9 (2.36-16)
Fix-Commit: b9b7d6a27aa0632f334352fa400771115b3c69b7 (2.36-128)
-28
View File
@@ -1,28 +0,0 @@
ISO-2022-CN-EXT: fix out-of-bound writes when writing escape sequence
The iconv() function in the GNU C Library versions 2.39 and older may
overflow the output buffer passed to it by up to 4 bytes when converting
strings to the ISO-2022-CN-EXT character set, which may be used to
crash an application or overwrite a neighbouring variable.
ISO-2022-CN-EXT uses escape sequences to indicate character set changes
(as specified by RFC 1922). While the SOdesignation has the expected
bounds checks, neither SS2designation nor SS3designation have its;
allowing a write overflow of 1, 2, or 3 bytes with fixed values:
'$+I', '$+J', '$+K', '$+L', '$+M', or '$*H'.
CVE-Id: CVE-2024-2961
Public-Date: 2024-04-17
Vulnerable-Commit: 755104edc75c53f4a0e7440334e944ad3c6b32fc (2.1.93-169)
Fix-Commit: f9dc609e06b1136bb0408be9605ce7973a767ada (2.40)
Fix-Commit: 31da30f23cddd36db29d5b6a1c7619361b271fb4 (2.39-31)
Fix-Commit: e1135387deded5d73924f6ca20c72a35dc8e1bda (2.38-66)
Fix-Commit: 89ce64b269a897a7780e4c73a7412016381c6ecf (2.37-89)
Fix-Commit: 4ed98540a7fd19f458287e783ae59c41e64df7b5 (2.36-164)
Fix-Commit: 36280d1ce5e245aabefb877fe4d3c6cff95dabfa (2.35-315)
Fix-Commit: a8b0561db4b9847ebfbfec20075697d5492a363c (2.34-459)
Fix-Commit: ed4f16ff6bed3037266f1fa682ebd32a18fce29c (2.33-263)
Fix-Commit: 682ad4c8623e611a971839990ceef00346289cc9 (2.32-140)
Fix-Commit: 3703c32a8d304c1ee12126134ce69be965f38000 (2.31-154)
Reported-By: Charles Fol
-22
View File
@@ -1,22 +0,0 @@
nscd: Stack-based buffer overflow in netgroup cache
If the Name Service Cache Daemon's (nscd) fixed size cache is exhausted
by client requests then a subsequent client request for netgroup data
may result in a stack-based buffer overflow. This flaw was introduced
in glibc 2.15 when the cache was added to nscd.
This vulnerability is only present in the nscd binary.
CVE-Id: CVE-2024-33599
Public-Date: 2024-04-23
Vulnerable-Commit: 684ae515993269277448150a1ca70db3b94aa5bd (2.15)
Fix-Commit: 69c58d5ef9f584ea198bd00f7964d364d0e6b921 (2.31-155)
Fix-Commit: a77064893bfe8a701770e2f53a4d33805bc47a5a (2.32-141)
Fix-Commit: 5c75001a96abcd50cbdb74df24c3f013188d076e (2.33-264)
Fix-Commit: 52f73e5c4e29b14e79167272297977f360ae1e97 (2.34-460)
Fix-Commit: 7a95873543ce225376faf13bb71c43dea6d24f86 (2.35-316)
Fix-Commit: caa3151ca460bdd9330adeedd68c3112d97bffe4 (2.36-165)
Fix-Commit: f75c298e747b2b8b41b1c2f551c011a52c41bfd1 (2.37-91)
Fix-Commit: 5968aebb86164034b8f8421b4abab2f837a5bdaf (2.38-72)
Fix-Commit: 1263d583d2e28afb8be53f8d6922f0842036f35d (2.39-35)
Fix-Commit: 87801a8fd06db1d654eea3e4f7626ff476a9bdaa (2.40)
-32
View File
@@ -1,32 +0,0 @@
nscd: Null pointer crash after notfound response
If the Name Service Cache Daemon's (nscd) cache fails to add a not-found
netgroup response to the cache, the client request can result in a null
pointer dereference. This flaw was introduced in glibc 2.15 when the
cache was added to nscd.
This vulnerability is only present in the nscd binary.
CVE-Id: CVE-2024-33600
Public-Date: 2024-04-24
Vulnerable-Commit: 684ae515993269277448150a1ca70db3b94aa5bd (2.15)
Fix-Commit: b048a482f088e53144d26a61c390bed0210f49f2 (2.40)
Fix-Commit: 7835b00dbce53c3c87bbbb1754a95fb5e58187aa (2.40)
Fix-Commit: c99f886de54446cd4447db6b44be93dabbdc2f8b (2.39-37)
Fix-Commit: 5a508e0b508c8ad53bd0d2fb48fd71b242626341 (2.39-36)
Fix-Commit: 2ae9446c1b7a3064743b4a51c0bbae668ee43e4c (2.38-74)
Fix-Commit: 541ea5172aa658c4bd5c6c6d6fd13903c3d5bb0a (2.38-73)
Fix-Commit: a8070b31043c7585c36ba68a74298c4f7af075c3 (2.37-93)
Fix-Commit: 5eea50c4402e39588de98aa1d4469a79774703d4 (2.37-92)
Fix-Commit: f205b3af56740e3b014915b1bd3b162afe3407ef (2.36-167)
Fix-Commit: c34f470a615b136170abd16142da5dd0c024f7d1 (2.36-166)
Fix-Commit: bafadc589fbe21ae330e8c2af74db9da44a17660 (2.35-318)
Fix-Commit: 4370bef52b0f3f3652c6aa13d7a9bb3ac079746d (2.35-317)
Fix-Commit: 1f94122289a9bf7dba573f5d60327aaa2b85cf2e (2.34-462)
Fix-Commit: 966d6ac9e40222b84bb21674cc4f83c8d72a5a26 (2.34-461)
Fix-Commit: e3eef1b8fbdd3a7917af466ca9c4b7477251ca79 (2.33-266)
Fix-Commit: f20a8d696b13c6261b52a6434899121f8b19d5a7 (2.33-265)
Fix-Commit: be602180146de37582a3da3a0caa4b719645de9c (2.32-143)
Fix-Commit: 394eae338199078b7961b051c191539870742d7b (2.32-142)
Fix-Commit: 8d7949183760170c61e55def723c1d8050187874 (2.31-157)
Fix-Commit: 304ce5fe466c4762b21b36c26926a4657b59b53e (2.31-156)
-28
View File
@@ -1,28 +0,0 @@
nscd: netgroup cache may terminate daemon on memory allocation failure
The Name Service Cache Daemon's (nscd) netgroup cache uses xmalloc or
xrealloc and these functions may terminate the process due to a memory
allocation failure resulting in a denial of service to the clients. The
flaw was introduced in glibc 2.15 when the cache was added to nscd.
This vulnerability is only present in the nscd binary.
Subsequent refactoring of the netgroup cache only added more uses of
xmalloc and xrealloc. Uses of xmalloc and xrealloc in other parts of
nscd only occur during startup of the daemon and so are not affected by
client requests that could trigger an out of memory followed by
termination.
CVE-Id: CVE-2024-33601
Public-Date: 2024-04-24
Vulnerable-Commit: 684ae515993269277448150a1ca70db3b94aa5bd (2.15)
Fix-Commit: c04a21e050d64a1193a6daab872bca2528bda44b (2.40)
Fix-Commit: a9a8d3eebb145779a18d90e3966009a1daa63cd8 (2.39-38)
Fix-Commit: 71af8ca864345d39b746d5cee84b94b430fad5db (2.38-75)
Fix-Commit: 6e106dc214d6a033a4e945d1c6cf58061f1c5f1f (2.37-94)
Fix-Commit: b6742463694b1dfdd5120b91ee21cf05d15ec2e2 (2.36-168)
Fix-Commit: 7a5864cac60e06000394128a5a2817b03542f5a3 (2.35-319)
Fix-Commit: 86f1d5f4129c373ac6fb6df5bcf38273838843cb (2.34-463)
Fix-Commit: 4d27d4b9a188786fc6a56745506cec2acfc51f83 (2.33-267)
Fix-Commit: 3ed195a8ec89da281e3c4bf887a13d281b72d8f4 (2.32-144)
Fix-Commit: bbf5a58ccb55679217f94de706164d15372fbbc0 (2.31-158)
-26
View File
@@ -1,26 +0,0 @@
nscd: netgroup cache assumes NSS callback uses in-buffer strings
The Name Service Cache Daemon's (nscd) netgroup cache can corrupt memory
when the NSS callback does not store all strings in the provided buffer.
The flaw was introduced in glibc 2.15 when the cache was added to nscd.
This vulnerability is only present in the nscd binary.
There is no guarantee from the NSS callback API that the returned
strings are all within the buffer. However, the netgroup cache code
assumes that the NSS callback uses in-buffer strings and if it doesn't
the buffer resizing logic could lead to potential memory corruption.
CVE-Id: CVE-2024-33602
Public-Date: 2024-04-24
Vulnerable-Commit: 684ae515993269277448150a1ca70db3b94aa5bd (2.15)
Fix-Commit: c04a21e050d64a1193a6daab872bca2528bda44b (2.40)
Fix-Commit: a9a8d3eebb145779a18d90e3966009a1daa63cd8 (2.39-38)
Fix-Commit: 71af8ca864345d39b746d5cee84b94b430fad5db (2.38-75)
Fix-Commit: 6e106dc214d6a033a4e945d1c6cf58061f1c5f1f (2.37-94)
Fix-Commit: b6742463694b1dfdd5120b91ee21cf05d15ec2e2 (2.36-168)
Fix-Commit: 7a5864cac60e06000394128a5a2817b03542f5a3 (2.35-319)
Fix-Commit: 86f1d5f4129c373ac6fb6df5bcf38273838843cb (2.34-463)
Fix-Commit: 4d27d4b9a188786fc6a56745506cec2acfc51f83 (2.33-267)
Fix-Commit: 3ed195a8ec89da281e3c4bf887a13d281b72d8f4 (2.32-144)
Fix-Commit: bbf5a58ccb55679217f94de706164d15372fbbc0 (2.31-158)
-40
View File
@@ -1,40 +0,0 @@
assert: Buffer overflow when printing assertion failure message
When the assert() function fails, it does not allocate enough space for the
assertion failure message string and size information, which may lead to a
buffer overflow if the message string size aligns to page size.
This bug can be triggered when an assertion in a program fails. The assertion
failure message is allocated to allow developers to see this failure in core
dumps and it typically includes, in addition to the invariant assertion
string and function name, the name of the program. If the name of the failing
program is user controlled, for example on a local system, this could allow an
attacker to control the assertion failure to trigger this buffer overflow.
The only viable vector for exploitation of this bug is local, if a setuid
program exists that has an existing bug that results in an assertion failure.
No such program has been discovered at the time of publishing this advisory,
but the presence of custom setuid programs, although strongly discouraged as a
security practice, cannot be discounted.
CVE-Id: CVE-2025-0395
Public-Date: 2025-01-22
Vulnerable-Commit: f8a3b5bf8fa1d0c43d2458e03cc109a04fdef194 (2.13-175)
Fix-Commit: 68ee0f704cb81e9ad0a78c644a83e1e9cd2ee578 (2.41)
Fix-Commit: cdb9ba84191ce72e86346fb8b1d906e7cd930ea2 (2.42)
Fix-Commit: 69fda28279b497bd405fdd442a6d8e4d3d5f681b (2.41-7)
Fix-Commit: 7d4b6bcae91f29d7b4daf15bab06b66cf1d2217c (2.40-66)
Fix-Commit: d6c156c326999f144cb5b73d29982108d549ad8a (2.40-71)
Fix-Commit: 808a84a8b81468b517a4d721fdc62069cb8c211f (2.39-146)
Fix-Commit: f6d48470aef9264d2d56f4c4533eb76db7f9c2e4 (2.39-150)
Fix-Commit: c32fd59314c343db88c3ea4a203870481d33c3d2 (2.38-122)
Fix-Commit: f984e2d7e8299726891a1a497a3c36cd5542a0bf (2.38-124)
Fix-Commit: a3d7865b098a3a67c44f7812208d9ce4718873ba (2.37-143)
Fix-Commit: b989519fe1683c204ac24ec92830e3fe3bfaccad (2.37-146)
Fix-Commit: 7971add7ee4171fdd8dfd17e7c04c4ed77a18845 (2.36-216)
Fix-Commit: 0487893d5c5bc6710d83d7c3152d888a0339559e (2.36-219)
Fix-Commit: 8b5d4be762419c4f6176261c6fea40ac559b88dc (2.35-370)
Fix-Commit: 8b3d09dc0d350191985f9d291cc30ce96f034b49 (2.35-373)
Fix-Commit: df4e1f4a5096b385c9bcc94424cf2eaa227b3761 (2.34-500)
Fix-Commit: 31eb872cb21449832ab47ad5db83281d240e1d03 (2.34-503)
Reported-By: Qualys Security Advisory
-23
View File
@@ -1,23 +0,0 @@
elf: static setuid binary dlopen may incorrectly search LD_LIBRARY_PATH
A statically linked setuid binary that calls dlopen (including internal
dlopen calls after setlocale or calls to NSS functions such as getaddrinfo)
may incorrectly search LD_LIBRARY_PATH to determine which library to load,
leading to the execution of library code that is attacker controlled.
The only viable vector for exploitation of this bug is local, if a static
setuid program exists, and that program calls dlopen, then it may search
LD_LIBRARY_PATH to locate the SONAME to load. No such program has been
discovered at the time of publishing this advisory, but the presence of
custom setuid programs, although strongly discouraged as a security
practice, cannot be discounted.
CVE-Id: CVE-2025-4802
Public-Date: 2025-05-16
Vulnerable-Commit: 10e93d968716ab82931d593bada121c17c0a4b93 (2.27)
Fix-Commit: 5451fa962cd0a90a0e2ec1d8910a559ace02bba0 (2.39)
Fix-Commit: 3be3728df2f1912c80abd3288bc6e3a25ad679e4 (2.38-132)
Fix-Commit: 7403ede2d7752e59e0c47d5d33d73c2bf850e7be (2.37-154)
Fix-Commit: 2ef7850279b2931caf6d6d6743ebaa91839e1cf7 (2.36-227)
Fix-Commit: 621c65ccf12ddd415ceeb2234423bd1acd0fabb3 (2.35-387)
Fix-Commit: 35018c0fd20eac9ceaf60060fed2745b3177359d (2.34-517)
-30
View File
@@ -1,30 +0,0 @@
power10: strcmp fails to save and restore nonvolatile vector registers
The Power 10 implementation of strcmp in
sysdeps/powerpc/powerpc64/le/power10/strcmp.S failed to save/restore
nonvolatile vector registers in the 32-byte aligned loop path. This
results in callers reading content from those registers in a different
context, potentially altering program logic.
There could be a program context where a user controlled string could
leak through strcmp into program code, thus altering its logic. There
is also a potential for sensitive strings passed into strcmp leaking
through the clobbered registers into parts of the calling program that
should otherwise not have had access to those strings.
The impact of this flaw is limited to applications running on Power 10
hardware that use the nonvolatile vector registers, i.e. v20 to v31
assuming that they have been treated in accordance with the OpenPower
psABI. It is possible to work around the issue for those specific
applications by setting the glibc.cpu.hwcaps tunable to "-arch_3_1" like
so:
export GLIBC_TUNABLES=glibc.cpu.hwcaps=-arch_3_1
CVE-Id: CVE-2025-5702
Public-Date: 2025-06-04
Vulnerable-Commit: 3367d8e180848030d1646f088759f02b8dfe0d6f (2.39)
Fix-Commit: 15808c77b35319e67ee0dc8f984a9a1a434701bc (2.42)
Fix-Commit: 0c76c951620f9e12df2a89b2c684878b55bb6795 (2.41-60)
Fix-Commit: 7e12550b8e3a11764a4a9090ce6bd3fc23fc8a8e (2.40-139)
Fix-Commit: 06a70769fd0b2e1f2a3085ad50ab620282bd77b3 (2.39-209)
-29
View File
@@ -1,29 +0,0 @@
power10: strncmp fails to save and restore nonvolatile vector registers
The Power 10 implementation of strncmp in
sysdeps/powerpc/powerpc64/le/power10/strncmp.S failed to save/restore
nonvolatile vector registers in the 32-byte aligned loop path. This
results in callers reading content from those registers in a different
context, potentially altering program logic.
There could be a program context where a user controlled string could
leak through strncmp into program code, thus altering its logic. There
is also a potential for sensitive strings passed into strncmp leaking
through the clobbered registers into parts of the calling program that
should otherwise not have had access to those strings.
The impact of this flaw is limited to applications running on Power 10
hardware that use the nonvolatile vector registers, i.e. v20 to v31
assuming that they have been treated in accordance with the OpenPower
psABI. It is possible to work around the issue for those specific
applications by setting the glibc.cpu.hwcaps tunable to "-arch_3_1" like
so:
export GLIBC_TUNABLES=glibc.cpu.hwcaps=-arch_3_1
CVE-Id: CVE-2025-5745
Public-Date: 2025-06-05
Vulnerable-Commit: 23f0d81608d0ca6379894ef81670cf30af7fd081 (2.40)
Fix-Commit: 63c60101ce7c5eac42be90f698ba02099b41b965 (2.42)
Fix-Commit: 84bdbf8a6f2fdafd3661489dbb7f79835a52da82 (2.41-57)
Fix-Commit: 42a5a940c974d02540c8da26d6374c744d148cb9 (2.40-136)
-14
View File
@@ -1,14 +0,0 @@
posix: Fix double-free after allocation failure in regcomp
The regcomp function in the GNU C library version from 2.4 to 2.41 is
subject to a double free if some previous allocation fails. It can be
accomplished either by a malloc failure or by using an interposed
malloc that injects random malloc failures. The double free can allow
buffer manipulation depending of how the regex is constructed.
This issue affects all architectures and ABIs supported by the GNU C
library.
CVE-Id: CVE-2025-8058
Public-Date: 2025-07-22
Vulnerable-Commit: 963d8d782fc98fb6dc3a66f0068795f9920c269d (2.3.3-1596)
Fix-Commit: 7ea06e994093fa0bcca0d0ee2c1db271d8d7885d (2.42)
-41
View File
@@ -1,41 +0,0 @@
Integer overflow in memalign leads to heap corruption
Passing too large an alignment to the memalign suite of functions
(memalign, posix_memalign, aligned_alloc) in the GNU C Library version
2.30 to 2.42 may result in an integer overflow, which could consequently
result in a heap corruption.
Note that the attacker must have control over both, the size as well as
the alignment arguments of the memalign function to be able to exploit
this. The size parameter must be close enough to PTRDIFF_MAX so as to
overflow size_t along with the large alignment argument. This limits
the malicious inputs for the alignment for memalign to the range [1<<62
+ 1, 1<<63] and exactly 1<<63 for posix_memalign and aligned_alloc.
Typically the alignment argument passed to such functions is a known
constrained quantity (e.g. page size, block size, struct sizes) and is
not attacker controlled, because of which this may not be easily
exploitable in practice. An application bug could potentially result in
the input alignment being too large, e.g. due to a different buffer
overflow or integer overflow in the application or its dependent
libraries, but that is again an uncommon usage pattern given typical
sources of alignments.
CVE-Id: CVE-2026-0861
Public-Date: 2026-01-14
Vulnerable-Commit: 9bf8e29ca136094f73f69f725f15c51facc97206 (2.30)
Fix-Commit: c9188d333717d3ceb7e3020011651f424f749f93 (2.43)
Fix-Commit: 7f19ef14fbce095d4c77395e258320cad2ea2b28 (2.30-153)
Fix-Commit: f18446d7b4a423090ee5e328c36b3c2a0f26041c (2.31-166)
Fix-Commit: 8aef9e7a7af9565c0324b4ecb38b30dfa3782fd8 (2.32-151)
Fix-Commit: 011293b4fd748cdd6f95874ba2b6aba9a3df8bff (2.33-275)
Fix-Commit: 2c77e52108a58956c9f674b36e1f59a4e3fdcf4d (2.34-525)
Fix-Commit: 499d1ccafccfe64df1b88deea2fa84d8180e8e8f (2.35-399)
Fix-Commit: fb6b8822175769b5794fb6ea04f2895483a29b61 (2.36-244)
Fix-Commit: 7b913d41a07836def826f2164c52541a9835f324 (2.37-172)
Fix-Commit: 744b63026a29f7eedbbc8e3a01a7f48a6eb0a085 (2.38-212)
Fix-Commit: fb22fd3f5b415dd4cd6f7b5741c2f0412374e242 (2.39-286)
Fix-Commit: bfc4dd9e526eacf3017dd8864ba0848e9d045dd4 (2.40-216)
Fix-Commit: 1e2c1ea4307197ccece0cda574bcfebf9080894c (2.41-121)
Fix-Commit: b0ec8fb689df862171f0f78994a3bdeb51313545 (2.42-49)
Reported-by: Igor Morgenstern, Aisle Research
-36
View File
@@ -1,36 +0,0 @@
getnetbyaddr and getnetbyaddr_r leak stack contents to DNS resovler
Calling getnetbyaddr or getnetbyaddr_r with a configured nsswitch.conf
that specifies the library's DNS backend for networks and queries for a
zero-valued network in the GNU C Library version 2.0 to version 2.42
can leak stack contents to the configured DNS resolver.
A defect in the _nss_dns_getnetbyaddr_r function which implements
getnetbyaddr and getnetbyaddr_r in the dns-based network database can
pass stack contents unmodified to the configured DNS resolver as part of
the network DNS query when the network queried is the default network
i.e. net == 0x0. This stack contents leaking in the query is considered
a loss of confidentiality for the host making the query. Typically it
is rare to call these APIs with a net value of zero, and if an attacker
can control the net value it can only leak adjacent stack, and so loss
of confidentiality is spatially limited. The leak might be used to
accelerate an ASLR bypass by knowing pointer values, but also requires
network adjacent access to snoop between the application and the
DNS server; making the attack complexity higher.
CVE-Id: CVE-2026-0915
Public-Date: 2026-01-15
Vulnerable-Commit: 5f0e6fc702296840d2daa39f83f6cb1e40073d58 (1.92-1)
Fix-Commit: e56ff82d5034ec66c6a78f517af6faa427f65b0b (2.43)
Fix-Commit: 453e6b8dbab935257eb0802b0c97bca6b67ba30e (2.42-50)
Fix-Commit: 15c9839a0b853f552b4ed9047841b6223f3c104d (2.41-122)
Fix-Commit: 329c775788b2c9ff3da774ccf59fba7b6b8ff08e (2.40-217)
Fix-Commit: 831f63b94ceb92fb14c0d1a7ddad35a0d1404c71 (2.39-287)
Fix-Commit: 49125ffc8e1674dc2a100dfdc5b78796f22e16f2 (2.38-213)
Fix-Commit: ddcaed5dfb05b2c1a6ea842fd6b643501365450a (2.37-173)
Fix-Commit: a6bf47887f24b2b394acb301a3189fda04bd4d4d (2.36-245)
Fix-Commit: 66f0cb057c9b4fb1249a5fec6ef4a63511a37899 (2.35-400)
Fix-Commit: 96863dee262225cfb79f9fe45e06fd188319c7b8 (2.34-526)
Fix-Commit: d210011f1536c8322157cbb4fe4229b35c834c08 (2.33-276)
Fix-Commit: 1bc1832cfc74c2a601220969f36e789a5e9f0ebe (2.32-152)
Reported-by: Igor Morgenstern, Aisle Research
-36
View File
@@ -1,36 +0,0 @@
wordexp with WRDE_REUSE and WRDE_APPEND may return uninitialized memory
Calling wordexp with WRDE_REUSE in conjunction with WRDE_APPEND in the
GNU C Library version 2.0 to version 2.42 may cause the interface to
return uninitialized memory in the we_wordv member, which on subsequent
calls to wordfree may abort the process.
The implementation of WRDE_REUSE in conjunction with WRDE_APPEND fails
to clear the we_wordc member of the structure, and as such, when new
words are added internally, a leading we_wordc count number of entries
are skipped since they are assumed initialized. These skipped entries
are not initialized, but are the contents of a realloc-expanded array of
pointers. If the caller inspects the we_wordv array, it will
dereference invalid pointers and crash. If the caller calls wordfree,
the malloc implementation may detect the invalid pointers and abort the
process. Calls to wordexp using WRDE_REUSE and WRDE_APPEND have never
worked correctly and thus the existence of applications that make use of
this feature is unlikely.
CVE-Id: CVE-2025-15281
Public-Date: 2026-01-20
Vulnerable-Commit: 8f2ece695d8822e9ecc63ecd157e90bf17a6fe65 (1.93-260)
Fix-Commit: 80cc58ea2de214f85b0a1d902a3b668ad2ecb302 (2.43)
Fix-Commit: cbf39c26b25801e9bc88499b4fd361ac172d4125 (2.42-51)
Fix-Commit: fb4db64a04ad6c96cd1fbb7e02eb59323b1f2ac2 (2.41-123)
Fix-Commit: 9fe8576664d43b87ca19401fb6a975e217e47623 (2.40-218)
Fix-Commit: ce65d944e38a20cb70af2a48a4b8aa5d8fabe1cc (2.39-288)
Fix-Commit: d5409a1be010699794264162c551ba60f05ee6c3 (2.38-214)
Fix-Commit: ff2b172803f6bbd897755d2ce83ec4323a1a15b3 (2.37-174)
Fix-Commit: e97cfe2293ed097eb3d0b4c18274d22855e65130 (2.36-246)
Fix-Commit: bb59339d02faebac534a87eea50c83c948f35b77 (2.35-401)
Fix-Commit: 2b656ff94d72f93c84d8da2e7c76456c1994f02e (2.34-527)
Fix-Commit: 1d8ed2067a8a5d162a07670d0d063429679f17a0 (2.33-277)
Fix-Commit: 3a56c4ee4ea49b8f2391a2d8d6220013c4160a79 (2.32-153)
Fix-Commit: 28eb5caf895ced5d895cb02757e109004a2d33e5 (2.31-167)
Reported-by: Vitaly Simonovich
-30
View File
@@ -1,30 +0,0 @@
nscd client crash on x86_64 under high nscd load
Calling NSS-backed functions that support caching via nscd may call the
nscd client side code and in the GNU C Library version 2.36 under high
load on x86_64 systems, the client may call memcmp on inputs that are
concurrently modified by other processes or threads and crash.
The nscd client in the GNU C Library uses the memcmp function with
inputs that may be concurrently modified by another thread, potentially
resulting in spurious cache misses, which in itself is not a security
issue. However in the GNU C Library version 2.36 an optimized
implementation of memcmp was introduced for x86_64 which could crash
when invoked with such undefined behaviour, turning this into a
potential crash of the nscd client and the application that uses it.
This implementation was backported to the 2.35 branch, making the nscd
client in that branch vulnerable as well. Subsequently, the fix for
this issue was backported to all vulnerable branches in the GNU C
Library repository.
It is advised that distributions that may have cherry-picked the memcpy
SSE2 optimization in their copy of the GNU C Library, also apply the fix
to avoid the potential crash in the nscd client.
CVE-Id: CVE-2026-3904
Public-Date: 2026-03-11
Vulnerable-Commit: 8804157ad9da39631703b92315460808eac86b0c (2.36)
Vulnerable-Commit: 5a8df6485c584e2b0e957ec6b9070437a724911a (2.35-89)
Fix-Commit: b712be52645282c706a5faa038242504feb06db5 (2.37)
Fix-Commit: 93967a2a7bbdcedb73e0b246713580c7c84d001e (2.36-84)
Fix-Commit: 6bcd5d8e3668d52388a6e0580611749f93e6871f (2.35-230)
-37
View File
@@ -1,37 +0,0 @@
gethostbyaddr and gethostbyaddr_r may incorrectly handle DNS response
Calling gethostbyaddr or gethostbyaddr_r with a configured nsswitch.conf
that specifies the library's DNS backend in the GNU C Library version
2.34 to version 2.43 could, with a crafted response from the configured
DNS server, result in a violation of the DNS specification that causes
the application to treat a non-answer section of the DNS response as a
valid answer.
A defect in the getanswer_ptr function, which implements the iteration
and extraction of the answer from the DNS response, can cause it to
incorrectly transition from the answer section to the next section while
still treating it as an answer to the question. This can happen when
the answer contains only skipped records, and the subsequent section
contains a semantically invalid T_PTR record. This is considered a
security issue because it is a violation of the DNS specification that
leads to incorrect behaviour that could result in the wrong hostname
being returned to the caller. At the time of publication, no known
affected DNS server returns results that would be incorrectly
interpreted by the library. An attacker would either need to be network
adjacent or have compromised the DNS server to use this defect to hide
returned reverse DNS results from intrusion detection systems. Even
then, the inbound connection from the attacker, or the outbound
connection from the application, would be visible to the intrusion
detection system. At best, the defect can be used to obfuscate and
delay analysis of the evolving threat.
CVE-Id: CVE-2026-4437
Public-Date: 2026-03-20
Vulnerable-Commit: 32e5db37684ffcbc6ae34fcc6cdcf28670506baa (2.34-323)
Vulnerable-Commit: def97e7f71a07517810f7263213d607e08ad21f1 (2.35-188)
Vulnerable-Commit: 77f523c473878ec0051582ef15161c6982879095 (2.36-30)
Vulnerable-Commit: e32547d661a43da63368e488b6cfa9c53b4dcf92 (2.37)
Fix-Commit: 5c6fca0c62ce5bd6e68e259f138097756cbafd4d (2.43-16)
Fix-Commit: 9f5f18aab40ec6b61fa49a007615e6077e9a979b (2.44)
Reported-by: Antonio Maini (0rbitingZer0) - 0rbitingZer0@proton.me
Reported-by: Kevin Farrell
-27
View File
@@ -1,27 +0,0 @@
gethostbyaddr and gethostbyaddr_r return invalid DNS hostnames
Calling gethostbyaddr or gethostbyaddr_r with a configured nsswitch.conf
that specifies the library's DNS backend in the GNU C library version
2.34 to version 2.43 could result in an invalid DNS hostname being
returned to the caller in violation of the DNS specification.
A defect in the getanswer_ptr function, which implements the iteration
and extraction of the answer from a DNS response, can cause it to accept
an invalid DNS hostname that can contain shell metacharacters. An
application that uses the returned hostname in a shell, without guarding
for shell expansion, may be subject to shell injection attacks. At the
time of publication, no known affected DNS server returns results with
shell metacharacters in the results. An attacker would either need to
be network adjacent or have compromised the DNS server to use this
defect for shell injection. No known vulnerable application has been
identified.
CVE-Id: CVE-2026-4438
Public-Date: 2026-03-20
Vulnerable-Commit: 32e5db37684ffcbc6ae34fcc6cdcf28670506baa (2.34-323)
Vulnerable-Commit: def97e7f71a07517810f7263213d607e08ad21f1 (2.35-188)
Vulnerable-Commit: 77f523c473878ec0051582ef15161c6982879095 (2.36-30)
Vulnerable-Commit: e32547d661a43da63368e488b6cfa9c53b4dcf92 (2.37)
Fix-Commit: dd9945c0ba40d2dbc9eb7c99291ba6b69bd66718 (2.43-17)
Fix-Commit: e10977481f4db4b2a3ce34fa4c3a1e26651ae312 (2.44)
Reported-by: Antonio Maini (0rbitingZer0) - 0rbitingZer0@proton.me
-15
View File
@@ -1,15 +0,0 @@
iconv crash due to assertion failure with untrusted input
The iconv() function in the GNU C Library versions 2.43 and earlier may
crash due to an assertion failure when converting inputs from the
IBM1390 or IBM1399 character sets, which may be used to remotely crash
an application.
This vulnerability can be trivially mitigated by removing the IBM1390
and IBM1399 character sets from systems that do not need them.
CVE-Id: CVE-2026-4046
Public-Date: 2026-03-12
Vulnerable-Commit: 0ecb606cb6cf65de1d9fc8a919bceb4be476c602 (2.3.3-1501)
Fix-Commit: d6f08d1cf027f4eb2ba289a6cc66853722d4badc (2.44)
Reported-by: Rocket Ma
-22
View File
@@ -1,22 +0,0 @@
REJECTED: Static buffer overflow in deprecated nis_local_principal
REJECTED: CVE-2026-5358 is rejected for two reasons. Firstly it has been
discovered that no NIS+ client or server was ever released for any
Linux-based OS distributions and as such this makes the API provisional
and unused. Secondly it has been discovered that the NIS+ cold start
cache (/var/nis/NIS_COLD_START) cannot be bypassed and as such the API
can only be called with a trusted server from the pre-populated cache.
The use of a trusted server means no trust boundary is crossed and this
is therefore considered a normal bug.
NIS+ support in the GNU C Library was never officially supported even
though an incomplete implementation of the APIs was made pulibc. To the
best knowledge of the glibc security team no open-source NIS+ server
implementations were ever released for use with this API. Applications
should not use any of the NIS+ APIs and should move to modern identity
and access management services.
CVE-Id: CVE-2026-5358
Public-Date: 2026-04-10
Rejected-Date: 2026-04-33
Reported-by: Rahul Hoysala
-23
View File
@@ -1,23 +0,0 @@
scanf %mc off-by-one heap buffer overflow
Calling the scanf family of functions with a %mc (malloc'd character
match) in the GNU C Library version 2.7 to version 2.43 with a format
width specifier with an explicit width greater than 1024 could result in
a one byte heap buffer overflow.
The bug is in the buffer growth formula in __vfscanf_internal, which
under-allocates by one byte during realloc expansion, allowing a
controlled single-byte overwrite past the end of the heap buffer.
The impact is limited by the fact that to execute the overwrite you need
both user controlled input data and a specific choice of maximum width
that yields a smaller than needed allocation. The latter point has to
take into account malloc's particular chunk size rounding process. The
"%[width]mc" format specifier does not appear to have notable use in
major Linux-based OS distributions, due to which the real world impact
may be limited to bespoke use cases.
CVE-Id: CVE-2026-5450
Public-Date: 2026-03-19
Vulnerable-Commit: 874aa52349cc111d1f6ea5dff24bb14c306714e0 (2.7)
Reported-by: Rocket Ma
-24
View File
@@ -1,24 +0,0 @@
Potential buffer under-read in ungetwc
Calling the ungetwc function on a FILE stream with wide characters
encoded in a character set that has overlaps between its single byte and
multi-byte character encodings, in the GNU C Library version 2.43 or
earlier, may result in an attempt to read bytes before an allocated
buffer, potentially resulting in unintentional disclosure of neighboring
data in the heap, or a program crash.
A bug in the wide character pushback implementation
(_IO_wdefault_pbackfail in libio/wgenops.c) causes ungetwc() to operate
on the regular character buffer (fp->_IO_read_ptr) instead of the actual
wide-stream read pointer (fp->_wide_data->_IO_read_ptr). The program
crash may happen in cases where fp->_IO_read_ptr is not initialized and
hence points to NULL. The buffer under-read requires a special situation
where the input character encoding is such that there are overlaps
between single byte representations and multibyte representations in
that encoding, resulting in spurious matches. The spurious match case
is not possible in the standard Unicode character sets.
CVE-Id: CVE-2026-5928
Public-Date: 2026-03-17
Reported-by: Rocket Ma
Vulnerable-Commit: d64b6ad07585b8a37e5fecc9a47fcee766d52ede (2.1.1-89)
-24
View File
@@ -1,24 +0,0 @@
Potential buffer overflow in ns_sprintrrf TSIG handling path
The deprecated functions ns_printrrf, ns_printrr and fp_nquery in the
GNU C Library version 2.2 and newer fail to enforce the caller-supplied
buffer length, and can result in an out-of-bounds write when printing
TSIG records.
A defect in the TSIG case handling within ns_sprintrrf performs a
formatted write using sprintf without checking the remaining buffer
length, and may write up to 6 bytes past the end of the buffer. If the
library is compiled with assertions, and the out-of-bounds write doesn't
terminate the process, then a subsequent check for "len <= *buflen" will
trigger an assertion failure.
These functions are for application debugging only and hence not in the
path of code executed by the DNS resolver. Further, they have been
deprecated since version 2.34 (2021-08-02) and should not be used by any
new applications. Applications should consider porting away from these
interfaces since they may be removed in future versions.
CVE-Id: CVE-2026-5435
Public-Date: 2026-04-02
Vulnerable-Commit: b43b13ac2544b11f35be301d1589b51a8473e32b (2.2)
Reported-by: shinobu
-18
View File
@@ -1,18 +0,0 @@
Buffer overread in ns_printrrf with corrupted RDATA field
The deprecated functions ns_printrrf, ns_printrr and fp_nquery in the
GNU C Library version 2.0.1 to version 2.43 fail to validate the RDATA
content against the RDATA length in a DNS response when processing A6,
CERT, LOC, TKEY or TSIG records, which may allow an attacker to craft a
DNS response, causing a target application to crash or read
uninitialized memory.
These functions are for application debugging only and hence not in the
path of code executed by the DNS resolver. Further, they have been
deprecated since version 2.34 and should not be used by any new
applications. Applications should consider porting away from these
interfaces since they may be removed in future versions.
CVE-Id: CVE-2026-6238
Public-Date: 2026-04-11
Vulnerable-Commit: ee188d555b8c32ad9704a7440cab400af967292f (1.90)
-20
View File
@@ -1,20 +0,0 @@
Potential stack-based buffer clash during tilde expansion in wordexp
Calling wordexp with a tilde (~) followed by an overly long username
in the GNU C Library version 2.2.3 to 2.43 may lead to a stack buffer
clash.
When expanding paths that begin with a tilde (~) followed by a username, the
internal parse_tilde function extracts the username to determine the user's
home directory. The implementation allocates memory for this username directly
on the stack using the strndupa macro. Because the size of this allocation
was determined by the length of the user-supplied input without any bounds
checks, passing an excessively long username e.g. thousands of characters,
forces the thread to exhaust its stack space. Thus if an application passes
untrusted, attacker-controlled input to the wordexp function, an attacker
can trigger a stack clash.
CVE-Id: CVE-2026-6791
Public-Date: 2026-06-22
Vulnerable-Commit: 344af000e1d6e9c7882b9bc48e71cb3f1b5fc03c (2.2.3-114)
Reported-by: storm
-92
View File
@@ -1,92 +0,0 @@
GNU C Library Security Advisory Format
======================================
Security advisories in this directory follow a simple git commit log
format, with a heading and free-format description augmented with tags
to allow parsing key information. References to code changes are
specific to the glibc repository and follow a specific format:
Tag-name: <commit-ref> (release-version)
The <commit-ref> indicates a specific commit in the repository. The
release-version indicates the publicly consumable release in which this
commit is known to exist. The release-version is derived from the
git-describe format, (i.e. stripped out from glibc-2.34.NNN-gxxxx) and
is of the form 2.34-NNN. If the -NNN suffix is absent, it means that
the change is in that release tarball, otherwise the change is on the
release/2.YY/master branch and not in any released tarball.
The following tags are currently being used:
CVE-Id:
This is the CVE-Id assigned under the CVE Program
(https://www.cve.org/).
Public-Date:
The date this issue became publicly known.
Rejected-Date:
The most recent date the assigned advisory was rejected. If the advisory
is ever published again the Rejected-Date tag should be removed.
Vulnerable-Commit:
The commit that introduced this vulnerability. There could be multiple
entries, one for each release branch in the glibc repository; the
release-version portion of this tag should tell you which branch this is
on.
Fix-Commit:
The commit that fixed this vulnerability. There could be multiple
entries for each release branch in the glibc repository, indicating that
all of those commits contributed to fixing that issue in each of those
branches.
Reported-By:
The entity that reported this issue. There could be multiple entries, one for
each reporter.
Adding an Advisory
------------------
An advisory for a CVE needs to be added on the master branch in two steps:
1. Add the text of the advisory without any Fix-Commit tags along with
the fix for the CVE. Add the Vulnerable-Commit tag, if applicable.
The advisories directory does not exist in release branches, so keep
the advisory text commit distinct from the code changes, to ease
backports. Ask for the GLIBC-SA advisory number from the security
team.
2. Finish all backports on release branches and then back on the msater
branch, add all commit refs to the advisory using the Fix-Commit
tags. Don't bother adding the release-version subscript since the
next step will overwrite it.
3. Run the process-advisories.sh script in the scripts directory on the
advisory:
scripts/process-advisories.sh update GLIBC-SA-YYYY-NNNN
(replace YYYY-NNNN with the actual advisory number).
4. Verify the updated advisory and push the result.
Rejecting an Advisory
---------------------
Rejecting an advisory on the master branch can be done in one step:
1. Mark the advisory as rejected. Add the text "REJECTED: " as a prefix
to any short-form description. Add a new paragraph that starts with
"REJECTED: " and explains the reason for the rejection including
justification for why it no longer has security impact. Lastly add
a Rejected-Date tag to the advisory.
Getting a NEWS snippet from advisories
--------------------------------------
Run:
scripts/process-advisories.sh news
and copy the content into the NEWS file.
-4
View File
@@ -36,7 +36,6 @@ routines := \
tests := \
test-assert \
test-assert-2 \
test-assert-c++-variadic \
test-assert-c99 \
test-assert-gnu99 \
test-assert-perr \
@@ -50,15 +49,12 @@ CFLAGS-test-assert-c99.c += -std=c99
CFLAGS-test-assert-gnu99.c += -std=gnu99
ifeq ($(have-cxx-thread_local),yes)
CFLAGS-test-assert-c++-variadic.o = $(test-config-cxxflags-stdcxx26)
LDLIBS-test-assert-c++-variadic = -lstdc++
CFLAGS-tst-assert-c++.o = -std=c++11
LDLIBS-tst-assert-c++ = -lstdc++
CFLAGS-tst-assert-g++.o = -std=gnu++11
LDLIBS-tst-assert-g++ = -lstdc++
else
tests-unsupported += \
test-assert-c++-variadic \
tst-assert-c++ \
tst-assert-g++ \
# tests-unsupported
+9 -19
View File
@@ -52,12 +52,13 @@
comma in the initializer list, can be passed to assert. This
depends on support for variadic macros (added in C99 and GCC 2.95),
and on support for _Bool (added in C99 and GCC 3.0) in order to
validate that only a single expression is passed as an argument. */
#if ((__GLIBC_USE (ISOC23) \
&& (defined __GNUC__ \
? __GNUC_PREREQ (3, 0) \
: defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) \
|| (defined __cplusplus && __cplusplus > 202302L))
validate that only a single expression is passed as an argument,
and is currently implemented only for C. */
#if (__GLIBC_USE (ISOC23) \
&& (defined __GNUC__ \
? __GNUC_PREREQ (3, 0) \
: defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) \
&& !defined __cplusplus)
# define __ASSERT_VARIADIC 1
#else
# define __ASSERT_VARIADIC 0
@@ -107,7 +108,7 @@ extern void __assert (const char *__assertion, const char *__file, int __line)
__THROW __attribute__ ((__noreturn__)) __COLD;
# if __ASSERT_VARIADIC && !defined __cplusplus
# if __ASSERT_VARIADIC
/* This function is not defined and is not called outside of an
unevaluated sizeof, but serves to verify that the argument to
assert is a single expression. */
@@ -130,22 +131,11 @@ __END_DECLS
# define __ASSERT_FILE __FILE__
# define __ASSERT_LINE __LINE__
# endif
# if __ASSERT_VARIADIC
/* The first test of __VA_ARGS__ evaluates it without converting scoped
enumeration values to bool, and the second test checks that it is a
single expression without evaluating it. */
# define assert(...) \
((__VA_ARGS__) \
? void (1 ? 1 : bool (__VA_ARGS__)) \
: __assert_fail (#__VA_ARGS__, __ASSERT_FILE, __ASSERT_LINE, \
__ASSERT_FUNCTION))
# else
# define assert(expr) \
# define assert(expr) \
(static_cast <bool> (expr) \
? void (0) \
: __assert_fail (#expr, __ASSERT_FILE, __ASSERT_LINE, \
__ASSERT_FUNCTION))
# endif
# elif !defined __GNUC__ || defined __STRICT_ANSI__
# if __ASSERT_VARIADIC
# define assert(...) \
-120
View File
@@ -1,120 +0,0 @@
/* Test assert as a variadic macro for C++ code snippets.
Copyright The GNU Toolchain Authors.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
/* This test requires C++26, and is compiled with -std=c++26
if GCC version supports that, and no additional options
otherwise. */
#if defined __cplusplus && __cplusplus > 202302L
#undef NDEBUG
#include <assert.h>
template <typename T1, typename T2>
bool
foo ()
{ return true; }
struct C
{
C (int p, int r) : x (p + r) {}
int x;
};
int
func ()
{
return 1;
}
static void
test_enabled ()
{
{
assert (foo <int, float> ());
}
{
assert (C {1, 2}.x > 0);
}
{
int x = 10, y = 20;
assert ([x, y] { return x < y; } ());
}
{
/* Ill-formed, not an assigment expression. */
// assert (func (), func ());
assert ((func (), func ()));
}
}
/* GCC PR118629 fixed the handling of assert inside requires clause. */
#if __GNUC_PREREQ (14, 3) || defined __clang__
template <typename Ts>
constexpr bool
assert_works ()
{
return requires (Ts ts) {
assert (ts);
};
}
enum OE { oe };
enum TE : int { te };
enum class SE : int { se };
static_assert ( assert_works <OE> ());
static_assert ( assert_works <TE> ());
static_assert (!assert_works <SE> ());
#endif /* __GNUC_PREREQ (14, 3) || defined __clang__ */
#define NDEBUG
#include <assert.h>
static void
test_disabled ()
{
/* Assert is variadic, but ignores arguments */
assert(1, 2);
assert(+, 1, -, 2, *, 30);
}
static int
do_test ()
{
test_enabled ();
test_disabled ();
return 0;
}
#else
#include <support/test-driver.h>
static int
do_test ()
{
return EXIT_UNSUPPORTED;
}
#endif
#include <support/test-driver.c>
-36
View File
@@ -22,11 +22,6 @@
#include <assert.h>
#if __GNUC_PREREQ (5, 0)
template <typename> struct is_void { static const bool value = false; };
template <> struct is_void <void> { static const bool value = true; };
static_assert(is_void <decltype (assert (""))>::value, "type is void");
/* The C++ standard requires that if the assert argument is a constant
subexpression, then the assert itself is one, too. */
constexpr int
@@ -68,15 +63,6 @@ struct bool_and_int
template <class T> bool operator!= (T) const; /* No definition. */
};
/* Scoped enumerations are not contextually convertible to bool. */
enum class E { e1 = 1 };
int&
preincrement (int& i)
{
return ++i;
}
static int
do_test ()
{
@@ -90,30 +76,8 @@ do_test ()
assert (value);
}
{
assert ([] { return true; } ());
}
{
assert (bool (E::e1));
/* Ill-formed, E::e1 is not contextually convertible to bool. */
// assert (E::e1);
}
{
int i = 0;
assert (preincrement (i) > 0);
if (i != 1)
return 1;
}
return 0;
}
#define NDEBUG
#include <assert.h>
static_assert(is_void <decltype (assert (""))>::value, "type is void with NDEBUG");
#else
#include <support/test-driver.h>
+1 -1
View File
@@ -447,7 +447,7 @@ bench-deps := bench-skeleton.c bench-timing.h Makefile
run-bench = $(test-wrapper-env) \
$(run-program-env) \
$($*-ENV) $(test-tunables) $(test-via-rtld-prefix) $${run}
$($*-ENV) $(test-via-rtld-prefix) $${run}
timing-type := $(objpfx)bench-timing-type
extra-objs += bench-timing-type.o
+400 -1002
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1,4 +1,4 @@
#!/usr/bin/python3
#!/usr/bin/python
# Copyright (C) 2015-2026 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
+1 -1
View File
@@ -1,4 +1,4 @@
#!/usr/bin/python3
#!/usr/bin/python
# Copyright (C) 2017-2026 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
+1 -1
View File
@@ -1,4 +1,4 @@
#!/usr/bin/python3
#!/usr/bin/python
# Copyright (C) 2015-2026 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
+300 -1001
View File
File diff suppressed because it is too large Load Diff
+200 -1002
View File
File diff suppressed because it is too large Load Diff
-11
View File
@@ -99,17 +99,6 @@
#define __DECL_SIMD_powf64x
#define __DECL_SIMD_powf128x
#define __DECL_SIMD_powr
#define __DECL_SIMD_powrf
#define __DECL_SIMD_powrl
#define __DECL_SIMD_powrf16
#define __DECL_SIMD_powrf32
#define __DECL_SIMD_powrf64
#define __DECL_SIMD_powrf128
#define __DECL_SIMD_powrf32x
#define __DECL_SIMD_powrf64x
#define __DECL_SIMD_powrf128x
#define __DECL_SIMD_acos
#define __DECL_SIMD_acosf
#define __DECL_SIMD_acosl
+8 -11
View File
@@ -32,6 +32,9 @@
/* Define if _Unwind_Find_FDE should be exported from glibc. */
#undef EXPORT_UNWIND_FIND_FDE
/* Define if static NSS modules are wanted. */
#undef DO_STATIC_NSS
/* Assume that the compiler supports __builtin_expect.
This macro is necessary for proper compilation of code
shared between GNU libc and GNU gettext projects. */
@@ -167,9 +170,6 @@
/* Mach specific: define if the `vm_set_size_limit' RPC is available. */
#undef HAVE_MACH_VM_SET_SIZE_LIMIT
/* Mach specific: define if the `task_max_priority' RPC is available. */
#undef HAVE_MACH_TASK_MAX_PRIORITY
/* Mach/i386 specific: define if the `i386_io_perm_*' RPCs are available. */
#undef HAVE_I386_IO_PERM_MODIFY
@@ -182,6 +182,9 @@
/* Define if inlined system calls are available. */
#undef HAVE_INLINED_SYSCALLS
/* Define if memory tagging support should be enabled. */
#undef USE_MTAG
/* Package description. */
#undef PKGVERSION
@@ -213,11 +216,8 @@
multiple symbol versions for one symbol. */
#define SYMVER_NEEDS_ALIAS 0
/* Define to 1 if libpthread is provided by nptl. */
#define __PTHREAD_NPTL 0
/* Define to 1 if libpthread is provided by htl. */
#define __PTHREAD_HTL 0
/* Define to 1 if libpthread actually resides in libc. */
#define PTHREAD_IN_LIBC 0
/* An integer used to scale the timeout of test programs. */
#define TIMEOUTFACTOR 1
@@ -228,9 +228,6 @@
/* Set to 1 if 64 bit atomics are supported. */
#undef HAVE_64B_ATOMICS
/* Define to 1 if compiler runtime provides __sfp_handle_exceptions */
#undef HAVE_SFP_HANDLE_EXCEPTIONS
/*
*/
+5
View File
@@ -69,6 +69,7 @@ no-fortify-source = @no_fortify_source@
have-selinux = @have_selinux@
have-libaudit = @have_libaudit@
have-libcap = @have_libcap@
have-cc-with-libunwind = @libc_cv_cc_with_libunwind@
bind-now = @bindnow@
have-cxx-thread_local = @libc_cv_cxx_thread_local@
have-loop-to-function = @libc_cv_cc_loop_to_function@
@@ -78,15 +79,19 @@ multi-arch = @multi_arch@
mach-interface-list = @mach_interface_list@
memory-tagging = @memory_tagging@
# Configuration options.
build-shared = @shared@
build-profile = @profile@
build-static-nss = @static_nss@
cross-compiling = @cross_compiling@
force-install = @force_install@
build-nscd = @build_nscd@
use-nscd = @use_nscd@
build-hardcoded-path-in-tests= @hardcoded_path_in_tests@
build-pt-chown = @build_pt_chown@
pthread-in-libc = @pthread_in_libc@
man-pages-version = @man_pages_version@
# Build tools.
Vendored
+97 -156
View File
@@ -612,10 +612,12 @@ ac_unique_file="include/features.h"
enable_option_checking=no
ac_subst_vars='LTLIBOBJS
LIBOBJS
pthread_in_libc
RELEASE
VERSION
mach_interface_list
DEFINES
static_nss
profile
libc_cv_multidir
test_enable_cet
@@ -702,6 +704,7 @@ INSTALL_PROGRAM
base_machine
build_pt_chown
build_nscd
memory_tagging
enable_werror
force_install
bindnow
@@ -803,11 +806,13 @@ enable_hardcoded_path_in_tests
enable_hidden_plt
enable_bind_now
enable_stack_protector
enable_static_nss
enable_force_install
enable_maintainer_mode
enable_kernel
enable_werror
enable_multi_arch
enable_memory_tagging
enable_systemtap
enable_build_nscd
enable_nscd
@@ -1475,6 +1480,7 @@ Optional Features:
--enable-stack-protector=[yes|no|all|strong]
Use -fstack-protector[-all|-strong] to detect glibc
buffer overflows
--enable-static-nss build static NSS modules [default=no]
--disable-force-install don't force installation of files from this package,
even if they are older than the installed files
--enable-maintainer-mode
@@ -1485,6 +1491,8 @@ Optional Features:
--disable-werror do not build with -Werror
--enable-multi-arch enable single DSO with optimizations for multiple
architectures
--enable-memory-tagging enable memory tagging if supported by the
architecture [default=no]
--enable-systemtap enable systemtap static probe points [default=no]
--disable-build-nscd disable building and installing the nscd daemon
--disable-nscd library functions will not contact the nscd daemon
@@ -4611,6 +4619,21 @@ all|yes|no|strong) ;;
*) as_fn_error $? "Not a valid argument for --enable-stack-protector: \"$enable_stack_protector\"" "$LINENO" 5;;
esac
# Check whether --enable-static-nss was given.
if test ${enable_static_nss+y}
then :
enableval=$enable_static_nss; static_nss=$enableval
else case e in #(
e) static_nss=no ;;
esac
fi
if test x"$static_nss" = xyes || test x"$shared" = xno; then
static_nss=yes
printf "%s\n" "#define DO_STATIC_NSS 1" >>confdefs.h
fi
# Check whether --enable-force-install was given.
if test ${enable_force_install+y}
then :
@@ -4668,6 +4691,26 @@ esac
fi
# Check whether --enable-memory-tagging was given.
if test ${enable_memory_tagging+y}
then :
enableval=$enable_memory_tagging; memory_tagging=$enableval
else case e in #(
e) memory_tagging=no ;;
esac
fi
if test "$memory_tagging" = yes; then
# Only enable this on architectures that support it.
case $host_cpu in
aarch64)
printf "%s\n" "#define USE_MTAG 1" >>confdefs.h
;;
esac
fi
# Check whether --enable-systemtap was given.
if test ${enable_systemtap+y}
then :
@@ -7026,17 +7069,18 @@ if test $libc_cv_have_sdata_section = yes; then
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler links with libunwind" >&5
printf %s "checking whether the compiler links with libunwind... " >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libunwind-support in compiler" >&5
printf %s "checking for libunwind-support in compiler... " >&6; }
if test ${libc_cv_cc_with_libunwind+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) cat > conftest.c <<EOF
e)
cat > conftest.c <<EOF
int main (void) { return 0; }
EOF
if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static -o conftest \
conftest.c -v 2>&1 >/dev/null | grep 'libunwind.a' >/dev/null; then
conftest.c -v 2>&1 >/dev/null | grep ' -lunwind ' >/dev/null; then
libc_cv_cc_with_libunwind=yes
else
libc_cv_cc_with_libunwind=no
@@ -7051,8 +7095,6 @@ if test $libc_cv_cc_with_libunwind = yes; then
printf "%s\n" "#define HAVE_CC_WITH_LIBUNWIND 1" >>confdefs.h
fi
config_vars="$config_vars
have-cc-with-libunwind = $libc_cv_cc_with_libunwind"
ASFLAGS_config=
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether --noexecstack is desirable for .S files" >&5
@@ -7395,6 +7437,47 @@ printf "%s\n" "$libc_cv_fpie" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -Wno-discarded-qualifiers" >&5
printf %s "checking for -Wno-discarded-qualifiers... " >&6; }
if test ${libc_cv_cflags_wno_discarded_qualifiers+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if { ac_try='${CC-cc} -Werror -Wno-discarded-qualifiers -xc /dev/null -S -o /dev/null'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }
then :
libc_cv_cflags_wno_discarded_qualifiers=-Wno-discarded-qualifiers
else case e in #(
e) libc_cv_cflags_wno_discarded_qualifiers= ;;
esac
fi
if test -z "$libc_cv_cflags_wno_discarded_qualifiers"; then
if { ac_try='${CC-cc} -Werror -Wno-incompatible-pointer-types-discards-qualifiers -xc /dev/null -S -o /dev/null'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }
then :
libc_cv_cflags_wno_incompatible_pointer_type_discards_qualifiers=-Wno-incompatible-pointer-types-discards-qualifiers
else case e in #(
e) libc_cv_cflags_wno_incompatible_pointer_type_discards_qualifiers= ;;
esac
fi
libc_cv_cflags_wno_discarded_qualifiers=$libc_cv_cflags_wno_incompatible_pointer_type_discards_qualifiers
fi
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_cflags_wno_discarded_qualifiers" >&5
printf "%s\n" "$libc_cv_cflags_wno_discarded_qualifiers" >&6; }
config_vars="$config_vars
config-cflags-wno-discarded-qualifiers = $libc_cv_cflags_wno_discarded_qualifiers"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GLOB_DAT reloc" >&5
printf %s "checking for GLOB_DAT reloc... " >&6; }
if test ${libc_cv_has_glob_dat+y}
@@ -8261,40 +8344,6 @@ CXX="$saved_CXX"
config_vars="$config_vars
test-config-cxxflags-finput-charset-ascii = $libc_cv_test_cxxflags_finput_charset_ascii"
saved_CXX="$CXX"
CXX="$TEST_CXX"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking $CXX -std=c++26 in testing" >&5
printf %s "checking $CXX -std=c++26 in testing... " >&6; }
if test ${libc_cv_test_cxxflags_stdcxx26+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) if { ac_try='${CXX-c++} -Werror -std=c++26 -xc++ /dev/null -S -o /dev/null'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
(eval $ac_try) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }
then :
libc_cv_test_cxxflags_stdcxx26="-std=c++26"
else case e in #(
e) libc_cv_test_cxxflags_stdcxx26=
;;
esac
fi ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_test_cxxflags_stdcxx26" >&5
printf "%s\n" "$libc_cv_test_cxxflags_stdcxx26" >&6; }
CXX="$saved_CXX"
config_vars="$config_vars
test-config-cxxflags-stdcxx26 = $libc_cv_test_cxxflags_stdcxx26"
conftest_code="
extern int not_exist (void);
@@ -8921,6 +8970,7 @@ libc_cv_sysconfdir=$sysconfdir
libc_cv_localstatedir=$localstatedir
libc_cv_gcc_unwind_find_fde=no
libc_cv_idn=no
pthread_in_libc=yes
abort_in_ld=no
# Iterate over all the sysdep directories we will use, running their
@@ -9318,122 +9368,6 @@ printf "%s\n" "$libc_cv_have_libgcc_s" >&6; }
config_vars="$config_vars
have-libgcc_s = $libc_cv_have_libgcc_s"
# Check which runtime library compiler uses
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the usable compiler runtime library" >&5
printf %s "checking for the usable compiler runtime library... " >&6; }
if test ${libc_cv_runtime_library+y}
then :
printf %s "(cached) " >&6
else case e in #(
e) libc_cv_libgcc_usable=no
libgcc_name=`${CC-cc} $CFLAGS $CPPFLAGS -print-libgcc-file-name | sed 's:.*/::'`
case "$libgcc_name" in
libgcc*)
libc_cv_libgcc=-lgcc
libc_cv_libgcc_eh=-lgcc_eh
libc_cv_runtime_library=libgcc
;;
libclang_rt*)
libc_cv_libgcc=-lclang_rt.builtins
libc_cv_libgcc_eh=
libc_cv_runtime_library=compiler-rt
;;
*) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "non supported compiler runtime library
See 'config.log' for more details" "$LINENO" 5; } ;;
esac ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_runtime_library" >&5
printf "%s\n" "$libc_cv_runtime_library" >&6; }
config_vars="$config_vars
libgcc-name = $libc_cv_libgcc"
config_vars="$config_vars
libgcc_eh-name = $libc_cv_libgcc_eh"
# Check if compiler runtime library provides __sfp_handle_exceptions
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __sfp_handle_exceptions support" >&5
printf %s "checking for __sfp_handle_exceptions support... " >&6; }
if test ${libc_cv_sfp_handle_exceptions+y}
then :
printf %s "(cached) " >&6
else case e in #(
e)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
void __sfp_handle_exceptions (int); __sfp_handle_exceptions (0)
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
libc_cv_sfp_handle_exceptions=yes
else case e in #(
e) libc_cv_sfp_handle_exceptions=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_sfp_handle_exceptions" >&5
printf "%s\n" "$libc_cv_sfp_handle_exceptions" >&6; }
if test "$TEST_CC" = "$CC"; then
libc_cv_test_sfp_handle_exceptions=$libc_cv_sfp_handle_exceptions
else
saved_CC="$CC"
CC="$TEST_CC"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __sfp_handle_exceptions support in testing" >&5
printf %s "checking for __sfp_handle_exceptions support in testing... " >&6; }
if test ${libc_cv_test_sfp_handle_exceptions+y}
then :
printf %s "(cached) " >&6
else case e in #(
e)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
void __sfp_handle_exceptions (int); __sfp_handle_exceptions (0)
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
libc_cv_test_sfp_handle_exceptions=yes
else case e in #(
e) libc_cv_test_sfp_handle_exceptions=no ;;
esac
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_test_sfp_handle_exceptions" >&5
printf "%s\n" "$libc_cv_test_sfp_handle_exceptions" >&6; }
CC="$saved_CC"
fi
if test $libc_cv_sfp_handle_exceptions = yes; then
printf "%s\n" "#define HAVE_SFP_HANDLE_EXCEPTIONS 1" >>confdefs.h
fi
# Support configure.ac under sysdeps.
@@ -9577,11 +9511,18 @@ libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
VERSION=`sed -n -e 's/^#define VERSION "\([^"]*\)"/\1/p' < $srcdir/version.h`
RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
if test "$pthread_in_libc" = yes; then
printf "%s\n" "#define PTHREAD_IN_LIBC 1" >>confdefs.h
fi
# Some symbols that might be auto-generated by the compiler are redefined
# to internal alias (for instance mempcpy to __mempcpy). However, if fortify
# is enabled, the fortify wrapper is define before the alias re-defined and
+55 -48
View File
@@ -272,6 +272,19 @@ all|yes|no|strong) ;;
*) AC_MSG_ERROR([Not a valid argument for --enable-stack-protector: "$enable_stack_protector"]);;
esac
dnl On some platforms we cannot use dynamic loading. We must provide
dnl static NSS modules.
AC_ARG_ENABLE([static-nss],
AS_HELP_STRING([--enable-static-nss],
[build static NSS modules @<:@default=no@:>@]),
[static_nss=$enableval],
[static_nss=no])
dnl Enable static NSS also if we build no shared objects.
if test x"$static_nss" = xyes || test x"$shared" = xno; then
static_nss=yes
AC_DEFINE(DO_STATIC_NSS)
fi
AC_ARG_ENABLE([force-install],
AS_HELP_STRING([--disable-force-install],
[don't force installation of files from this package, even if they are older than the installed files]),
@@ -315,6 +328,21 @@ AC_ARG_ENABLE([multi-arch],
[multi_arch=$enableval],
[multi_arch=default])
AC_ARG_ENABLE([memory-tagging],
AS_HELP_STRING([--enable-memory-tagging],
[enable memory tagging if supported by the architecture @<:@default=no@:>@]),
[memory_tagging=$enableval],
[memory_tagging=no])
if test "$memory_tagging" = yes; then
# Only enable this on architectures that support it.
case $host_cpu in
aarch64)
AC_DEFINE(USE_MTAG)
;;
esac
fi
AC_SUBST(memory_tagging)
AC_ARG_ENABLE([systemtap],
[AS_HELP_STRING([--enable-systemtap],
[enable systemtap static probe points @<:@default=no@:>@])],
@@ -1261,13 +1289,13 @@ if test $libc_cv_have_sdata_section = yes; then
AC_DEFINE(HAVE_SDATA_SECTION)
fi
AC_CACHE_CHECK(whether the compiler links with libunwind,
libc_cv_cc_with_libunwind, [dnl
cat > conftest.c <<EOF
AC_CACHE_CHECK(for libunwind-support in compiler,
libc_cv_cc_with_libunwind, [
cat > conftest.c <<EOF
int main (void) { return 0; }
EOF
if ${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -static -o conftest \
conftest.c -v 2>&1 >/dev/null | grep 'libunwind.a' >/dev/null; then
conftest.c -v 2>&1 >/dev/null | grep ' -lunwind ' >/dev/null; then
libc_cv_cc_with_libunwind=yes
else
libc_cv_cc_with_libunwind=no
@@ -1277,7 +1305,6 @@ AC_SUBST(libc_cv_cc_with_libunwind)
if test $libc_cv_cc_with_libunwind = yes; then
AC_DEFINE(HAVE_CC_WITH_LIBUNWIND)
fi
LIBC_CONFIG_VAR([have-cc-with-libunwind], [$libc_cv_cc_with_libunwind])
ASFLAGS_config=
AC_CACHE_CHECK(whether --noexecstack is desirable for .S files,
@@ -1343,6 +1370,22 @@ LIBC_TRY_CC_OPTION([-fpie], [libc_cv_fpie=yes], [libc_cv_fpie=no])
AC_SUBST(libc_cv_fpie)
dnl Check how to suppress C23-qualifier-generic const warnings. GCC has
dnl -Wno-discarded-qualifiers, while clang -Wno-incompatible-pointer-types-discards-qualifiers
AC_CACHE_CHECK(for -Wno-discarded-qualifiers, libc_cv_cflags_wno_discarded_qualifiers, [dnl
LIBC_TRY_CC_OPTION([-Werror -Wno-discarded-qualifiers],
[libc_cv_cflags_wno_discarded_qualifiers=-Wno-discarded-qualifiers],
[libc_cv_cflags_wno_discarded_qualifiers=])
if test -z "$libc_cv_cflags_wno_discarded_qualifiers"; then
LIBC_TRY_CC_OPTION([-Werror -Wno-incompatible-pointer-types-discards-qualifiers],
[libc_cv_cflags_wno_incompatible_pointer_type_discards_qualifiers=-Wno-incompatible-pointer-types-discards-qualifiers],
[libc_cv_cflags_wno_incompatible_pointer_type_discards_qualifiers=])
libc_cv_cflags_wno_discarded_qualifiers=$libc_cv_cflags_wno_incompatible_pointer_type_discards_qualifiers
fi
])
LIBC_CONFIG_VAR([config-cflags-wno-discarded-qualifiers],
[$libc_cv_cflags_wno_discarded_qualifiers])
AC_CACHE_CHECK(for GLOB_DAT reloc,
libc_cv_has_glob_dat, [dnl
cat > conftest.c <<EOF
@@ -1653,16 +1696,6 @@ LIBC_TRY_TEST_CXX_OPTION([$CXX -finput-charset=ascii],
LIBC_CONFIG_VAR(test-config-cxxflags-finput-charset-ascii,
$libc_cv_test_cxxflags_finput_charset_ascii)
dnl Check if TEST_CXX supports -std=c++26.
LIBC_TRY_TEST_CXX_OPTION([$CXX -std=c++26],
[-Werror -std=c++26],
libc_cv_test_cxxflags_stdcxx26,
[libc_cv_test_cxxflags_stdcxx26="-std=c++26"],
[libc_cv_test_cxxflags_stdcxx26=]
)
LIBC_CONFIG_VAR(test-config-cxxflags-stdcxx26,
$libc_cv_test_cxxflags_stdcxx26)
conftest_code="
extern int not_exist (void);
@@ -1905,6 +1938,7 @@ libc_cv_sysconfdir=$sysconfdir
libc_cv_localstatedir=$localstatedir
libc_cv_gcc_unwind_find_fde=no
libc_cv_idn=no
pthread_in_libc=yes
abort_in_ld=no
# Iterate over all the sysdep directories we will use, running their
@@ -2100,39 +2134,6 @@ AC_CACHE_CHECK([whether $CC can link against -lgcc_s], libc_cv_have_libgcc_s, [d
LIBS="$old_LIBS"])
LIBC_CONFIG_VAR([have-libgcc_s], [$libc_cv_have_libgcc_s])
# Check which runtime library compiler uses
AC_CACHE_CHECK([for the usable compiler runtime library], [libc_cv_runtime_library], [dnl
libc_cv_libgcc_usable=no
libgcc_name=`${CC-cc} $CFLAGS $CPPFLAGS -print-libgcc-file-name | sed 's:.*/::'`
case "$libgcc_name" in
libgcc*)
libc_cv_libgcc=-lgcc
libc_cv_libgcc_eh=-lgcc_eh
libc_cv_runtime_library=libgcc
;;
libclang_rt*)
libc_cv_libgcc=-lclang_rt.builtins
libc_cv_libgcc_eh=
libc_cv_runtime_library=compiler-rt
;;
*) AC_MSG_FAILURE([non supported compiler runtime library]) ;;
esac])
LIBC_CONFIG_VAR([libgcc-name], [$libc_cv_libgcc])
LIBC_CONFIG_VAR([libgcc_eh-name], [$libc_cv_libgcc_eh])
# Check if compiler runtime library provides __sfp_handle_exceptions
LIBC_TRY_CC_AND_TEST_LINK([for __sfp_handle_exceptions support],
[void __sfp_handle_exceptions (int); __sfp_handle_exceptions (0)],
libc_cv_sfp_handle_exceptions,
[libc_cv_sfp_handle_exceptions=yes],
[libc_cv_sfp_handle_exceptions=no],
libc_cv_test_sfp_handle_exceptions,
[libc_cv_test_sfp_handle_exceptions=yes],
[libc_cv_test_sfp_handle_exceptions=no])
if test $libc_cv_sfp_handle_exceptions = yes; then
AC_DEFINE([HAVE_SFP_HANDLE_EXCEPTIONS])
fi
# Support configure.ac under sysdeps.
AC_SUBST(libc_cv_test_cc_mprefer_vector_width)
AC_SUBST(test_enable_cet)
@@ -2187,6 +2188,7 @@ libc_cv_multidir=`${CC-cc} $CFLAGS $CPPFLAGS -print-multi-directory`
AC_SUBST(libc_cv_multidir)
AC_SUBST(profile)
AC_SUBST(static_nss)
AC_SUBST(DEFINES)
@@ -2198,6 +2200,11 @@ RELEASE=`sed -n -e 's/^#define RELEASE "\([^"]*\)"/\1/p' < $srcdir/version.h`
AC_SUBST(VERSION)
AC_SUBST(RELEASE)
if test "$pthread_in_libc" = yes; then
AC_DEFINE(PTHREAD_IN_LIBC)
fi
AC_SUBST(pthread_in_libc)
# Some symbols that might be auto-generated by the compiler are redefined
# to internal alias (for instance mempcpy to __mempcpy). However, if fortify
# is enabled, the fortify wrapper is define before the alias re-defined and
+2 -2
View File
@@ -16,7 +16,7 @@ function int toupper (int)
function int isblank (int)
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
function int isascii (int)
function int toascii (int)
@@ -25,7 +25,7 @@ function int _toupper (int)
function int _tolower (int)
#endif
# if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
# if defined XOPEN2K8 || defined POSIX2008
type locale_t
function int isalnum_l (int, locale_t)
+4 -4
View File
@@ -3,12 +3,12 @@ type DIR
type {struct dirent}
# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
# if !defined POSIX && !defined POSIX2008
element {struct dirent} ino_t d_ino
# endif
element {struct dirent} char d_name []
# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
# if !defined POSIX && !defined POSIX2008
type ino_t
#endif
@@ -17,7 +17,7 @@ function {DIR*} opendir (const char*)
function {struct dirent*} readdir (DIR*)
function int readdir_r (DIR*, struct dirent*, struct dirent**)
function void rewinddir (DIR*)
# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
# if !defined POSIX && !defined POSIX2008
function void seekdir (DIR*, long int)
function {long int} telldir (DIR*)
# endif
@@ -25,7 +25,7 @@ function {long int} telldir (DIR*)
allow d_*
allow *_t
# if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
# if defined XOPEN2K8 || defined POSIX2008
function int alphasort (const struct dirent**, const struct dirent**)
function int dirfd (DIR*)
function int scandir (const char*, struct dirent***, int(*)(const struct dirent*), int(*)(const struct dirent**,const struct dirent **))
+1 -1
View File
@@ -122,7 +122,7 @@ macro-int-constant EWOULDBLOCK {int} > 0
# endif
macro-int-constant EXDEV {int} > 0
# if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
# if defined XOPEN2K8 || defined POSIX2008
macro-int-constant ENOTRECOVERABLE {int} > 0
macro-int-constant EOWNERDEAD {int} > 0
# endif
+5 -5
View File
@@ -62,12 +62,12 @@ constant S_IWOTH
constant S_IXOTH
constant S_ISUID
constant S_ISGID
#if !defined POSIX2008 && !defined POSIX2024
#if !defined POSIX2008
constant S_ISVTX
#endif
#endif
#if defined XOPEN2K || defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
constant POSIX_FADV_NORMAL
constant POSIX_FADV_SEQUENTIAL
constant POSIX_FADV_RANDOM
@@ -96,15 +96,15 @@ type pid_t
function int creat (const char*, mode_t)
function int fcntl (int, int, ...)
function int open (const char*, int, ...)
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
function int openat (int, const char*, int, ...)
#endif
#if defined XOPEN2K || defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
function int posix_fadvise (int, off_t, off_t, int)
function int posix_fallocate (int, off_t, off_t)
#endif
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
// Bug 18228: O_TTY_INIT, O_EXEC, O_SEARCH missing.
xfail-constant O_TTY_INIT
constant O_CLOEXEC
+1 -1
View File
@@ -1,4 +1,4 @@
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024 && !defined XPG4
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined XPG4
macro MM_HARD
constant MM_HARD
+1 -1
View File
@@ -3,7 +3,7 @@ constant FNM_NOMATCH
constant FNM_PATHNAME
constant FNM_PERIOD
constant FNM_NOESCAPE
#if !defined POSIX && !defined XOPEN2K8 && !defined XOPEN2K24 && !defined POSIX2008 && !defined POSIX2024
#if !defined POSIX && !defined XOPEN2K8 && !defined POSIX2008
constant FNM_NOSYS
#endif
+1 -1
View File
@@ -1,4 +1,4 @@
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
# ifndef XPG4
type {struct FTW}
element {struct FTW} int base
+1 -1
View File
@@ -19,7 +19,7 @@ constant GLOB_NOSORT
constant GLOB_ABORTED
constant GLOB_NOMATCH
constant GLOB_NOSPACE
# if !defined XOPEN2K8 && !defined XOPEN2K24 && !defined POSIX2008 && !defined POSIX2024 && !defined POSIX
# if !defined XOPEN2K8 && !defined POSIX2008 && !defined POSIX
constant GLOB_NOSYS
# endif
+2 -2
View File
@@ -11,7 +11,7 @@ element {struct group} {char**} gr_mem
# ifndef POSIX
type gid_t
# endif
# if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
# if defined XOPEN2K8 || defined POSIX2008
type size_t
# endif
@@ -19,7 +19,7 @@ function {struct group*} getgrgid (gid_t)
function {struct group*} getgrnam (const char*)
function int getgrgid_r (gid_t, struct group*, char *, size_t, struct group**)
function int getgrnam_r (const char *, struct group *, char *, size_t, struct group**)
# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
# if !defined XPG4 && !defined POSIX && !defined POSIX2008
function {struct group*} getgrent (void)
function void endgrent (void)
function void setgrent (void)
+1 -1
View File
@@ -1,6 +1,6 @@
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX
type iconv_t
# if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
# if defined XOPEN2K8 || defined POSIX2008
type size_t
# endif
+2 -2
View File
@@ -61,12 +61,12 @@ constant NOSTR
# endif
type nl_item
# if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
# if defined XOPEN2K8 || defined POSIX2008
type locale_t
# endif
function {char*} nl_langinfo (nl_item)
# if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
# if defined XOPEN2K8 || defined POSIX2008
function {char*} nl_langinfo_l (nl_item, locale_t)
# endif
+1 -1
View File
@@ -1,4 +1,4 @@
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024 && !defined XPG4
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined XPG4
function {char*} basename (char*)
function {char*} dirname (char*)
+8 -8
View File
@@ -20,7 +20,7 @@ macro-int-constant UINT_MAX {unsigned int} >= 4294967295U
macro-int-constant LONG_MAX {long int} >= 2147483647L
macro-int-constant LONG_MIN {long int} <= -2147483647L
macro-int-constant ULONG_MAX {unsigned long int} >= 4294967295UL
#if defined ISO99 || defined ISO11 || defined ISO23 || defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined ISO99 || defined ISO11 || defined ISO23 || defined XOPEN2K8 || defined POSIX2008
macro-int-constant LLONG_MIN {long long int} <= -9223372036854775807ll
macro-int-constant LLONG_MAX {long long int} >= 9223372036854775807ll
macro-int-constant ULLONG_MAX {unsigned long long int} >= 18446744073709551615ull
@@ -37,7 +37,7 @@ allow ATEXIT_MAX
#endif
allow CHILD_MAX
allow DELAYTIMER_MAX
#if !defined POSIX && !defined POSIX2008 && !defined POSIX2024 && !defined XPG4
#if !defined POSIX && !defined POSIX2008 && !defined XPG4
allow IOV_MAX
#endif
allow LOGIN_NAME_MAX
@@ -45,7 +45,7 @@ allow MQ_OPEN_MAX
allow MQ_PRIO_MAX
allow OPEN_MAX
allow PAGESIZE
#if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined POSIX && !defined POSIX2008
allow PAGE_SIZE
#endif
allow PTHREAD_DESTRUCTOR_ITERATIONS
@@ -160,11 +160,11 @@ macro-constant _POSIX2_COLL_WEIGHTS_MAX == 2
macro-constant _POSIX2_EXPR_NEST_MAX == 32
macro-constant _POSIX2_LINE_MAX == 2048
macro-constant _POSIX2_RE_DUP_MAX == 255
#if !defined POSIX && !defined POSIX2008 && !defined POSIX2024 && !defined XPG4
#if !defined POSIX && !defined POSIX2008 && !defined XPG4
optional-constant _XOPEN_IOV_MAX == 16
#endif
#if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined POSIX && !defined POSIX2008
constant WORD_BIT >= 16
constant LONG_BIT >= 32
#endif
@@ -175,16 +175,16 @@ optional-constant CHARCLASS_NAME_MAX >= 14
#endif
#if !defined POSIX
optional-constant NL_ARGMAX >= 9
# if !defined POSIX2008 && !defined POSIX2024
# if !defined POSIX2008
optional-constant NL_LANGMAX >= 14
# endif
optional-constant NL_MSGMAX >= 32767
# if !defined XOPEN2K8 && !defined XOPEN2K24 && !defined POSIX2008 && !defined POSIX2024
# if !defined XOPEN2K8 && !defined POSIX2008
optional-constant NL_NMAX
# endif
optional-constant NL_SETMAX >= 255
optional-constant NL_TEXTMAX
# if !defined POSIX2008 && !defined POSIX2024
# if !defined POSIX2008
optional-constant NZERO >= 20
# endif
#endif
+3 -3
View File
@@ -38,7 +38,7 @@ macro-int-constant LC_MONETARY
macro-int-constant LC_NUMERIC
macro-int-constant LC_TIME
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
constant LC_GLOBAL_LOCALE
macro LC_COLLATE_MASK
@@ -54,7 +54,7 @@ type locale_t
function {struct lconv*} localeconv (void)
function {char*} setlocale (int, const char*)
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
function locale_t duplocale (locale_t)
function void freelocale (locale_t)
function locale_t newlocale (int, const char*, locale_t)
@@ -65,6 +65,6 @@ allow LC_[ABCDEFGHIJKLMNOPQRSTUVWXYZ]*
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
allow *_t
#endif
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
allow LC_*_MASK
#endif
+4 -4
View File
@@ -21,7 +21,7 @@ type double_t
function int isnan (double)
# endif
# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX2008 && !defined POSIX2024
# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX2008
constant M_E
constant M_LOG2E
constant M_LOG10E
@@ -104,7 +104,7 @@ function double gamma (double)
#endif
#if !defined ISO && !defined POSIX
function double hypot (double, double)
# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
function double j0 (double)
function double j1 (double)
function double jn (int, double)
@@ -113,7 +113,7 @@ function double lgamma (double)
# if !defined XPG4 && !defined XPG42 && !defined UNIX98
function double tgamma (double)
# endif
# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
function double y0 (double)
function double y1 (double)
function double yn (int, double)
@@ -157,7 +157,7 @@ function double nan (const char*)
# endif
# endif
# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
// variable signgam
allow signgam
# endif
+2 -2
View File
@@ -1,12 +1,12 @@
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX
type size_t
type ssize_t
# if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
# if defined XOPEN2K8 || defined POSIX2008
type locale_t
# endif
function ssize_t strfmon (char*, size_t, const char*, ...)
# if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
# if defined XOPEN2K8 || defined POSIX2008
function ssize_t strfmon_l (char*, size_t, locale_t, const char*, ...)
# endif
+2 -2
View File
@@ -24,12 +24,12 @@ function ssize_t mq_receive (mqd_t, char*, size_t, unsigned int*)
function int mq_send (mqd_t, const char*, size_t, unsigned int)
function int mq_setattr (mqd_t, const struct mq_attr*, struct mq_attr*)
function int mq_unlink (const char*)
#if defined XOPEN2K || defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
optional-function ssize_t mq_timedreceive (mqd_t, char*, size_t, unsigned int*, const struct timespec*)
optional-function int mq_timedsend (mqd_t, const char*, size_t, unsigned int, const struct timespec*)
#endif
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
type pthread_attr_t
type size_t
type ssize_t
+1 -1
View File
@@ -1,4 +1,4 @@
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024 && !defined XPG4
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined XPG4
type datum
element datum {void*} dptr
element datum size_t dsize
+1 -1
View File
@@ -35,7 +35,7 @@ element {struct servent} {char*} s_proto
macro IPPORT_RESERVED
#if !defined XOPEN2K8 && !defined XOPEN2K24 && !defined POSIX2008 && !defined POSIX2024
#if !defined XOPEN2K8 && !defined POSIX2008
// variable int h_errno
allow h_errno
+1 -1
View File
@@ -1,4 +1,4 @@
#if defined XOPEN2K || defined POSIX2008 || defined POSIX2024 || defined XOPEN2K8 || defined XOPEN2K24
#if defined XOPEN2K || defined POSIX2008 || defined XOPEN2K8
macro TCP_NODELAY
allow TCP_*
+5 -5
View File
@@ -25,7 +25,7 @@ constant PTHREAD_MUTEX_NORMAL
constant PTHREAD_MUTEX_RECURSIVE
macro PTHREAD_RWLOCK_INITIALIZER
# endif
# if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
# if defined XOPEN2K8 || defined POSIX2008
constant PTHREAD_MUTEX_ROBUST
constant PTHREAD_MUTEX_STALLED
# endif
@@ -107,7 +107,7 @@ function int pthread_create (pthread_t*, const pthread_attr_t*, void *(*) (void*
function int pthread_detach (pthread_t)
function int pthread_equal (pthread_t, pthread_t)
function void pthread_exit (void*)
# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
# if !defined POSIX && !defined POSIX2008
function int pthread_getconcurrency (void)
# endif
# if !defined POSIX && !defined UNIX98
@@ -164,12 +164,12 @@ function int pthread_rwlockattr_setpshared (pthread_rwlockattr_t*, int)
function pthread_t pthread_self (void)
function int pthread_setcancelstate (int, int*)
function int pthread_setcanceltype (int, int*)
# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
# if !defined POSIX && !defined POSIX2008
function int pthread_setconcurrency (int)
# endif
function int pthread_setschedparam (pthread_t, int, const struct sched_param*)
function int pthread_setspecific (pthread_key_t, const void*)
# if !defined POSIX && !defined UNIX98 && !defined XOPEN2K && !defined XOPEN2K8 && !defined XOPEN2K24 && !defined POSIX2008 && !defined POSIX2024
# if !defined POSIX && !defined UNIX98 && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
function int pthread_sigmask (int, const sigset_t*, sigset_t*)
# endif
# if !defined POSIX && !defined UNIX98
@@ -180,7 +180,7 @@ function int pthread_spin_trylock (pthread_spinlock_t*)
function int pthread_spin_unlock (pthread_spinlock_t*)
# endif
function void pthread_testcancel (void)
# if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
# if defined XOPEN2K8 || defined POSIX2008
function int pthread_mutex_consistent (pthread_mutex_t *)
function int pthread_mutexattr_getrobust (const pthread_mutexattr_t*, int*)
function int pthread_mutexattr_setrobust (pthread_mutexattr_t*, int)
+2 -2
View File
@@ -14,7 +14,7 @@ element {struct passwd} {char*} pw_shell
# ifndef POSIX
type uid_t
type gid_t
# if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
# if defined XOPEN2K8 || defined POSIX2008
type size_t
# endif
# endif
@@ -23,7 +23,7 @@ function {struct passwd*} getpwnam (const char*)
function {struct passwd*} getpwuid (uid_t)
function int getpwnam_r (const char*, struct passwd*, char*, size_t, struct passwd**)
function int getpwuid_r (uid_t, struct passwd*, char*, size_t, struct passwd**)
# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
# if !defined XPG4 && !defined POSIX && !defined POSIX2008
function void endpwent (void)
function {struct passwd*} getpwent (void)
function void setpwent (void)
+1 -1
View File
@@ -29,7 +29,7 @@ constant REG_BADBR
constant REG_ERANGE
constant REG_ESPACE
constant REG_BADRPT
# if !defined POSIX && !defined XOPEN2K8 && !defined XOPEN2K24 && !defined POSIX2008 && !defined POSIX2024
# if !defined POSIX && !defined XOPEN2K8 && !defined POSIX2008
constant REG_ENOSYS
# endif
+1 -1
View File
@@ -14,7 +14,7 @@ optional-element {struct sched_param} {struct timespec} sched_ss_init_budget
optional-element {struct sched_param} int sched_ss_max_repl
# endif
# if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
# if defined XOPEN2K8 || defined POSIX2008
type pid_t
type time_t
type {struct timespec}
+1 -1
View File
@@ -1,4 +1,4 @@
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
type ENTRY
type {struct entry}
element {struct entry} {char*} key
+1 -1
View File
@@ -17,7 +17,7 @@ function int sem_unlink (const char*)
function int sem_wait (sem_t*)
allow-header fcntl.h
# if !defined POSIX2008 && !defined POSIX2024 && !defined XOPEN2K8 && !defined XOPEN2K24
# if !defined POSIX2008 && !defined XOPEN2K8
allow-header sys/types.h
# endif
// Consider addition of this permission in POSIX.1:2008 as a bug fix,
+2 -2
View File
@@ -6,7 +6,7 @@ type sigjmp_buf
function void longjmp (jmp_buf, int)
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
function void siglongjmp (sigjmp_buf, int)
# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
# if !defined POSIX && !defined POSIX2008
function void _longjmp (jmp_buf, int)
# endif
#endif
@@ -14,7 +14,7 @@ function void _longjmp (jmp_buf, int)
macro-function int setjmp (jmp_buf)
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
macro-function int sigsetjmp (sigjmp_buf, int)
# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
# if !defined POSIX && !defined POSIX2008
macro-function int _setjmp (jmp_buf)
# endif
#endif
+17 -17
View File
@@ -1,6 +1,6 @@
macro-constant SIG_DFL {void(*)(int)}
macro-constant SIG_ERR {void(*)(int)}
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
macro-constant SIG_HOLD {void(*)(int)}
#endif
macro-constant SIG_IGN {void(*)(int)}
@@ -15,7 +15,7 @@ type pid_t
# define pid_t __pid_t
# define uid_t __uid_t
#endif
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
type size_t
type pthread_t
type uid_t
@@ -35,7 +35,7 @@ element {struct timespec} __time_t tv_sec
xfail[x86_64-x32-linux]-element {struct timespec} long tv_nsec
#endif
#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
element {union sigval} int sival_int
element {union sigval} {void*} sival_ptr
@@ -90,7 +90,7 @@ macro-int-constant SIGPOLL {int} > 0
macro-int-constant SIGPROF {int} > 0
macro-int-constant SIGSYS {int} > 0
# endif
# if !defined POSIX && !defined XPG4 && !defined POSIX2008 && !defined POSIX2024
# if !defined POSIX && !defined XPG4 && !defined POSIX2008
macro-int-constant SIGTRAP {int} > 0
# endif
# if !defined POSIX && !defined XPG4
@@ -116,7 +116,7 @@ constant SA_SIGINFO
constant SIG_BLOCK
constant SIG_UNBLOCK
constant SIG_SETMASK
# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
# if !defined XPG4 && !defined POSIX && !defined POSIX2008
constant SA_ONSTACK
# endif
# if !defined XPG4 && !defined POSIX
@@ -126,7 +126,7 @@ constant SA_RESTART
xfail[i386-gnu|x86_64-gnu]-constant SA_NOCLDWAIT
constant SA_NODEFER
# endif
# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
# if !defined XPG4 && !defined POSIX && !defined POSIX2008
constant SS_ONSTACK
constant SS_DISABLE
constant MINSIGSTKSZ
@@ -148,7 +148,7 @@ element stack_t {void*} ss_sp
element stack_t size_t ss_size
element stack_t int ss_flags
# if !defined XOPEN2K8 && !defined XOPEN2K24 && !defined POSIX2008 && !defined POSIX2024
# if !defined XOPEN2K8 && !defined POSIX2008
type {struct sigstack}
element {struct sigstack} int ss_onstack
@@ -160,7 +160,7 @@ element {struct sigstack} {void*} ss_sp
type siginfo_t
element siginfo_t int si_signo
# if !defined POSIX && !defined POSIX2008 && !defined POSIX2024
# if !defined POSIX && !defined POSIX2008
element siginfo_t int si_errno
# endif
element siginfo_t int si_code
@@ -212,7 +212,7 @@ constant POLL_ERR
constant POLL_PRI
constant POLL_HUP
# endif
# if !defined POSIX && !defined XPG4 && !defined POSIX2008 && !defined POSIX2024
# if !defined POSIX && !defined XPG4 && !defined POSIX2008
constant TRAP_BRKPT
constant TRAP_TRACE
# endif
@@ -224,11 +224,11 @@ constant SI_ASYNCIO
constant SI_MESGQ
# endif
# if !defined XPG4 && !defined XOPEN2K8 && !defined XOPEN2K24 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
# if !defined XPG4 && !defined XOPEN2K8 && !defined POSIX && !defined POSIX2008
function void (*bsd_signal (int, void(*)(int)))(int)
# endif
function int kill (pid_t, int)
# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
# if !defined XPG4 && !defined POSIX && !defined POSIX2008
function int killpg (pid_t, int)
# endif
# if !defined XPG4 && !defined XPG42
@@ -237,19 +237,19 @@ function int pthread_sigmask (int, const sigset_t*, sigset_t*)
# endif
function int sigaction (int, const struct sigaction*, struct sigaction*)
function int sigaddset (sigset_t*, int)
# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
# if !defined XPG4 && !defined POSIX && !defined POSIX2008
function int sigaltstack (const stack_t*, stack_t*)
# endif
function int sigdelset (sigset_t*, int)
function int sigemptyset (sigset_t*)
function int sigfillset (sigset_t*)
# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
# if !defined XPG4 && !defined POSIX && !defined POSIX2008
function int sighold (int)
function int sigignore (int)
function int siginterrupt (int, int)
# endif
function int sigismember (const sigset_t*, int)
#if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined XPG4 && !defined POSIX && !defined POSIX2008
function int sigpause (int)
# endif
function int sigpending (sigset_t*)
@@ -257,7 +257,7 @@ function int sigprocmask (int, const sigset_t*, sigset_t*)
# if !defined XPG4 && !defined XPG42
function int sigqueue (pid_t, int, const union sigval)
# endif
# if !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
# if !defined XPG4 && !defined POSIX && !defined POSIX2008
function int sigrelse (int)
function void (*sigset (int, void(*)(int)))(int)
# endif
@@ -272,7 +272,7 @@ function int sigtimedwait (const sigset_t*, siginfo_t*, const struct timespec*)
function int sigwait (const sigset_t*, int*)
function int sigwaitinfo (const sigset_t*, siginfo_t*)
# endif
# if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
# if defined XOPEN2K8 || defined POSIX2008
function void psiginfo (const siginfo_t*, const char*)
function void psignal (int, const char*)
# endif
@@ -301,7 +301,7 @@ allow ILL_*
allow POLL_*
allow SEGV_*
# endif
# if !defined POSIX && !defined XPG4 && !defined POSIX2008 && !defined POSIX2024
# if !defined POSIX && !defined XPG4 && !defined POSIX2008
allow SS_*
allow SV_*
allow TRAP_*
+1 -5
View File
@@ -1,7 +1,7 @@
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
type posix_spawnattr_t
type posix_spawn_file_actions_t
# if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
# if defined XOPEN2K8 || defined POSIX2008
type mode_t
type pid_t
type sigset_t
@@ -29,10 +29,6 @@ function int posix_spawnattr_setpgroup (posix_spawnattr_t*, pid_t)
function int posix_spawnattr_setschedparam (posix_spawnattr_t*, const struct sched_param*)
function int posix_spawnattr_setschedpolicy (posix_spawnattr_t*, int)
function int posix_spawnattr_setsigmask (posix_spawnattr_t*, const sigset_t*)
#if defined XOPEN2K24 || defined POSIX2024
function int posix_spawn_file_actions_addchdir (posix_spawn_file_actions_t*, const char *)
function int posix_spawn_file_actions_addfchdir (posix_spawn_file_actions_t*, int)
#endif
function int posix_spawn_file_actions_addclose (posix_spawn_file_actions_t*, int)
function int posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t*, int, int)
function int posix_spawn_file_actions_addopen (posix_spawn_file_actions_t*, int, const char *, int, mode_t)
+1 -1
View File
@@ -5,7 +5,7 @@ macro va_start
macro va_arg
macro va_end
#if defined ISO99 || defined ISO11 || defined ISO23 || defined XOPEN2K || defined POSIX2008 || defined POSIX2024 || defined XOPEN2K8 || defined XOPEN2K24
#if defined ISO99 || defined ISO11 || defined ISO23 || defined XOPEN2K || defined POSIX2008 || defined XOPEN2K8
macro va_copy
#endif
+17 -17
View File
@@ -8,7 +8,7 @@ macro-int-constant _IONBF
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
constant L_ctermid
# if !defined XOPEN2K && !defined XOPEN2K8 && !defined XOPEN2K24 && !defined POSIX2008 && !defined POSIX2024
# if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
# ifdef POSIX
optional-constant L_cuserid
# else
@@ -28,7 +28,7 @@ macro-int-constant EOF < 0
macro-constant NULL == 0
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
constant P_tmpdir
#endif
@@ -44,7 +44,7 @@ type va_list
#define va_list __gnuc_va_list
#endif
type size_t
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
type off_t
type ssize_t
#endif
@@ -56,7 +56,7 @@ function {char*} ctermid (char*)
function {char*} cuserid (char*)
# endif
#endif
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
function int dprintf (int, const char*, ...)
#endif
function int fclose (FILE*)
@@ -72,10 +72,10 @@ function {char*} fgets (char*, int, FILE*)
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
function int fileno (FILE*)
#endif
#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
function void flockfile (FILE*)
#endif
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
function {FILE*} fmemopen (void*, size_t, const char*)
#endif
function {FILE*} fopen (const char*, const char*)
@@ -86,26 +86,26 @@ function size_t fread (void*, size_t, size_t, FILE*)
function {FILE*} freopen (const char*, const char*, FILE*)
function int fscanf (FILE*, const char*, ...)
function int fseek (FILE*, long int, int)
#if defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
function int fseeko (FILE*, off_t, int)
#endif
function int fsetpos (FILE*, const fpos_t*)
function {long int} ftell (FILE*)
#if defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
function off_t ftello (FILE*)
#endif
#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
function int ftrylockfile (FILE*)
function void funlockfile (FILE*)
#endif
function size_t fwrite (const void*, size_t, size_t, FILE*)
function int getc (FILE*)
function int getchar (void)
#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
function int getc_unlocked (FILE*)
function int getchar_unlocked (void)
#endif
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
function ssize_t getdelim (char**, size_t*, int, FILE*)
function ssize_t getline (char**, size_t*, FILE*)
#endif
@@ -118,7 +118,7 @@ function {char*} gets (char*)
#if defined XPG4 || defined XPG42 || defined UNIX98
function int getw (FILE*)
#endif
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
function {FILE*} open_memstream (char**, size_t*)
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
@@ -131,7 +131,7 @@ function {FILE*} popen (const char*, const char*)
function int printf (const char*, ...)
function int putc (int, FILE*)
function int putchar (int)
#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
function int putc_unlocked (int, FILE*)
function int putchar_unlocked (int)
#endif
@@ -141,7 +141,7 @@ function int putw (int, FILE*)
#endif
function int remove (const char*)
function int rename (const char*, const char*)
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
function int renameat (int, const char*, int, const char*)
#endif
function void rewind (FILE*)
@@ -153,13 +153,13 @@ function int snprintf (char*, size_t, const char*, ...)
#endif
function int sprintf (char *, const char *, ...)
function int sscanf (const char*, const char*, ...)
#if defined XPG4 || defined XPG42 || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined XOPEN2K24
#if defined XPG4 || defined XPG42 || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8
function {char*} tempnam (const char*, const char*)
#endif
function {FILE*} tmpfile (void)
function {char*} tmpnam (char*)
function int ungetc (int, FILE*)
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
function int vdprintf (int, const char*, va_list)
#endif
function int vfprintf (FILE*, const char*, va_list)
@@ -179,7 +179,7 @@ function int vsscanf (const char*, const char*, va_list)
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
#if !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined XOPEN2K24 && !defined POSIX2008 && !defined POSIX2024
#if !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
variable {char*} optarg
variable int opterr
variable int optind
+24 -24
View File
@@ -12,7 +12,7 @@ macro-constant NULL == 0
macro-int-constant RAND_MAX >= 32767
macro MB_CUR_MAX
#if defined ISO99 || defined ISO11 || defined ISO23 || defined XOPEN2K || defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined ISO99 || defined ISO11 || defined ISO23 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
type lldiv_t
element lldiv_t {long long} quot
element lldiv_t {long long} rem
@@ -35,7 +35,7 @@ macro WTERMSIG
#if !defined ISO && !defined XPG4 && !defined XPG42 && !defined UNIX98 && !defined POSIX
function void _Exit (int)
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
function long a64l (const char*)
#endif
function void abort (void)
@@ -56,13 +56,13 @@ function {long long} atoll (const char*)
function {void*} bsearch (const void*, const void*, size_t, size_t, int(*)(const void*, const void*))
function {void*} calloc (size_t, size_t)
function div_t div (int, int)
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
function double drand48 (void)
#endif
#if defined XPG42 || defined UNIX98 || defined XOPEN2K
function {char*} ecvt (double, int, int*, int*)
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
function double erand48 (unsigned short int[3])
#endif
function void exit (int)
@@ -77,18 +77,18 @@ function {char*} getenv (const char*)
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX
function int getsubopt (char**, char *const*, char**)
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
function int grantpt (int)
function {char*} initstate (unsigned int, char*, size_t)
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
function {long int} jrand48 (unsigned short int[3])
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
function {char*} l64a (long)
#endif
function {long int} labs (long int)
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
function void lcong48 (unsigned short int[7])
#endif
function ldiv_t ldiv (long int, long int)
@@ -96,36 +96,36 @@ function ldiv_t ldiv (long int, long int)
function {long long} llabs (long long)
function lldiv_t lldiv (long long, long long)
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
function {long int} lrand48 (void)
#endif
function {void*} malloc (size_t)
function int mblen (const char*, size_t)
function size_t mbstowcs (wchar_t*, const char*, size_t)
function int mbtowc (wchar_t*, const char*, size_t)
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
function {char*} mkdtemp (char*)
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined XOPEN2K8 && !defined XOPEN2K24 && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined XOPEN2K8 && !defined POSIX2008
function {char*} mktemp (char*)
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX
function int mkstemp (char*)
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
function {long int} mrand48 (void)
function {long int} nrand48 (unsigned short int[3])
#endif
#if defined XOPEN2K || defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
function int posix_memalign (void**, size_t, size_t)
#endif
#if defined XOPEN2K || defined XOPEN2K8 || defined XOPEN2K24
#if defined XOPEN2K || defined XOPEN2K8
function int posix_openpt (int)
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
function {char*} ptsname (int)
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
function int putenv (char*)
#endif
function void qsort (void*, size_t, size_t, int(*)(const void*, const void*))
@@ -133,30 +133,30 @@ function void qsort (void*, size_t, size_t, int(*)(const void*, const void*))
function void quick_exit (int)
#endif
function int rand (void)
#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
function int rand_r (unsigned int*)
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
function long random (void)
#endif
function {void*} realloc (void*, size_t)
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
function {char*} realpath (const char*, char*)
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
function {unsigned short int*} seed48 (unsigned short int[3])
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
function int setenv (const char*, const char*, int)
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
function {char*} setstate (char*)
#endif
function void srand (unsigned int)
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
function void srand48 (long int)
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
function void srandom (unsigned)
#endif
function double strtod (const char*, char**)
@@ -174,7 +174,7 @@ function int system (const char*)
#if defined XPG42 || defined UNIX98
function int ttyslot (void)
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
function int unlockpt (int)
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
+11 -11
View File
@@ -1,11 +1,11 @@
macro-constant NULL == 0
type size_t
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
type locale_t
#endif
#if !defined ISO && !defined ISO99 & !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 & !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
function {void*} memccpy (void*, const void*, int, size_t)
#endif
function {void*} memchr (const void*, int, size_t)
@@ -13,7 +13,7 @@ function int memcmp (const void*, const void*, size_t)
function {void*} memcpy (void*, const void*, size_t)
function {void*} memmove (void*, const void*, size_t)
function {void*} memset (void*, int, size_t)
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
function {char*} stpcpy (char*, const char*)
function {char*} stpncpy (char*, const char*, size_t)
@@ -22,42 +22,42 @@ function {char*} strcat (char*, const char*)
function {char*} strchr (const char*, int)
function int strcmp (const char*, const char*)
function int strcoll (const char*, const char*)
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
function int strcoll_l (const char*, const char*, locale_t)
#endif
function {char*} strcpy (char*, const char*)
function size_t strcspn (const char*, const char*)
#if !defined ISO && !defined ISO99 & !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 & !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
function {char*} strdup (const char*)
#endif
function {char*} strerror (int)
#if defined XOPEN2K || defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
function int strerror_r (int, char*, size_t)
#endif
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
function {char*} strerror_l (int, locale_t)
#endif
function size_t strlen (const char*)
function {char*} strncat (char*, const char*, size_t)
function int strncmp (const char*, const char*, size_t)
function {char*} strncpy (char*, const char*, size_t)
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
function {char*} strndup (const char*, size_t)
function size_t strnlen (const char*, size_t)
#endif
function {char*} strpbrk (const char*, const char*)
function {char*} strrchr (const char*, int)
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
function {char*} strsignal (int)
#endif
function size_t strspn (const char*, const char*)
function {char*} strstr (const char*, const char*)
function {char*} strtok (char*, const char*)
#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
function {char*} strtok_r (char*, const char*, char**)
#endif
function size_t strxfrm (char*, const char*, size_t)
#if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
#if defined XOPEN2K8 || defined POSIX2008
function size_t strxfrm_l (char*, const char*, size_t, locale_t)
#endif
+4 -4
View File
@@ -1,23 +1,23 @@
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4
# if !defined XOPEN2K8 && !defined XOPEN2K24 && !defined POSIX2008 && !defined POSIX2024
# if !defined XOPEN2K8 && !defined POSIX2008
function int bcmp (const void*, const void*, size_t)
function void bcopy (const void*, void*, size_t)
function void bzero (void*, size_t)
function {char*} index (const char*, int)
function {char*} rindex (const char*, int)
# endif
# if !defined POSIX2008 && !defined POSIX2024
# if !defined POSIX2008
function int ffs (int)
# endif
function int strcasecmp (const char*, const char*)
function int strncasecmp (const char*, const char*, size_t)
# if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
# if defined XOPEN2K8 || defined POSIX2008
function int strcasecmp_l (const char*, const char*, locale_t)
function int strncasecmp_l (const char*, const char*, size_t, locale_t)
# endif
type size_t
# if defined XOPEN2K8 || defined XOPEN2K24 || defined POSIX2008 || defined POSIX2024
# if defined XOPEN2K8 || defined POSIX2008
type locale_t
# endif
+1 -1
View File
@@ -1,4 +1,4 @@
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
type {struct ipc_perm}
// Bug 23082: uid/gid/cuid/cgid/mode have type unsigned short instead of uid_t and mode_t.
+1 -1
View File
@@ -1,4 +1,4 @@
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
type {struct msqid_ds}
type msgqnum_t
+1 -1
View File
@@ -1,4 +1,4 @@
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024 && !defined XPG4
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined XPG4
constant PRIO_PROCESS
constant PRIO_PGRP
constant PRIO_USER
+1 -1
View File
@@ -25,7 +25,7 @@ macro FD_ZERO
macro FD_SETSIZE
#if defined XOPEN2K || defined POSIX2008 || defined POSIX2024 || defined XOPEN2K8 || defined XOPEN2K24
#if defined XOPEN2K || defined POSIX2008 || defined XOPEN2K8
function int pselect (int, fd_set*, fd_set*, fd_set*, const struct timespec*, const sigset_t*)
#endif
function int select (int, fd_set*, fd_set*, fd_set*, struct timeval*)
+1 -1
View File
@@ -1,4 +1,4 @@
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined POSIX2024
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
constant SEM_UNDO
constant GETNCNT

Some files were not shown because too many files have changed in this diff Show More