aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-11-19htl: move pthread_attr_getstackaddr into libc.gfleury8-5/+17
Signed-off-by: gfleury <gfleury@disroot.org>
2024-11-19htl move pthread_attr_getstacksize into libc.gfleury8-5/+17
Signed-off-by: gfleury <gfleury@disroot.org>
2024-11-19htl move pthread_attr_getscope into libc.gfleury9-10/+9
Signed-off-by: gfleury <gfleury@disroot.org>
2024-11-19htl move pthread_attr_getguardsize into libc.gfleury7-5/+18
Signed-off-by: gfleury <gfleury@disroot.org>
2024-11-19htl: move __pthread_default_attr into libcgfleury4-1/+4
Signed-off-by: gfleury <gfleury@disroot.org>
2024-11-19htl: move pthread_attr_destroy into libc.gfleury9-10/+9
Signed-off-by: gfleury <gfleury@disroot.org>
2024-11-15stdio-common: Fix C23-ism in formatted output specifier tests [BZ #32360]Maciej W. Rozycki1-1/+1
Nameless function parameters have only been added to ISO C with the C23 revision of the language standard. Give names to the unused parameters of the stub 'dladdr' implementation then so as to make compilation happy with the earlier language definitions, fixing errors such as: tst-printf-format-skeleton.c:374:9: error: parameter name omitted 374 | dladdr (const void *, Dl_info *) reported by older compilers. Reviewed-by: Florian Weimer <fweimer@redhat.com>
2024-11-13elf: handle addition overflow in _dl_find_object_update_1 [BZ #32245]Aurelien Jarno1-0/+8
The remaining_to_add variable can be 0 if (current_used + count) wraps, This is caught by GCC 14+ on hppa, which determines from there that target_seg could be be NULL when remaining_to_add is zero, which in turns causes a -Wstringop-overflow warning: In file included from ../include/atomic.h:49, from dl-find_object.c:20: In function '_dlfo_update_init_seg', inlined from '_dl_find_object_update_1' at dl-find_object.c:689:30, inlined from '_dl_find_object_update' at dl-find_object.c:805:13: ../sysdeps/unix/sysv/linux/hppa/atomic-machine.h:44:4: error: '__atomic_store_4' writing 4 bytes into a region of size 0 overflows the destination [-Werror=stringop-overflow=] 44 | __atomic_store_n ((mem), (val), __ATOMIC_RELAXED); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ dl-find_object.c:644:3: note: in expansion of macro 'atomic_store_relaxed' 644 | atomic_store_relaxed (&seg->size, new_seg_size); | ^~~~~~~~~~~~~~~~~~~~ In function '_dl_find_object_update': cc1: note: destination object is likely at address zero In practice, this is not possible as it represent counts of link maps. Link maps have sizes larger than 1 byte, so the sum of any two link map counts will always fit within a size_t without wrapping around. This patch therefore adds a check on remaining_to_add == 0 and tell GCC that this can not happen using __builtin_unreachable. Thanks to Andreas Schwab for the investigation. Closes: BZ #32245 Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Tested-by: John David Anglin <dave.anglin@bell.net> Reviewed-by: Florian Weimer <fweimer@redhat.com>
2024-11-13x86/string: Use `movsl` instead of `movsd` in strncpy/strncat [BZ #32344]Noah Goldstein1-1/+1
`ld`, starting at 2.40, emits a warning when using `movsd`. There is no change to the actual code produced. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2024-11-13manual: Fix overeager s/int/size_t/ in memory.texiJonathan Wakely1-1/+1
The change in e3960d1c57e57f33e0e846d615788f4ede73b945 should only have affected 'int' not 'internally'. Signed-off-by: Jonathan Wakely <jwakely@redhat.com>
2024-11-12hppa: Update libm-test-ulpsJohn David Anglin1-0/+3
Update imaginary part of csin. Signed-off-by: John David Anglin <dave.anglin@bell.net>
2024-11-13Revert "hurd: Stop depending on the default_pager stubs provided by gnumach"Samuel Thibault2-2/+4
This reverts commit f7f7dd8009275504b211c170caf5bce50fa472ac. default_pager is actually also used in e.g. xosview.
2024-11-12linux: Add support for getrandom vDSOAdhemerval Zanella23-8/+463
Linux 6.11 has getrandom() in vDSO. It operates on a thread-local opaque state allocated with mmap using flags specified by the vDSO. Multiple states are allocated at once, as many as fit into a page, and these are held in an array of available states to be doled out to each thread upon first use, and recycled when a thread terminates. As these states run low, more are allocated. To make this procedure async-signal-safe, a simple guard is used in the LSB of the opaque state address, falling back to the syscall if there's reentrancy contention. Also, _Fork() is handled by blocking signals on opaque state allocation (so _Fork() always sees a consistent state even if it interrupts a getrandom() call) and by iterating over the thread stack cache on reclaim_stack. Each opaque state will be in the free states list (grnd_alloc.states) or allocated to a running thread. The cancellation is handled by always using GRND_NONBLOCK flags while calling the vDSO, and falling back to the cancellable syscall if the kernel returns EAGAIN (would block). Since getrandom is not defined by POSIX and cancellation is supported as an extension, the cancellation is handled as 'may occur' instead of 'shall occur' [1], meaning that if vDSO does not block (the expected behavior) getrandom will not act as a cancellation entrypoint. It avoids a pthread_testcancel call on the fast path (different than 'shall occur' functions, like sem_wait()). It is currently enabled for x86_64, which is available in Linux 6.11, and aarch64, powerpc32, powerpc64, loongarch64, and s390x, which are available in Linux 6.12. Link: https://pubs.opengroup.org/onlinepubs/9799919799/nframe.html [1] Co-developed-by: Jason A. Donenfeld <Jason@zx2c4.com> Tested-by: Jason A. Donenfeld <Jason@zx2c4.com> # x86_64 Tested-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> # x86_64, aarch64 Tested-by: Xi Ruoyao <xry111@xry111.site> # x86_64, aarch64, loongarch64 Tested-by: Stefan Liebler <stli@linux.ibm.com> # s390x
2024-11-12io: Add setuid tests for faccessatSiddhesh Poyarekar2-0/+164
Add a new test tst-faccessat-setuid that iterates through real and effective UID/GID combination and tests the faccessat() interface for default and AT_EACCESS flags. Signed-off-by: Siddhesh Poyarekar <siddhesh@sourceware.org> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2024-11-12tst-faccessat.c: Port to libsupportSiddhesh Poyarekar1-156/+65
Use libsupport convenience functions and macros instead of the old test-skeleton. Also add a new xdup() convenience wrapper function. Signed-off-by: Siddhesh Poyarekar <siddhesh@sourceware.org> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2024-11-12support: Add xdupSiddhesh Poyarekar3-0/+32
Add xdup as the error-checking version of dup for test cases. Signed-off-by: Siddhesh Poyarekar <siddhesh@sourceware.org> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2024-11-12LoongArch: Update ulpscaiyinyu1-1/+2
Needed for test-float-cacosh, test-float-csin, test-float32-cacosh and test-float32-csin. Signed-off-by: caiyinyu <caiyinyu@loongson.cn> Reviewed-by: Florian Weimer <fweimer@redhat.com>
2024-11-10stat.h: Fix missing declaration of struct timespecSamuel Thibault1-1/+1
When building with e.g. -std=c99 and _ATFILE_SOURCE, stat.h was missing including bits/types/struct_timespec.h to get the struct timespec declaration for utimensat.
2024-11-09mach: Fix __xpg_strerror_r on in-range but undefined errors [BZ #32350]Samuel Thibault1-2/+12
For instance, 1073741906 leads to system 16, subsystem 0 and code 82, which is in range (max_code is 122), but not defined. Return EINVAL in that case, like
2024-11-08x86/string: Use `movsl` instead of `movsd` [BZ #32344]Noah Goldstein1-1/+1
`ld`, starting at 2.40, emits a warning when using `movsd`. There is no change to the actual code produced. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2024-11-08Rename new tst-sem17 test to tst-sem18Joseph Myers2-3/+3
As noted by Adhemerval, we already have a tst-sem17 in nptl. Tested for x86_64.
2024-11-08Avoid uninitialized result in sem_open when file does not existJoseph Myers3-0/+37
A static analyzer apparently reported an uninitialized use of the variable result in sem_open in the case where the file is required to exist but does not exist. The report appears to be correct; set result to SEM_FAILED in that case, and add a test for it. Note: the test passes for me even without the sem_open fix, I guess because result happens to get value SEM_FAILED (i.e. 0) when uninitialized. Tested for x86_64.
2024-11-07nptl: initialize rseq area prior to registrationMichael Jeanson2-0/+12
Per the rseq syscall documentation, 3 fields are required to be initialized by userspace prior to registration, they are 'cpu_id', 'rseq_cs' and 'flags'. Since we have no guarantee that 'struct pthread' is cleared on all architectures, explicitly set those 3 fields prior to registration. Signed-off-by: Michael Jeanson <mjeanson@efficios.com> Reviewed-by: Florian Weimer <fweimer@redhat.com>
2024-11-07s390x: Update ulpsMark Wielaard1-1/+2
Needed for test-float-cacosh, test-float-csin, test-float32-cacosh and test-float32-csin. Reviewed-by: Florian Weimer <fweimer@redhat.com>
2024-11-07elf: avoid jumping over a needed declarationDJ Delorie1-3/+3
The declaration of found_other_class could be jumped over via the goto just above it, but the code jumped to uses found_other_class. Move the declaration up a bit to ensure it's properly declared and initialized.
2024-11-07math: Fix log10f on some ABIsAdhemerval Zanella1-3/+2
The commit 9247f53219 triggered some regressions on loongarch and riscv: math/test-float-log10 math/test-float32-log10 And it is due a wrong sync with CORE-MATH for special 0.0/-0.0 inputs. Checked on aarch64-linux-gnu and loongarch64-linux-gnu-lp64d.
2024-11-07stdio-common: Add tests for formatted vsnprintf output specifiersMaciej W. Rozycki16-1/+345
Wire vsnprintf into test infrastructure for formatted printf output specifiers. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-11-07stdio-common: Add tests for formatted vsprintf output specifiersMaciej W. Rozycki16-1/+345
Wire vsprintf into test infrastructure for formatted printf output specifiers. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-11-07stdio-common: Add tests for formatted vfprintf output specifiersMaciej W. Rozycki16-1/+315
Wire vfprintf into test infrastructure for formatted printf output specifiers. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-11-07stdio-common: Add tests for formatted vdprintf output specifiersMaciej W. Rozycki16-1/+343
Wire vdprintf into test infrastructure for formatted printf output specifiers. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-11-07stdio-common: Add tests for formatted vasprintf output specifiersMaciej W. Rozycki16-1/+335
Wire vasprintf into test infrastructure for formatted printf output specifiers. Owing to mtrace logging these tests take amounts of time to complete similar to those of corresponding asprintf tests, so set timeouts for the tests accordingly, with a global default for all the vasprintf tests, and then individual higher settings for double and long double tests each. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-11-07stdio-common: Add tests for formatted vprintf output specifiersMaciej W. Rozycki16-1/+315
Wire vprintf into test infrastructure for formatted printf output specifiers. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-11-07stdio-common: Add tests for formatted snprintf output specifiersMaciej W. Rozycki16-1/+341
Wire snprintf into test infrastructure for formatted printf output specifiers. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-11-07stdio-common: Add tests for formatted sprintf output specifiersMaciej W. Rozycki16-1/+341
Wire sprintf into test infrastructure for formatted printf output specifiers. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-11-07stdio-common: Add tests for formatted fprintf output specifiersMaciej W. Rozycki16-1/+310
Wire fprintf into test infrastructure for formatted printf output specifiers. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-11-07stdio-common: Add tests for formatted dprintf output specifiersMaciej W. Rozycki16-1/+339
Wire dprintf into test infrastructure for formatted printf output specifiers. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-11-07stdio-common: Add tests for formatted asprintf output specifiersMaciej W. Rozycki16-1/+331
Wire asprintf into test infrastructure for formatted printf output specifiers. Owing to mtrace logging of lots of memory allocation calls these tests take a considerable amount of time to complete, except for the character conversion, taking from 00m20s for 'tst-printf-format-as-s --direct s', through 01m10s and 03m53s for 'tst-printf-format-as-char --direct i' and 'tst-printf-format-as-double --direct f' respectively, to 19m24s for 'tst-printf-format-as-ldouble --direct f', all in standalone execution from NFS on a RISC-V FU740@1.2GHz system and with output redirected over 100Mbps network via SSH. It is with the skeleton's stub implementation of dladdr(3); execution times with regular dladdr(3) are up to over twice longer. Set timeouts for the tests accordingly then, with a global default for all the asprintf tests, and then individual higher settings for double and long double tests each. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-11-07stdio-common: Add tests for formatted printf output specifiersMaciej W. Rozycki47-0/+2027
This is a collection of tests for formatted printf output specifiers covering the d, i, o, u, x, and X integer conversions, the e, E, f, F, g, and G floating-point conversions, the c character conversion, and the s string conversion. Also the hh, h, l, and ll length modifiers are covered with the integer conversions as is the L length modifier with the floating-point conversions. The -, +, space, #, and 0 flags are iterated over, as permitted by the conversion handled, in tuples of 1..5, including tuples with repetitions of 2, and combined with field width and/or precision, again as permitted by the conversion. The resulting format string is then used to produce output from respective sets of input data corresponding to the specific conversion under test. POSIX extensions beyond ISO C are not used. Output is produced in the form of records which include both the format string (and width and/or precision where given in the form of separate arguments) and the conversion result, and is verified with GNU AWK using the format obtained from each such record against the reference value also supplied, relying on the fact that GNU AWK has its own independent implementation of format processing, striving to be ISO C compatible. In the course of implementation I have determined that in the non-bignum mode GNU AWK uses system sprintf(3) for the floating-point conversions, defeating the objective of doing the verification against an independent implementation. Additionally the bignum mode (using MPFR) is required to correctly output wider integer and floating-point data. Therefore for the conversions affected the relevant shell scripts sanity-check AWK and terminate with unsupported status if the bignum mode is unavailable for floating-point data or where data is output incorrectly. The f and F floating-point conversions are build-time options for GNU AWK, depending on the environment, so they are probed for before being used. Similarly the a and A floating-point conversions, however they are currently not used, see below. Also GNU AWK does not handle the b or B integer conversions at all at the moment, as at 5.3.0. Support for the a, A, b, and B conversions can however be easily added following the approach taken for the f and F conversions. Output produced by gawk for the a and A floating-point conversions does not match one produced by us: insufficient precision is used where one hasn't been explicitly given, e.g. for the negated maximum finite IEEE 754 64-bit value of -1.79769313486231570814527423731704357e+308 and "%a" format we produce -0x1.fffffffffffffp+1023 vs gawk's -0x1.000000p+1024 and a different exponent is chosen otherwise, such as with "%.a" where we output -0x2p+1023 vs gawk's -0x1p+1024 for the same value, or "%.20a" where -0x1.fffffffffffff0000000p+1023 is our output, but gawk produces -0xf.ffffffffffff80000000p+1020 instead. Consequently I chose not to include a and A conversions in testing at this time. And last but not least there are numerous corner cases that GNU AWK does not handle correctly, which are worked around by explicit handling in the AWK script. These are in particular: - extraneous leading 0 produced for the alternative form with the o conversion, e.g. { printf "%#.2o", 1 } produces "001" rather than "01", - unexpected 0 produced where no characters are expected for the input of 0 and the alternative form with the precision of 0 and the integer hexadecimal conversions, e.g. { printf "%#.x", 0 } produces "0" rather than "", - missing + character in the non-bignum mode only for the input of 0 with the + flag, precision of 0 and the signed integer conversions, e.g. { printf "%+.i", 0 } produces "" rather than "+", - missing space character in the non-bignum mode only for the input of 0 with the space flag, precision of 0 and the signed integer conversions, e.g. { printf "% .i", 0 } produces "" rather than " ", - for released gawk versions of up to 4.2.1 missing - character for the input of -NaN with the floating-point conversions, e.g. { printf "%e", "-nan" }' produces "nan" rather than "-nan", - for released gawk versions from 5.0.0 onwards + character output for the input of -NaN with the floating-point conversions, e.g. { printf "%e", "-nan" }' produces "+nan" rather than "-nan", - for released gawk versions from 5.0.0 onwards + character output for the input of Inf or NaN in the absence of the + or space flags with the floating-point conversions, e.g. { printf "%e", "inf" }' produces "+inf" rather than "inf", - for released gawk versions of up to 4.2.1 missing + character for the input of Inf or NaN with the + flag and the floating-point conversions, e.g. { printf "%+e", "inf" }' produces "inf" rather than "+inf", - for released gawk versions of up to 4.2.1 missing space character for the input of Inf or NaN with the space flag and the floating-point conversions, e.g. { printf "% e", "nan" }' produces "nan" rather than " nan", - for released gawk versions from 5.0.0 onwards + character output for the input of Inf or NaN with the space flag and the floating-point conversions, e.g. { printf "% e", "inf" }' produces "+inf" rather than " inf", - for released gawk versions from 5.0.0 onwards the field width is ignored for the input of Inf or NaN and the floating-point conversions, e.g. { printf "%20e", "-inf" }' produces "-inf" rather than " -inf", NB for released gawk versions of up to 4.2.1 floating-point conversion issues apply to the bignum mode only, as in the non-bignum mode system sprintf(3) is used. As from version 5.0.0 specialized handling has been added for [-]Inf and [-]NaN inputs and the issues listed apply to both modes. The '--posix' flag makes gawk versions from 5.0.0 onwards avoid the issue with field width and the + character unconditionally output for the input of Inf or NaN, however not the remaining issues and then the 'gensub' function is not supported in the POSIX mode, so to go this path I deemed not worth it. Each test completes within single seconds except for the long double one. There the F/f formats produce a large number of digits, which appears to be computationally intensive and CPU-bound. Standalone execution time for 'tst-printf-format-p-ldouble --direct f' is in the range of 00m36s for POWER9@2.166GHz and 09m52s for FU740@1.2GHz and output redirected locally to /dev/null, and 10m11s for FU740 and output redirected over 100Mbps network via SSH to /dev/null, so the throughput of the network adds very little (~3.2% in this case) to the processing time. This is with IEEE 754 quad. So I have scaled the timeout for 'tst-printf-format-skeleton-ldouble' accordingly. Regardless, following recent practice the test has been added to the standard rather than extended set. However, unlike most of the remaining tests it has been split by the conversion specifier, so as to allow better parallelization of this long-running test. As a side effect this lets the test report the unsupported status for the F/f conversions where applicable, so 'tst-printf-format-p-double' has been split for consistency as well. Only printf itself is handled at the moment, but the infrastructure provides for all the printf family functions to be verified, changes for which to be supplied separately. The complication around having some tests iterating over all the relevant conversion specifiers and other verifying conversion specifiers individually combined with iterating over printf family functions has hit a peculiarity in GNU make where the use of multiple targets with a pattern rule is handled differently from such use with an ordinary rule. Consequently it seems impossible to bulk-define a pattern rule using '$(foreach ...)', where each target would simply trigger the recipe according to the pattern and matching dependencies individually (such a rule does work, but implies all targets to be updated with a single recipe execution). Therefore as a compromise a single single-target pattern rule has been defined that has listed all the conversion-specific scripts and all the test executables as dependencies. Consequently tests will be rerun in the absence of changes to their actual sources or scripts whenever an unrelated file has changed that has been listed. Also all the formatted printf output tests will always be built whenever any single one is to be run. This only affects test development and not test runs in the field, though it does change the order of execution of the individual steps and also acts as a Makefile barrier in parallel runs. As the execution time dominates the compilation time for these tests it is not seen as a serious shortcoming. As pointed out by Florian Weimer <fweimer@redhat.com> the malloc tracing facility can take a substantial amount of time in calling dladdr(3) to determine the caller's location. This is not needed by the verification made with these tests, so I chose to interpose the symbol with a stub implementation that always fails in the shared skeleton. We have total control over the test environment, so I think it is a safe and minimal impact approach. If there's ever anything else added to the tests that would actually rely on dladdr(3) returning usable results, only then we can think of a different approach. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-11-07nptl: fix __builtin_thread_pointer detection on LoongArchcaiyinyu2-9/+3
Signed-off-by: caiyinyu <caiyinyu@loongson.cn>
2024-11-06math: Fix incorrect results of exp10m1f with some GCC versionsFlorian Weimer2-2/+2
On GCC 11 (x86-64), the previous code produced test failures like this one: Failure: Test: exp10m1_towardzero (-0x1.1p+4) Result: is: -1.00000000e+00 -0x1.000000p+0 should be: -9.99999940e-01 -0x1.fffffep-1 difference: 5.96046447e-08 0x1.000000p-24 ulp : 1.0000 max.ulp : 0.0000 Apply a similar fix to exp2m1f. Co-authored-by: Paul Zimmermann <Paul.Zimmermann@inria.fr> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2024-11-06misc: Align argument name for pkey_*() functions with the manualYury Khrustalev2-7/+7
Change name of the access_rights argument to access_restrictions of the following functions: - pkey_alloc() - pkey_set() as this argument refers to access restrictions rather than access rights and previous name might have been misleading. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2024-11-06manual: Use more precise wording for memory protection keysYury Khrustalev1-27/+31
Update the name of the argument in several pkey_*() functions that refers to access restrictions rather than access rights: change access "rights" to access "restrictions". Specify that the result of the pkey_get() should be checked using bitwise operations rather than plain equals comparison. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2024-11-06elf: Switch to main malloc after final ld.so self-relocationFlorian Weimer6-16/+99
Before commit ee1ada1bdb8074de6e1bdc956ab19aef7b6a7872 ("elf: Rework exception handling in the dynamic loader [BZ #25486]"), the previous order called the main calloc to allocate a shadow GOT/PLT array for auditing support. This happened before libc.so.6 ELF constructors were run, so a user malloc could run without libc.so.6 having been initialized fully. One observable effect was that environ was NULL at this point. It does not seem to be possible at present to trigger such an allocation, but it seems more robust to delay switching to main malloc after ld.so self-relocation is complete. The elf/tst-rtld-no-malloc-audit test case fails with a 2.34-era glibc that does not have this fix. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-11-06elf: Introduce _dl_relocate_object_no_relroFlorian Weimer2-10/+21
And make _dl_protect_relro apply RELRO conditionally. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-11-06elf: Do not define consider_profiling, consider_symbind as macrosFlorian Weimer1-6/+2
This avoids surprises when refactoring the code if these identifiers are re-used later in the file. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-11-06elf: rtld_multiple_ref is always trueFlorian Weimer1-56/+48
For a long time, libc.so.6 has dependend on ld.so, which means that there is a reference to ld.so in all processes, and rtld_multiple_ref is always true. In fact, if rtld_multiple_ref were false, some of the ld.so setup code would not run. Reviewed-by: DJ Delorie <dj@redhat.com>
2024-11-05Add Arm HWCAP2_* constants from Linux 3.15 and 6.2 to <bits/hwcap.h>Aurelien Jarno1-0/+8
Linux 3.15 and 6.2 added HWCAP2_* values for Arm. These bits have already been added to dl-procinfo.{c,h} in commits 9aea0cb842f02 and 8ebe9c0b38a9. Also add them to <bits/hwcap.h> so that they can be used in user code. For example, for checking bits in the value returned by getauxval(AT_HWCAP2). Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Reviewed-by: Yury Khrustalev <yury.khrustalev@arm.com>
2024-11-04Add feature test macro _ISOC2Y_SOURCELenard Mollenkopf3-5/+32
This patch starts preparation for C2Y support in glibc headers by adding a feature test macro _ISOC2Y_SOURCE and corresponding __GLIBC_USE (ISOC2Y). (I mostly copied the work of Joseph Myers for C2X). As with other such macros, C2Y features are also enabled by compiling for a standard newer than C23, or by using _GNU_SOURCE. This patch does not itself enable anything new in the headers for C2Y; that is to be done in followup patches. (For example an implementation of WG14 N3349.) Once C2Y becomes an actual standard we'll presumably move to using the actual year in the feature test macro and __GLIBC_USE, with some period when both macro spellings are accepted, as was done with _ISOC2X_SOURCE. Tested for x86_64. Signed-off-by: Lenard Mollenkopf <glibc@lenardmollenkopf.de>
2024-11-04added license for sysdeps/ieee754/flt-32/e_gammaf_r.cPaul Zimmermann1-0/+23
2024-11-01AArch64: Remove SVE erf and erfc tablesJoe Ramsay16-2691/+50
By using a combination of mask-and-add instead of the shift-based index calculation the routines can share the same table as other variants with no performance degradation. The tables change name because of other changes in downstream AOR. Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>