about summary refs log tree commit diff
path: root/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
* Linux: Add getdents64 system callFlorian Weimer2019-06-071-0/+75
| | | | | | | | | | | No 32-bit system call wrapper is added because the interface is problematic because it cannot deal with 64-bit inode numbers and 64-bit directory hashes. A future commit will deprecate the undocumented getdirentries and getdirentries64 functions. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
* [powerpc] get_rounding_mode: utilize faster method to get rounding modePaul A. Clarke2019-06-061-0/+9
| | | | | | | | | Add support to use 'mffsl' instruction if compiled for POWER9 (or later). Also, mask the result to avoid bleeding unrelated bits into the result of _FPU_GET_RC(). Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
* riscv: Do not use __has_include__Florian Weimer2019-06-061-0/+5
| | | | The user-visible preprocessor construct is called __has_include.
* [powerpc] fegetexcept: utilize function instead of duplicating codePaul A. Clarke2019-06-051-0/+5
| | | | | | | | | | fegetexcept() included code which exactly duplicates the code in fenv_reg_to_exceptions(). Replace with a call to that function. 2019-06-05 Paul A. Clarke <pc@us.ibm.com> * sysdeps/powerpc/fpu/fegetexcept.c (__fegetexcept): Replace code with call to equivalent function.
* iconv: Use __twalk_r in __gconv_release_shlibFlorian Weimer2019-06-041-0/+6
|
* Fix iconv buffer handling with IGNORE error handler (bug #18830)Andreas Schwab2019-06-041-0/+17
|
* Add INADDR_ALLSNOOPERS_GROUP from Linux 5.1 to netinet/in.h.Joseph Myers2019-06-031-0/+4
| | | | | | | | | This patch adds INADDR_ALLSNOOPERS_GROUP from Linux 5.1 to netinet/in.h. Tested for x86_64. * inet/netinet/in.h (INADDR_ALLSNOOPERS_GROUP): New macro.
* Fix data of ChangeLog entryFlorian Weimer2019-06-011-1/+1
|
* arm: Remove ioperm/iopl/inb/inw/inl/outb/outw/outl supportFlorian Weimer2019-06-011-0/+10
| | | | | | | | Linux only supports the required ISA sysctls on StrongARM devices, which are armv4 and no longer tested during glibc development and probably bit-rotted by this point. (No reported test results, and the last discussion of armv4 support was in the glibc 2.19 release notes.)
* Linux: Add oddly-named arm syscalls to syscall-names.listFlorian Weimer2019-06-011-0/+6
| | | | | | | | | | | | | | | | | <asm/unistd.h> on arm defines the following macros: #define __ARM_NR_breakpoint (__ARM_NR_BASE+1) #define __ARM_NR_cacheflush (__ARM_NR_BASE+2) #define __ARM_NR_usr26 (__ARM_NR_BASE+3) #define __ARM_NR_usr32 (__ARM_NR_BASE+4) #define __ARM_NR_set_tls (__ARM_NR_BASE+5) #define __ARM_NR_get_tls (__ARM_NR_BASE+6) These do not follow the regular __NR_* naming convention and have so far been ignored by the syscall-names.list consistency checks. This commit adds these names to the file, preparing for the availability of these names in the regular __NR_* namespace.
* powerpc: Fix build failures with current GCCGabriel F. T. Gomes2019-05-301-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since GCC commit 271500 (svn), also known as the following commit on the git mirror: commit 61edec870f9fdfb5df3fa4e40f28cbaede28a5b1 Author: amodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Wed May 22 04:34:26 2019 +0000 [RS6000] Don't pass -many to the assembler glibc builds are failing when an assembly implementation does not declare the correct '.machine' directive, or when no such directive is declared at all. For example, when a POWER6 instruction is used, but '.machine power6' is not declared, the assembler will fail with an error similar to the following: ../sysdeps/powerpc/powerpc64/power8/strcmp.S: Assembler messages: 24 ../sysdeps/powerpc/powerpc64/power8/strcmp.S:55: Error: unrecognized opcode: `cmpb' This patch adds '.machine powerN' directives where none existed, as well as it updates '.machine power7' directives on POWER8 files, because the minimum binutils version required to build glibc (binutils 2.25) now provides this machine version. It also adds '-many' to the assembler command used to build tst-set_ppr.c. Tested for powerpc, powerpc64, and powerpc64le, as well as with build-many-glibcs.py for powerpc targets. Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
* Remove unused get_clockfreq filesAdhemerval Zanella2019-05-291-0/+6
| | | | | | | | | | | The patch 6e8ba7fd574f meant to remove the all get_clockfreq.c. This patch removes the missing files for sparcv9 and x86_64. Checked against a build to x86_64-linux-gnu and sparcv9-linux-gnu. * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/get_clockfreq.c: Remove file. * sysdeps/unix/sysv/linux/x86_64/get_clockfreq.c: Likewise.
* powerpc: generic nearbyint/nearbyintfAdhemerval Zanella2019-05-281-0/+11
| | | | | | | | | | | | | | This patches consolidates all the powerpc nearbyint{f} implementations on the generic sysdeps/powerpc/fpu/s_nearbyint{f}. * sysdeps/powerpc/fpu/round_to_integer.h (set_fenv_mode): Add NEARBYINT handling. * sysdeps/powerpc/fpu/s_nearbyint.c: New file. * sysdeps/powerpc/fpu/s_nearbyintf.c: Likewise. * sysdeps/powerpc/powerpc32/fpu/s_nearbyint.S: Remove file. * sysdeps/powerpc/powerpc32/fpu/s_nearbyintf.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_nearbyint.S: Likewise. * sysdeps/powerpc/powerpc64/fpu/s_nearbyintf.S: Likewise.
* tt_RU: Add lang_name [BZ #24370]mansayk2019-05-281-0/+5
| | | | | | | This commit adds a lang_name according to CLDR-35.1. [BZ #24370] * localedata/locales/tt_RU (lang_name): Add from CLDR-35.1.
* tt_RU: Fix orthographic mistakes in mon and abmon sections [BZ #24369]mansayk2019-05-281-0/+6
| | | | | | | | | | | This commit fixes some errors and converts all month names to lowercase. The content is synchronized with CLDR-35.1 now but trailing dots are removed from abmon values in order to maintain consistency with the previous values and with many other locales which do the same. [BZ #24369] * localedata/locales/tt_RU (mon): Update from CLDR-35.1, fix errors. (abmon): Likewise, but remove the trailing dots.
* Add IGMP_MRDISC_ADV from Linux 5.1 to netinet/igmp.h.Joseph Myers2019-05-281-0/+4
| | | | | | | | | This patch adds the IGMP_MRDISC_ADV macro from Linux 5.1 to netinet/igmp.h. Tested for x86_64. * inet/netinet/igmp.h (IGMP_MRDISC_ADV): New macro.
* nptl: Add comment to __pthread_get_minstack about external usersFlorian Weimer2019-05-271-0/+4
|
* nss_dns: Check for proper A/AAAA address alignmentFlorian Weimer2019-05-241-0/+5
| | | | Reviewed-by: Carlos O'Donell <carlos@redhat.com>
* Add F_SEAL_FUTURE_WRITE from Linux 5.1 to bits/fcntl-linux.h.Joseph Myers2019-05-231-0/+5
| | | | | | | | | | This patch adds the new F_SEAL_FUTURE_WRITE constant from Linux 5.1 to bits/fcntl-linux.h. Tested for x86_64. * sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_GNU] (F_SEAL_FUTURE_WRITE): New macro.
* elf: Add tst-ldconfig-bad-aux-cache test [BZ #18093]Alexandra Hájková2019-05-231-0/+9
| | | | | | | This test corrupts /var/cache/ldconfig/aux-cache and executes ldconfig to check it will not segfault using the corrupted aux_cache. The test uses the test-in-container framework. Verified no regressions on x86_64.
* Add ChangeLog entry for previous commit.Zack Weinberg2019-05-221-0/+29
|
* Improve string benchtest timingWilco Dijkstra2019-05-211-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | Improve string benchtest timing. Many tests run for 0.01s which is way too short to give accurate results. Other tests take over 40 seconds which is way too long. Significantly increase the iterations of the short running tests. Reduce number of alignment variations in the long running memcpy walk tests so they take less than 5 seconds. As a result most tests take at least 0.1s and all finish within 5 seconds. * benchtests/bench-memcpy-random.c (do_one_test): Use medium iterations. * benchtests/bench-memcpy-walk.c (test_main): Reduce alignment tests. * benchtests/bench-memmem.c (do_one_test): Use small iterations. * benchtests/bench-memmove-walk.c (test_main): Reduce alignment tests. * benchtests/bench-memset-walk.c (test_main): Reduce alignment tests. * benchtests/bench-strcasestr.c (do_one_test): Use small iterations. * benchtests/bench-string.h (INNER_LOOP_ITERS): Increase iterations. (INNER_LOOP_ITERS_MEDIUM): New define. (INNER_LOOP_ITERS_SMALL): New define. * benchtests/bench-strpbrk.c (do_one_test): Use medium iterations. * benchtests/bench-strsep.c (do_one_test): Use small iterations. * benchtests/bench-strspn.c (do_one_test): Use medium iterations. * benchtests/bench-strstr.c (do_one_test): Use small iterations. * benchtests/bench-strtok.c (do_one_test): Use small iterations.
* sysvipc: Add missing bit of semtimedop s390 consolidationAdhemerval Zanella2019-05-211-0/+7
| | | | | | | | | | | | This patch add the missing SEMTIMEDOP_IPC_ARGS definions on powerpc and sparc ipc_priv.h. Checked on powerpc64le-linux-gnu and with a build for sparc64-linux-gnu. * sysdeps/unix/sysv/linux/powerpc/ipc_priv.h (SEMTIMEDOP_IPC_ARGS): New define. * sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h (SEMTIMEDOP_IPC_ARGS): Likewise.
* wcsmbs: Fix data race in __wcsmbs_clone_conv [BZ #24584]Florian Weimer2019-05-211-0/+9
| | | | | This also adds an overflow check and documents the synchronization requirement in <gconv.h>.
* libio: Fix gconv-related memory leak [BZ #24583]Florian Weimer2019-05-211-0/+17
| | | | | | | struct gconv_fcts for the C locale is statically allocated, and __gconv_close_transform deallocates the steps object. Therefore this commit introduces __wcsmbs_close_conv to avoid freeing the statically allocated steps objects.
* libio: Remove codecvt vtable [BZ #24588]Florian Weimer2019-05-201-0/+43
| | | | | | | | | | | | | | The codecvt vtable is not a real vtable because it also contains the conversion state data. Furthermore, wide stream support was added to GCC 3.0, after a C++ ABI bump, so there is no compatibility requirement with libstdc++. This change removes several unmangled function pointers which could be used with a corrupted FILE object to redirect execution. (libio vtable verification did not cover the codecvt vtable.) Reviewed-by: Yann Droneaud <ydroneaud@opteya.com> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
* support: Expose sbindir as support_sbindir_prefixFlorian Weimer2019-05-201-0/+7
|
* support: Add missing EOL terminators on timespecMike Crowe2019-05-201-0/+3
| | | | | | | | | | | | | The original implementations of test_timespec_before_impl and test_timespec_equal_or_after in 519839965197291924895a3988804e325035beee were missing the backslash required for a newline. Checked on x86_64-linux-gnu. * support/timespec.c: Add backslash to correct newline in failure message. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
* support: Correct confusing commentMike Crowe2019-05-201-0/+4
| | | | | | * support/timespec.h: Correct confusing comment. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
* sysvipc: Consolidate semtimedop s390Adhemerval Zanella2019-05-201-0/+7
| | | | | | | | | | | | | | | | | | This patch consolidates the s390-32 semtimedop implementation by defining a arch-specific SEMTIMEDOP_IPC_ARGS to rearrange the arguments expected by s390 Linux kABI. The idea is to avoid have multiples semtimedop implementation changes for Linux v5.1 change to enable wire-up sysvipc support. Checked with a s390-linux-gnu and s390x-linux-gnu and checking that resulting semtimedop objects did not change. * sysdeps/unix/sysv/linux/ipc_priv.h (SEMTIMEDOP_IPC_ARGS): New define. * sysdpes/unix/sysv/linux/s390/ipc_priv.h: New file. * sysdeps/unix/sysv/linux/s390/semtimedop.c: Remove file. * sysdeps/unix/sysv/linux/semtimedop.c (semtimedop): Use SEMTIMEDOP_IPC_ARGS for calls with __NR_ipc.
* sysvipc: Fix compat msgctl (BZ#24570)Adhemerval Zanella2019-05-201-0/+6
| | | | | | | | | | | | The __IPC64 flags is meant to be used to enable the new sysv struct format when the architectures supports it (ARCH_WANT_IPC_PARSE_VERSION config flag on Linux kernel). This currently issue only affects alpha. [BZ #24570] * sysdeps/unix/sysv/linux/msgctl.c (__old_msgctl): Remove __IPC_64 usage.
* Add NT_ARM_PACA_KEYS and NT_ARM_PACG_KEYS from Linux 5.1 to elf.h.Joseph Myers2019-05-201-0/+5
| | | | | | | | | | This patch adds the new NT_ARM_PACA_KEYS and NT_ARM_PACG_KEYS from Linux 5.1 to glibc's elf.h. Tested for x86_64. * elf/elf.h (NT_ARM_PACA_KEYS): New macro. (NT_ARM_PACG_KEYS): Likewise.
* Small tcache improvementsWilco Dijkstra2019-05-171-0/+8
| | | | | | | | | | | | | | | | Change the tcache->counts[] entries to uint16_t - this removes the limit set by char and allows a larger tcache. Remove a few redundant asserts. bench-malloc-thread with 4 threads is ~15% faster on Cortex-A72. Reviewed-by: DJ Delorie <dj@redhat.com> * malloc/malloc.c (MAX_TCACHE_COUNT): Increase to UINT16_MAX. (tcache_put): Remove redundant assert. (tcache_get): Remove redundant asserts. (__libc_malloc): Check tcache count is not zero. * manual/tunables.texi (glibc.malloc.tcache_count): Update maximum.
* manual: Document O_DIRECTORYFlorian Weimer2019-05-171-0/+4
|
* Update kernel-features.h files for Linux 5.1.Joseph Myers2019-05-161-0/+10
| | | | | | | | | | | | | | | | | | | | Linux 5.1 adds missing syscalls to the syscall table for many Linux kernel architectures. This patch updates the kernel-features.h headers accordingly. __ASSUME_DIRECT_SYSVIPC_SYSCALLS is not updated because of the differences between new and old syscalls described in <https://sourceware.org/ml/libc-alpha/2019-05/msg00235.html>. The statfs64 structure used by alpha matches what the new kernel syscalls use. Tested with build-many-glibcs.py. * sysdeps/unix/sysv/linux/alpha/kernel-features.h (__ASSUME_STATFS64): Only undefine if [__LINUX_KERNEL_VERSION < 0x050100]. * sysdeps/unix/sysv/linux/ia64/kernel-features.h (__ASSUME_STATX): Likewise. * sysdeps/unix/sysv/linux/sh/kernel-features.h (__ASSUME_STATX): Likewise.
* nss_nis, nss_nisplus: Remove RES_USE_INET6 handlingFlorian Weimer2019-05-161-0/+33
| | | | | | Since commit 3f8b44be0a658266adff5ece1e4bc3ce097a5dbe ("resolv: Remove support for RES_USE_INET6 and the inet6 option"), res_use_inet6 () always evaluates to false.
* nss_files: Remove RES_USE_INET6 from hosts processingFlorian Weimer2019-05-161-0/+13
| | | | | | Since commit 3f8b44be0a658266adff5ece1e4bc3ce097a5dbe ("resolv: Remove support for RES_USE_INET6 and the inet6 option"), res_use_inet6 () always evaluates to false.
* support: Report NULL blobs explicitly in TEST_COMPAREFlorian Weimer2019-05-161-0/+5
| | | | | | | Provide an explicit diagnostic if the length is positive, and do not just crash with a null pointer dereference. Null pointers are only valid if the length is zero, so this can only happen with a faulty test.
* dlfcn: Guard __dlerror_main_freeres with __libc_once_get (once) [BZ# 24476]Mark Wielaard2019-05-151-0/+8
| | | | | | | | | | | | | | | | | | dlerror.c (__dlerror_main_freeres) will try to free resources which only have been initialized when init () has been called. That function is called when resources are needed using __libc_once (once, init) where once is a __libc_once_define (static, once) in the dlerror.c file. Trying to free those resources if init () hasn't been called will produce errors under valgrind memcheck. So guard the freeing of those resources using __libc_once_get (once) and make sure we have a valid key. Also add a similar guard to __dlerror (). * dlfcn/dlerror.c (__dlerror_main_freeres): Guard using __libc_once_get (once) and static_bug == NULL. (__dlerror): Check we have a valid key, set result to static_buf otherwise. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
* Add missing Changelog entryDJ Delorie2019-05-151-0/+5
| | | | For 5b06f538c5aee0389ed034f60d90a8884d6d54de
* Fix crash in _IO_wfile_sync (bug 20568)Andreas Schwab2019-05-151-0/+11
| | | | | | When computing the length of the converted part of the stdio buffer, use the number of consumed wide characters, not the (negative) distance to the end of the wide buffer.
* nss: Turn __nss_database_lookup into a compatibility symbolFlorian Weimer2019-05-151-0/+27
| | | | | | | | | | | | | The function uses the internal service_user type, so it is not really usable from the outside of glibc. Rename the function to __nss_database_lookup2 for internal use, and change __nss_database_lookup to always indicate failure to the caller. __nss_next already was a compatibility symbol. The new implementation always fails and no longer calls __nss_next2. unscd, the alternative nscd implementation, does not use __nss_database_lookup, so it is not affected by this change.
* support: Add support_install_rootsbindirAlexandra Hájková2019-05-151-0/+5
| | | | Reviewed by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
* iconv: Remove public declaration of __gconv_transliterateFlorian Weimer2019-05-151-0/+7
| | | | | | | | | | Commit ba7b4d294b01870ce3497971e9d07ee261cdc540 ("Complete the removal of __gconv_translit_find") added a declaration of the GLIBC_PRIVATE function, __gconv_transliterate, to the installed header <gconv.h>. It should have been added to the internal <gconv_int.h> header. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
* Linux: Add the tgkill functionFlorian Weimer2019-05-141-0/+46
| | | | | | | | | The tgkill function is sometimes used in crash handlers. <bits/signal_ext.h> follows the same approach as <bits/unistd_ext.h> (which was added for the gettid system call wrapper). Reviewed-by: Carlos O'Donell <carlos@redhat.com>
* manual: Adjust twalk_r documentation.Carlos O'Donell2019-05-141-0/+5
| | | | Reviewed-by: Florian Weimer <fweimer@redhat.com>
* elf: Fix tst-pldd for non-default --prefix and/or --bindir (BZ#24544)Adhemerval Zanella2019-05-141-0/+4
| | | | | | | | | | | | | | Use a new libsupport support_bindir_prefix instead of a hardcoded /usr/bin to create the pldd path on container directory. Checked on x86_64-linux-gnu with default and non-default --prefix and --bindir paths, as well with --enable-hardcoded-path-in-tests. [BZ #24544] * elf/tst-pldd.c (do_test): Use support_bindir_prefix instead of pre-defined value. Reviewed-by: DJ Delorie <dj@redhat.com>
* support: Export bindir path on support_pathAdhemerval Zanella2019-05-141-0/+4
| | | | | | | | | | Checked on x86_64-linux-gnu. * support/Makefile (CFLAGS-support_paths.c): Add -DBINDIR_PATH. * support/support.h (support_bindir_prefix): New variable. * support/support_paths.c [BINDIR_PATH] (support_bindir_prefix): Reviewed-by: DJ Delorie <dj@redhat.com>
* Make --bindir effectiveAdhemerval Zanella2019-05-141-0/+2
| | | | | | | | | | This allows sets a path using --bindir. Checked on x86_64-linux-gnu with a non-default --bindir and checked resulting installed binaries (pldd for instance). * config.make.in (bindir): New variable. Reviewed-by: DJ Delorie <dj@redhat.com>
* x86: Remove arch-specific low level lock implementationAdhemerval Zanella2019-05-141-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes the arch-specific x86 assembly implementation for low level locking and consolidate both 64 bits and 32 bits in a single implementation. Different than other architectures, x86 lll_trylock, lll_lock, and lll_unlock implements a single-thread optimization to avoid atomic operation, using cmpxchgl instead. This patch implements by using the new single-thread.h definitions in a generic way, although using the previous semantic. The lll_cond_trylock, lll_cond_lock, and lll_timedlock just use atomic operations plus calls to lll_lock_wait*. For __lll_lock_wait_private and __lll_lock_wait the generic implemtation there is no indication that assembly implementation is required performance-wise. Checked on x86_64-linux-gnu and i686-linux-gnu. * sysdeps/nptl/lowlevellock.h (__lll_trylock): New macro. (lll_trylock): Call __lll_trylock. * sysdeps/unix/sysv/linux/i386/libc-lowlevellock.S: Remove file. * sysdeps/unix/sysv/linux/i386/lll_timedlock_wait.c: Likewise. * sysdeps/unix/sysv/linux/i386/lowlevellock.S: Likewise. * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/lll_timedlock_wait.c: Likewise. * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise. * sysdeps/unix/sysv/linux/x86/lowlevellock.h: New file. * sysdeps/unix/sysv/linux/x86_64/cancellation.S: Include lowlevellock-futex.h.