aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* [Gentoo] Enable nss-systemd in nsswitch.confgentoo/glibc-2.32-8gentoo/2.32Andreas K. Hüttel2021-02-271-2/+2
| | | | | | | | | See https://bugs.gentoo.org/768366 https://www.freedesktop.org/software/systemd/man/nss-systemd.html Bug: https://bugs.gentoo.org/768366 Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* gconv: Fix assertion failure in ISO-2022-JP-3 module (bug 27256)gentoo/glibc-2.32-7Florian Weimer2021-02-273-20/+178
| | | | | | | | | | | | | | | | | | | | The conversion loop to the internal encoding does not follow the interface contract that __GCONV_FULL_OUTPUT is only returned after the internal wchar_t buffer has been filled completely. This is enforced by the first of the two asserts in iconv/skeleton.c: /* We must run out of output buffer space in this rerun. */ assert (outbuf == outerr); assert (nstatus == __GCONV_FULL_OUTPUT); This commit solves this issue by queuing a second wide character which cannot be written immediately in the state variable, like other converters already do (e.g., BIG5-HKSCS or TSCII). Reported-by: Tavis Ormandy <taviso@gmail.com> (cherry picked from commit 7d88c6142c6efc160c0ee5e4f85cde382c072888) (cherry picked from commit 760e1d287825fa91d4d5a0cc921340c740d803e2)
* aarch64: fix static PIE start code for BTI [BZ #27068]Guillaume Gardet2021-02-271-0/+1
| | | | | | | | | | A bti c was missing from rcrt1.o which made all -static-pie binaries fail at program startup on BTI enabled systems. Fixes bug 27068. (cherry picked from commit d4136903a29baabeec8987b53081def8b4a49826) (cherry picked from commit d3cb8f6222a3cb955712b720d7c0c0dba37898f9)
* aarch64: Use mmap to add PROT_BTI instead of mprotect [BZ #26831]Szabolcs Nagy2021-02-273-19/+43
| | | | | | | | | | | | | | | | | | | | | | | Re-mmap executable segments if possible instead of using mprotect to add PROT_BTI. This allows using BTI protection with security policies that prevent mprotect with PROT_EXEC. If the fd of the ELF module is not available because it was kernel mapped then mprotect is used and failures are ignored. To protect the main executable even when mprotect is filtered the linux kernel will have to be changed to add PROT_BTI to it. The delayed failure reporting is mainly needed because currently _dl_process_gnu_properties does not propagate failures such that the required cleanups happen. Using the link_map_machine struct for error propagation is not ideal, but this seemed to be the least intrusive solution. Fixes bug 26831. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> (cherry picked from commit cd543b5eb3642d76e365a131ce676f31fe3f1dd4) (cherry picked from commit 33dc30bc838b12183744746de102da8b76b9b1d0)
* elf: Pass the fd to note processingSzabolcs Nagy2021-02-276-18/+21
| | | | | | | | | | | | | | | | To handle GNU property notes on aarch64 some segments need to be mmaped again, so the fd of the loaded ELF module is needed. When the fd is not available (kernel loaded modules), then -1 is passed. The fd is passed to both _dl_process_pt_gnu_property and _dl_process_pt_note for consistency. Target specific note processing functions are updated accordingly. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> (cherry picked from commit c00452d7757a300931ee186d043c43b48eeb0875) (cherry picked from commit 46e1e64fe3ea90f3b32bf38eb15edd94e2a428cd)
* elf: Move note processing after l_phdr is updatedSzabolcs Nagy2021-02-271-15/+15
| | | | | | | | | | | | | | | | | | | | | | Program headers are processed in two pass: after the first pass load segments are mmapped so in the second pass target specific note processing logic can access the notes. The second pass is moved later so various link_map fields are set up that may be useful for note processing such as l_phdr. The second pass should be before the fd is closed so that is available. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> (cherry picked from commit 38a3836011f3fe3290a94ab136dcb5f3c5c9f4e2) elf: Fix dl-load.c Rebasing broke commit 38a3836011f3fe3290a94ab136dcb5f3c5c9f4e2 it was supposed to move code. (cherry picked from commit 751acde7ec335506b54e94ed6f2c998f6c0a22c6) (cherry picked from commit b6eae83717d1b272b3dc0f5eb59354ca6ffe4dde)
* aarch64: align address for BTI protection [BZ #26988]Szabolcs Nagy2021-02-271-6/+8
| | | | | | | | | | | | | | Handle unaligned executable load segments (the bfd linker is not expected to produce such binaries, but other linkers may). Computing the mapping bounds follows _dl_map_object_from_fd more closely now. Fixes bug 26988. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> (cherry picked from commit 8b8f616e6a594b91d0afb152384bf2a9f72b7288) (cherry picked from commit c6090dcebd1fc2a39a95b6fd420e072a2039a81b)
* aarch64: Fix missing BTI protection from dependencies [BZ #26926]Szabolcs Nagy2021-02-271-2/+15
| | | | | | | | | | | | | | The _dl_open_check and _rtld_main_check hooks are not called on the dependencies of a loaded module, so BTI protection was missed on every module other than the main executable and directly dlopened libraries. The fix just iterates over dependencies to enable BTI. Fixes bug 26926. (cherry picked from commit 72739c79f61989a76b7dd719f34fcfb7b8eadde9) (cherry picked from commit 610e2c515045a5924f28d8c4fb0a5ddacc90980a)
* x86: Check IFUNC definition in unrelocated executable [BZ #20019]H.J. Lu2021-02-276-25/+32
| | | | | | | | | | | | | | | | | | | | | | | | | Calling an IFUNC function defined in unrelocated executable also leads to segfault. Issue a fatal error message when calling IFUNC function defined in the unrelocated executable from a shared library. On x86, ifuncmain6pie failed with: [hjl@gnu-cfl-2 build-i686-linux]$ ./elf/ifuncmain6pie --direct ./elf/ifuncmain6pie: IFUNC symbol 'foo' referenced in '/export/build/gnu/tools-build/glibc-32bit/build-i686-linux/elf/ifuncmod6.so' is defined in the executable and creates an unsatisfiable circular dependency. [hjl@gnu-cfl-2 build-i686-linux]$ readelf -rW elf/ifuncmod6.so | grep foo 00003ff4 00000706 R_386_GLOB_DAT 0000400c foo_ptr 00003ff8 00000406 R_386_GLOB_DAT 00000000 foo 0000400c 00000401 R_386_32 00000000 foo [hjl@gnu-cfl-2 build-i686-linux]$ Remove non-JUMP_SLOT relocations against foo in ifuncmod6.so, which trigger the circular IFUNC dependency, and build ifuncmain6pie with -Wl,-z,lazy. (cherry picked from commits 6ea5b57afa5cdc9ce367d2b69a2cebfb273e4617 and 7137d682ebfcb6db5dfc5f39724718699922f06c) (cherry picked from commit 4c619b3eed558172198790f842740abb9af1989d)
* x86: Set header.feature_1 in TCB for always-on CET [BZ #27177]H.J. Lu2021-02-274-1/+12
| | | | | | | | Update dl_cet_check() to set header.feature_1 in TCB when both IBT and SHSTK are always on. (cherry picked from commit 2ef23b520597f4ea1790a669b83e608f24f4cf12) (cherry picked from commit 87450ecf8a80fa0572ec3a99abad30d11b5ccd4b)
* Update for [BZ #27130] fixH.J. Lu2021-02-271-0/+1
| | | | (cherry picked from commit 2b4f67c2b33b545eac6a921fe08d0499ca679df3)
* x86-64: Avoid rep movsb with short distance [BZ #27130]H.J. Lu2021-02-271-0/+21
| | | | | | | | | | | | | | | | | | | | When copying with "rep movsb", if the distance between source and destination is N*4GB + [1..63] with N >= 0, performance may be very slow. This patch updates memmove-vec-unaligned-erms.S for AVX and AVX512 versions with the distance in RCX: cmpl $63, %ecx // Don't use "rep movsb" if ECX <= 63 jbe L(Don't use rep movsb") Use "rep movsb" Benchtests data with bench-memcpy, bench-memcpy-large, bench-memcpy-random and bench-memcpy-walk on Skylake, Ice Lake and Tiger Lake show that its performance impact is within noise range as "rep movsb" is only used for data size >= 4KB. (cherry picked from commit 3ec5d83d2a237d39e7fd6ef7a0bc8ac4c171a4a5) (cherry picked from commit 1a24bbd43e483650c7ac622f600f755229c90d23)
* Fix buffer overrun in EUC-KR conversion module (bz #24973)gentoo/glibc-2.32-6Andreas Schwab2021-01-074-9/+59
| | | | | | | | | | The byte 0xfe as input to the EUC-KR conversion denotes a user-defined area and is not allowed. The from_euc_kr function used to skip two bytes when told to skip over the unknown designation, potentially running over the buffer end. (cherry picked from commit ee7a3144c9922808181009b7b3e50e852fb4999b) (cherry picked from commit 0d9793e82a19bcef10ef7d73a26cd44b7ad30753)
* alpha: Provide wait4 for static library [BZ #27150]Adhemerval Zanella2021-01-051-0/+2
| | | | | | | | | | | | | | This ia regression from 09153638cfef91, versioned_symbol acts as weak_alias for !SHARED but it is undefined to avoid non versioned alias from the generic implementation. Checked with a build for alpha-linux-gnu. (cherry picked from commit 6cc992412cd8c8555ca5d67fa2b994e38ccb6c1f) Reported-by: Yoshihiko Iwama Bug: https://sourceware.org/PR27150 Bug: https://bugs.gentoo.org/763618
* tests-mcheck: New variable to run tests with MALLOC_CHECK_=3gentoo/glibc-2.32-5Siddhesh Poyarekar2020-12-242-1/+38
| | | | | | | | | | | | | | | | | | This new variable allows various subsystems in glibc to run all or some of their tests with MALLOC_CHECK_=3. This patch adds infrastructure support for this variable as well as an implementation in malloc/Makefile to allow running some of the tests with MALLOC_CHECK_=3. At present some tests in malloc/ have been excluded from the mcheck tests either because they're specifically testing MALLOC_CHECK_ or they are failing in master even without the Memory Tagging patches that prompted this work. Some tests were reviewed and found to need specific error points that MALLOC_CHECK_ defeats by terminating early but a thorough review of all tests is needed to bring them into mcheck coverage. Backported from 4f969166ce4ab535fa798dcbaa5de4c4e05773ec.
* alpha: Remove anonymous union in struct stat [BZ #27042]Matt Turner2020-12-243-63/+66
| | | | | | | | | | | | This is clever, but it confuses downstream detection in at least zstd and GNOME's glib. zstd has preprocessor tests for the 'st_mtime' macro, which is not provided by the path using the anonymous union; glib checks for the presence of 'st_mtimensec' in struct stat but then tries to access that field in struct statx (which might be a bug on its own). Checked with a build for alpha-linux-gnu. (cherry picked from commit d552058570ea2c00fb88b4621be3285cda03033f)
* iconv: Fix incorrect UCS4 inner loop bounds (BZ#26923)gentoo/glibc-2.32-4Michael Colavita2020-12-083-13/+55
| | | | | | | | | | | | | | | | | | | Previously, in UCS4 conversion routines we limit the number of characters we examine to the minimum of the number of characters in the input and the number of characters in the output. This is not the correct behavior when __GCONV_IGNORE_ERRORS is set, as we do not consume an output character when we skip a code unit. Instead, track the input and output pointers and terminate the loop when either reaches its limit. This resolves assertion failures when resetting the input buffer in a step of iconv, which assumes that the input will be fully consumed given sufficient output space. (cherry picked from commit 228edd356f03bf62dcf2b1335f25d43c602ee68d) Reported-by: Sam James Bug: https://bugs.gentoo.org/758359
* x86: Harden printf against non-normal long double values (bug 26649)Florian Weimer2020-12-083-0/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The behavior of isnan/__builtin_isnan on bit patterns that do not correspond to something that the CPU would produce from valid inputs is currently under-defined in the toolchain. (The GCC built-in and glibc disagree.) The isnan check in PRINTF_FP_FETCH in stdio-common/printf_fp.c assumes the GCC behavior that returns true for non-normal numbers which are not specified as NaN. (The glibc implementation returns false for such numbers.) At present, passing non-normal numbers to __mpn_extract_long_double causes this function to produce irregularly shaped multi-precision integers, triggering undefined behavior in __printf_fp_l. With GCC 10 and glibc 2.32, this behavior is not visible because __builtin_isnan is used, which avoids calling __mpn_extract_long_double in this case. This commit updates the implementation of __mpn_extract_long_double so that regularly shaped multi-precision integers are produced in this case, avoiding undefined behavior in __printf_fp_l. (cherry picked from commit 681900d29683722b1cb0a8e565a0585846ec5a61) Reported-by: Sam James Bug: https://bugs.gentoo.org/758359
* x86: Fix THREAD_SELF definition to avoid ld.so crash (bug 27004)Jakub Jelinek2020-12-082-2/+12
| | | | | | | | | | | | | | | The previous definition of THREAD_SELF did not tell the compiler that %fs (or %gs) usage is invalid for the !DL_LOOKUP_GSCOPE_LOCK case in _dl_lookup_symbol_x. As a result, ld.so could try to use the TCB before it was initialized. As the comment in tls.h explains, asm volatile is undesirable here. Using the __seg_fs (or __seg_gs) namespace does not interfere with optimization, and expresses that THREAD_SELF is potentially trapping. (cherry picked from commit 1d9cbb96082e646de7515a1667efa041ffb79958) Added to Gentoo for gcc-11 compatibility.
* __vfscanf_internal: fix aliasing violation (bug 26690)gentoo/glibc-2.32-3Andreas Schwab2020-12-071-11/+11
| | | | | | | | | | | | | As noted in <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97264>, the cast in the call to the read_int function is an aliasing violation. Change the type of local variable f to a pointer to unsigned, which allows to eliminate most casts while only adding three new ones. (cherry picked from commit c0e9ddf59e73e21afe15fca4e94cf7b4b7359bf2) Reported-by: andy Bug: https://bugs.gentoo.org/750992 Bug: https://sourceware.org/PR26690
* linux: Allow adjtime with NULL argument [BZ #26833]Adhemerval Zanella2020-12-073-4/+54
| | | | | | | | | | | | | | | | The adjtime interface allows return the amount of time remaining from any previous adjustment that has not yet been completed by passing a NULL as first argument. This was introduced with y2038 support 0308077e3a. Checked on i686-linux-gnu. Reviewed-by: Lukasz Majewski <lukma@denx.de> (cherry picked from commit 75a193b7611bade31a150dfcc528b973e3d46231) Reported-by: Tobias Leupold Bug: https://bugs.gentoo.org/756316 Bug: https://sourceware.org/PR26833
* iconv: Accept redundant shift sequences in IBM1364 [BZ #26224]Arjun Shankar2020-12-073-18/+18
| | | | | | | | | | | | | | | | The IBM1364, IBM1371, IBM1388, IBM1390 and IBM1399 character sets share converter logic (iconvdata/ibm1364.c) which would reject redundant shift sequences when processing input in these character sets. This led to a hang in the iconv program (CVE-2020-27618). This commit adjusts the converter to ignore redundant shift sequences and adds test cases for iconv_prog hangs that would be triggered upon their rejection. This brings the implementation in line with other converters that also ignore redundant shift sequences (e.g. IBM930 etc., fixed in commit 692de4b3960d). Reviewed-by: Carlos O'Donell <carlos@redhat.com> (cherry picked from commit 9a99c682144bdbd40792ebf822fe9264e0376fb5)
* sh: Add sh4 fpu Implies folderAdhemerval Zanella2020-12-075-0/+5
| | | | | | | | | | | | | The commit 605f38177db (sh: Split BE/LE abilist) did not take in consideration the SH4 fpu support. Checked with a build for sh4-linux-gnu and manually checked that the implementations at sysdeps/sh/sh4/fpu/ are selected. John Paul Adrian Glaubitz also confirmed it fixes the build issues he encontered. (cherry-picked from 9ff2674ef82eccd5ae5dfa6bb733c0e3613764c6)
* struct _Unwind_Exception alignment should not depend on compiler flagsFlorian Weimer2020-12-071-9/+15
| | | | | | | | | | | | | | __attribute__((__aligned__)) selects an alignment that depends on the micro-architecture selected by GCC flags. Enabling vector extensions may increase the allignment. This is a problem when building glibc as a collection of ELF multilibs with different GCC flags because ld.so and libc.so/libpthread.so/&c may end up with a different layout of struct pthread because of the changing offset of its struct _Unwind_Exception field. Tested-By: Matheus Castanho <msc@linux.ibm.com> (cherry picked from commit 30af7c7fa13e17d82c3f1f91536384715844f432)
* resolv: Serialize processing in resolv/tst-resolv-txnid-collisionFlorian Weimer2020-12-071-0/+5
| | | | | | | | | | | | | When switching name servers, response processing by two server threads clobbers the global test state. (There is still some risk that this test is negatively impact by packet drops and packet reordering, but this applies to many of the resolver tests and is difficult to avoid.) Fixes commit f1f00c072138af90ae6da180f260111f09afe7a3 ("resolv: Handle transaction ID collisions in parallel queries (bug 26600)"). (cherry picked from commit b8b53b338f6da91e86d115a39da860cefac736ad)
* resolv: Handle transaction ID collisions in parallel queries (bug 26600)Florian Weimer2020-12-074-20/+357
| | | | | | | | If the transaction IDs are equal, the old check attributed both responses to the first query, not recognizing the second response. This fixes bug 26600. (cherry picked from commit f1f00c072138af90ae6da180f260111f09afe7a3)
* support: Provide a way to clear the RA bit in DNS server responsesFlorian Weimer2020-12-072-1/+7
| | | | (cherry picked from commit 08443b19965f48862b02c2fd7b33a39d66daf2ff)
* support: Provide a way to reorder responses within the DNS test serverFlorian Weimer2020-12-075-28/+135
| | | | (cherry picked from commit 873e239a4c3d8ec235c27439c1bdc5bbf8aa1818)
* Remove __warndeclSiddhesh Poyarekar2020-12-073-74/+1
| | | | | | | | The macro is not used anymore, so remove it and warning-nop.c. Reviewed-by: Florian Weimer <fweimer@redhat.com> (cherry-picked from 34aec973e15a81926198f4b71ff99081dff87a92)
* Remove __warn_memset_zero_len [BZ #25399]Siddhesh Poyarekar2020-12-071-15/+0
| | | | | | | | | | | | | | | | Non-gcc compilers (clang and possibly other compilers that do not masquerade as gcc 5.0 or later) are unable to use __warn_memset_zero_len since the symbol is no longer available on glibc built with gcc 5.0 or later. While it was likely an oversight that caused this omission, the fact that it wasn't noticed until recently (when clang closed the gap on _FORTIFY_SUPPORT) that the symbol was missing. Given that both gcc and clang are capable of doing this check in the compiler, drop all remaining signs of __warn_memset_zero_len from glibc so that no more objects are built with this symbol in future. (cherry-picked from dc274b141666766b8ef70992d887e3c0c5e41bed)
* aarch64: Add unwind information to _start (bug 26853)Florian Weimer2020-12-072-4/+4
| | | | | | | | | This adds CFI directives which communicate that the stack ends with this function. Fixes bug 26853. (cherry picked from commit 5edf3d9fd6efe06fda37b2a460e60690a90457a4)
* aarch64: Fix DT_AARCH64_VARIANT_PCS handling [BZ #26798]Szabolcs Nagy2020-12-071-8/+4
| | | | | | | | | | | | | | | The variant PCS support was ineffective because in the common case linkmap->l_mach.plt == 0 but then the symbol table flags were ignored and normal lazy binding was used instead of resolving the relocs early. (This was a misunderstanding about how GOT[1] is setup by the linker.) In practice this mainly affects SVE calls when the vector length is more than 128 bits, then the top bits of the argument registers get clobbered during lazy binding. Fixes bug 26798. (cherry picked from commit 558251bd8785760ad40fcbfeaaee5d27fa5b0fe4)
* x86: Optimizing memcpy for AMD Zen architecture.Sajan Karumanchi2020-10-301-3/+17
| | | | | | | | | | | | | | | | | | | | Modifying the shareable cache '__x86_shared_cache_size', which is a factor in computing the non-temporal threshold parameter '__x86_shared_non_temporal_threshold' to optimize memcpy for AMD Zen architectures. In the existing implementation, the shareable cache is computed as 'L3 per thread, L2 per core'. Recomputing this shareable cache as 'L3 per CCX(Core-Complex)' has brought in performance gains. As per the large bench variant results, this patch also addresses the regression problem on AMD Zen architectures. Backport of commit 59803e81f96b479c17f583b31eac44b57591a1bf upstream, with the fix from cb3a749a22a55645dc6a52659eea765300623f98 ("x86: Restore processing of cache size tunables in init_cacheinfo") applied. Reviewed-by: Premachandra Mallappa <premachandra.mallappa@amd.com> Co-Authored-by: Florian Weimer <fweimer@redhat.com> (cherry picked from commit 8813b2682e4094e43b0cf1634e99619f1b8b2c62)
* Reversing calculation of __x86_shared_non_temporal_thresholdPatrick McGehearty2020-10-302-6/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The __x86_shared_non_temporal_threshold determines when memcpy on x86 uses non_temporal stores to avoid pushing other data out of the last level cache. This patch proposes to revert the calculation change made by H.J. Lu's patch of June 2, 2017. H.J. Lu's patch selected a threshold suitable for a single thread getting maximum performance. It was tuned using the single threaded large memcpy micro benchmark on an 8 core processor. The last change changes the threshold from using 3/4 of one thread's share of the cache to using 3/4 of the entire cache of a multi-threaded system before switching to non-temporal stores. Multi-threaded systems with more than a few threads are server-class and typically have many active threads. If one thread consumes 3/4 of the available cache for all threads, it will cause other active threads to have data removed from the cache. Two examples show the range of the effect. John McCalpin's widely parallel Stream benchmark, which runs in parallel and fetches data sequentially, saw a 20% slowdown with this patch on an internal system test of 128 threads. This regression was discovered when comparing OL8 performance to OL7. An example that compares normal stores to non-temporal stores may be found at https://vgatherps.github.io/2018-09-02-nontemporal/. A simple test shows performance loss of 400 to 500% due to a failure to use nontemporal stores. These performance losses are most likely to occur when the system load is heaviest and good performance is critical. The tunable x86_non_temporal_threshold can be used to override the default for the knowledgable user who really wants maximum cache allocation to a single thread in a multi-threaded system. The manual entry for the tunable has been expanded to provide more information about its purpose. modified: sysdeps/x86/cacheinfo.c modified: manual/tunables.texi (cherry picked from commit d3c57027470b78dba79c6d931e4e409b1fecfc80) (cherry picked from commit e61a8fd8fadbf1a8cef997a0f921575cb2905ea2)
* sysvipc: Fix IPC_INFO and SHM_INFO handling [BZ #26636]Adhemerval Zanella2020-10-214-7/+206
| | | | | | | | | | | | | | | | | | Both commands are Linux extensions where the third argument is either a 'struct shminfo' (IPC_INFO) or a 'struct shm_info' (SHM_INFO) instead of 'struct shmid_ds'. And their information does not contain any time related fields, so there is no need to extra conversion for __IPC_TIME64. The regression testcase checks for Linux specifix SysV ipc message control extension. For SHM_INFO it tries to match the values against the tunable /proc values and for MSG_STAT/MSG_STAT_ANY it check if the create\ shared memory is within the global list returned by the kernel. Checked on x86_64-linux-gnu and on i686-linux-gnu (Linux v5.4 and on Linux v4.15). (cherry picked from commit a49d7fd4f764e97ccaf922e433046590ae52fce9) (cherry picked from commit 0b9460d22e285432d232f42c7442a3226e1bf830)
* sysvipc: Fix IPC_INFO and MSG_INFO handling [BZ #26639]Adhemerval Zanella2020-10-214-5/+197
| | | | | | | | | | | | | | | | | | | Both commands are Linux extensions where the third argument is a 'struct msginfo' instead of 'struct msqid_ds' and its information does not contain any time related fields (so there is no need to extra conversion for __IPC_TIME64. The regression testcase checks for Linux specifix SysV ipc message control extension. For IPC_INFO/MSG_INFO it tries to match the values against the tunable /proc values and for MSG_STAT/MSG_STAT_ANY it check if the create message queue is within the global list returned by the kernel. Checked on x86_64-linux-gnu and on i686-linux-gnu (Linux v5.4 and on Linux v4.15). (cherry picked from commit 20a00dbefca5695cccaa44846a482db8ccdd85ab) (cherry picked from commit c4aeedea598a1bd80f52ca9ebd07fe447680d491)
* sysvipc: Fix SEM_STAT_ANY kernel argument pass [BZ #26637]Dmitry V. Levin2020-10-215-1/+194
| | | | | | | | | | | | | | | | | | | Handle SEM_STAT_ANY the same way as SEM_STAT so that the buffer argument of SEM_STAT_ANY is properly passed to the kernel and back. The regression testcase checks for Linux specifix SysV ipc message control extension. For IPC_INFO/SEM_INFO it tries to match the values against the tunable /proc values and for SEM_STAT/SEM_STAT_ANY it check if the create message queue is within the global list returned by the kernel. Checked on x86_64-linux-gnu and on i686-linux-gnu (Linux v5.4 and on Linux v4.15). Co-authored-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> (cherry picked from commit 574500a108be1d2a6a0dc97a075c9e0a98371aba) (cherry picked from commit 9b139b6b81a5def91bec01f30301acc95fbf0289)
* AArch64: Use __memcpy_simd on Neoverse N2/V1Wilco Dijkstra2020-10-213-2/+8
| | | | | | | | | Add CPU detection of Neoverse N2 and Neoverse V1, and select __memcpy_simd as the memcpy/memmove ifunc. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> (cherry picked from commit e11ed9d2b4558eeacff81557dc9557001af42a6b) (cherry picked from commit 81c5484d93a7768a8acc4cfdc228d925d60cd906)
* AArch64: Improve backwards memmove performanceWilco Dijkstra2020-10-211-3/+4
| | | | | | | | | | On some microarchitectures performance of the backwards memmove improves if the stores use STR with decreasing addresses. So change the memmove loop in memcpy_advsimd.S to use 2x STR rather than STP. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> (cherry picked from commit bd394d131c10c9ec22c6424197b79410042eed99) (cherry picked from commit 0f8f0ed25c196cfb93edf461aefdad15314ae05c)
* Set version.h RELEASE to "stable" (Bug 26700)Carlos O'Donell2020-10-211-1/+1
| | | | | | | | | The RELEASE macro was accidentaly set to "release" instead of the expected "stable" by the release manager. This is a mistake that leads to the build using "-g -O1" instead of "-g -O2" if configure was executed with "CFLAGS=" (CFLAGS set but empty). (cherry picked from commit 23482f788665df83edc8b542698f45fed45a2711)
* string: Fix strerrorname_np return value [BZ #26555]Adhemerval Zanella2020-10-215-189/+819
| | | | | | | | | | | | | | | | | | It returns the string of the error constant, not its description (as strerrordesc_np). To handle the Hurd error mapping, the ERR_MAP was removed from errlist.h to errlist.c. Also, the testcase test-strerr (added on 325081b9eb2) was not added on the check build neither it builds correctly. This patch also changed it to decouple from errlist.h, the expected return values are added explicitly for both both strerrorname_np and strerrordesc_np directly. Checked on x86_64-linux-gnu and i686-linux-gnu. I also run a make check for i686-gnu. (cherry picked from commit cef95fdc2e4002ee6357d8d40ef73c8d875720e3) (cherry picked from commit 69beb5cbf85cae1c61fe7432500ac10880dc7b07)
* intl: Handle translation output codesets with suffixes [BZ #26383]Arjun Shankar2020-09-278-57/+60
| | | | | | | | | | | | | | | | | | Commit 91927b7c7643 (Rewrite iconv option parsing [BZ #19519]) did not handle cases where the output codeset for translations (via the `gettext' family of functions) might have a caller specified encoding suffix such as TRANSLIT or IGNORE. This led to a regression where translations did not work when the codeset had a suffix. This commit fixes the above issue by parsing any suffixes passed to __dcigettext and adds two new test-cases to intl/tst-codeset.c to verify correct behaviour. The iconv-internal function __gconv_create_spec and the static iconv-internal function gconv_destroy_spec are now visible internally within glibc and used in intl/dcigettext.c. (cherry picked from commit 7d4ec75e111291851620c6aa2c4460647b7fd50d) (cherry picked from commit fe62c4d173f3cc1ac64f01e75a8f421b2f092cdb) Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* NEWS: Update for [BZ #26534] fixgentoo/glibc-2.32-2H.J. Lu2020-09-051-0/+5
| | | | (cherry picked from commit 386543bc4495f658dcce6cd4d11e4ba6574a46f5)
* x86-64: Fix FMA4 detection in ifunc [BZ #26534]Ondřej Hošek2020-09-031-1/+1
| | | | | | | | | | | | | A typo in commit 107e6a3c2212ba7a3a4ec7cae8d82d73f7c95d0b causes the FMA4 code path to be taken on systems that support FMA, even if they do not support FMA4. Fix this to detect FMA4. (cherry picked from commit 23af890b3f04e80da783ba64e6b6d94822e01d54) Reported-by: Sven E. Bug: https://bugs.gentoo.org/740110 Bug: https://sourceware.org/PR26534 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* Fix miscompilation on ia64's gcc-10gentoo/glibc-2.32-1Sergei Trofimovich2020-08-051-1/+3
| | | | | Bug: https://bugs.gentoo.org/723268 Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* Force -O0 in conform tests to survive $CC changesAndreas K. Hüttel2020-08-052-3/+7
| | | | | | | | | | | | | In bug #659030 Gentoo started passing user's CFLAGS via $CC variable. conform tests should but are not ready to handle -O1/-O2 yet. Tests fail to validate headers due to inlining of weak symbol aliases and other problems. Let's force it back to -O0 until it's fixed upstream. Original patch by Sergei, ported to the new python test framework by Andreas Bug: https://bugs.gentoo.org/659030 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
* Add C.UTF-8 localeMike FABIAN2020-08-052-0/+239
| | | | | | | | | | | | | | | | | | | | Source: https://src.fedoraproject.org/rpms/glibc/raw/master/f/glibc-c-utf8-locale.patch Notes from there: This patch needs to upstream as part of Carlos O'Donell <carlos@redhat.com>'s work on enabling upstream C.UTF-8 support. This work is currently blocked on cleaning up the test results to prove that full code-point sorting is working as intended. Note that this patch does not provide full code-point sorting as expected. This patch needs to upstream as soon as possible since it would be nice to have this in F29 and fixed. Further information: https://bugzilla.redhat.com/show_bug.cgi?id=902094 https://sourceware.org/bugzilla/show_bug.cgi?id=17318 https://bugs.gentoo.org/671024
* Adapt to Gentoo-specific /etc/mail/aliasesAndreas K. Hüttel2020-08-053-11/+17
| | | | | | | Patch by pacho2 Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org> (cherry picked from commit 4e616cda056f471b799beba2b1cedc787ad4ecc0)
* Revert " * sysdeps/posix/getaddrinfo.c (gaih_inet): Only use gethostbyname4_r"Andreas K. Hüttel2020-08-052-8/+2
| | | | | | | | | | This reverts commit 8479f23aa1d5e5477a37f46823856bdafaedfa46. See for the background https://sourceware.org/bugzilla/show_bug.cgi?id=16826 https://bugs.gentoo.org/show_bug.cgi?id=600632 This makes tst-nss-files-hosts-multi fail. Disable it.
* Disable ldconfig during installMike Frysinger2020-08-051-0/+1
| | | | | | | | | | Do not bother running ldconfig on DESTDIR. It's a waste of time as we won't use the result (portage will rebuild the cache after install). Also, the Gentoo sandbox does not currently catch chroot() behavior so we end up (incorrectly) flagging it as a violation as a write to /etc. http://sourceware.org/ml/libc-alpha/2012-08/msg00118.html https://bugs.gentoo.org/431038