aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-06-26Fix Linux fcntl OFD locks for non-LFS architectures (BZ#20251)Adhemerval Zanella
This patch fixes the OFD ("file private") locks for architectures that support non-LFS flock definition (__USE_FILE_OFFSET64 not defined). The issue in this case is both F_OFD_{GETLK,SETLK,SETLKW} and F_{SET,GET}L{W}K64 expects a flock64 argument and when using old F_OFD_* flags with a non LFS flock argument the kernel might interpret the underlying data wrongly. Kernel idea originally was to avoid using such flags in non-LFS syscall, but since GLIBC uses fcntl with LFS semantic as default it is possible to provide the functionality and avoid the bogus struct kernel passing by adjusting the struct manually for the required flags. The idea follows other LFS interfaces that provide two symbols: 1. A new LFS fcntl64 is added on default ABI with the usual macros to select it for FILE_OFFSET_BITS=64. 2. The Linux non-LFS fcntl use a stack allocated struct flock64 for F_OFD_{GETLK,SETLK,SETLKW} copy the results on the user provided struct. 3. Keep a compat symbol with old broken semantic for architectures that do not define __OFF_T_MATCHES_OFF64_T. So for architectures which defines __USE_FILE_OFFSET64, fcntl64 will aliased to fcntl and no adjustment would be required. So to actually use F_OFD_* with LFS support the source must be built with LFS support (_FILE_OFFSET_BITS=64). Also F_OFD_SETLKW command is handled a cancellation point, as for F_SETLKW{64}. Checked on x86_64-linux-gnu and i686-linux-gnu. [BZ #20251] * NEWS: Mention fcntl64 addition. * csu/check_fds.c: Replace __fcntl_nocancel by __fcntl64_nocancel. * login/utmp_file.c: Likewise. * sysdeps/posix/fdopendir.c: Likewise. * sysdeps/posix/opendir.c: Likewise. * sysdeps/unix/pt-fcntl.c: Likewise. * include/fcntl.h (__libc_fcntl64, __fcntl64, __fcntl64_nocancel_adjusted): New prototype. (__fcntl_nocancel_adjusted): Remove prototype. * io/Makefile (routines): Add fcntl64. (CFLAGS-fcntl64.c): New rule. * io/Versions [GLIBC_2.28] (fcntl64): New symbol. [GLIBC_PRIVATE] (__libc_fcntl): Rename to __libc_fcntl64. * io/fcntl.h (fcntl64): Add prototype and redirect if __USE_FILE_OFFSET64 is defined. * io/fcntl64.c: New file. * manual/llio.text: Add a note for which commands fcntl acts a cancellation point. * nptl/Makefile (CFLAGS-fcntl64.c): New rule. * sysdeps/mach/hurd/fcntl.c: Alias fcntl to fcntl64 symbols. * sysdeps/mach/hurd/i386/libc.abilist [GLIBC_2.28] (fcntl, fcntl64): New symbols. * sysdeps/unix/sysv/linux/fcntl.c (__libc_fcntl): Fix F_GETLK64, F_OFD_GETLK, F_SETLK64, F_SETLKW64, F_OFD_SETLK, and F_OFD_SETLKW for non-LFS case. * sysdeps/unix/sysv/linux/fcntl64.c: New file. * sysdeps/unix/sysv/linux/fcntl_nocancel.c (__fcntl_nocancel): Rename to __fcntl64_nocancel. (__fcntl_nocancel_adjusted): Rename to __fcntl64_nocancel_adjusted. * sysdeps/unix/sysv/linux/not-cancel.h (__fcntl_nocancel): Rename to __fcntl64_nocancel. * sysdeps/unix/sysv/linux/tst-ofdlocks.c: New file. * sysdeps/unix/sysv/linux/tst-ofdlocks-compat.c: Likewise. * sysdeps/unix/sysv/linux/Makefile (tests): Add tst-ofdlocks. (tests-internal): Add tst-ofdlocks-compat. * sysdeps/unix/sysv/linux/aarch64/libc.abilist [GLIBC_2.28] (fcntl64): New symbol. * sysdeps/unix/sysv/linux/alpha/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/ia64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/libc-le.abilist: Likewise. * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/arm/libc.abilist [GLIBC_2.28] (fcntl, fcntl64): Likewise. * sysdeps/unix/sysv/linux/hppa/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/i386/libc.abilis: Likewise. * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/microblaze/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/nios2/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sh/libc.abilist: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: Likewise.
2018-06-26Run thread shutdown functions in an explicit orderFlorian Weimer
This removes the __libc_thread_subfreeres hook in favor of explict calls. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2018-06-26sunrpc: Remove always-defined _RPC_THREAD_SAFE_ macroFlorian Weimer
Header and C source file changes were generated using: unifdef -m -D_RPC_THREAD_SAFE_ include/rpc/rpc.h sunrpc/*.c
2018-06-26libio: Add tst-vtables, tst-vtables-interposedFlorian Weimer
2018-06-26support: Add TEST_NO_SETVBUFFlorian Weimer
This is sometimes needed for testing stdio streams, where the setvbuf call in the test driver could interfere with the test.
2018-06-26libio: Disable vtable validation in case of interposition [BZ #23313]Florian Weimer
2018-06-25nss_files: Use struct scratch_buffer instead of extend_alloca [BZ #18023]Florian Weimer
2018-06-25getent: Use dynarray in initgroups_keys [BZ #18023]Florian Weimer
2018-06-25_nss_nis_initgroups_dyn: Use struct scratch_buffer [BZ #18023]Florian Weimer
Remove extend_alloca usage. Also adjusts the internal function get_uid.
2018-06-25getgrent_next_nss (compat-initgroups): Remove alloca fallback [BZ #18023]Florian Weimer
If the caller-supplied buffer is not large enough, fall back directly malloc. The previous __libc_use_alloca check was incorrect because it did not take into account that extend_alloca may fail to merge allocations, so it would underestimate the stack space being used by roughly a factor of two.
2018-06-25nscd: Switch to struct scratch_buffer in adhstaiX [BZ #18023]Florian Weimer
The pre-allocation of the three scratch buffers increased the initial stack size somewhat, but if retries are needed, the previous version used more stack space if extend_alloca could not merge allocations. Lack of alloca accounting also means could be problematic with extremely large NSS responses, too. [BZ #18023] * nscd/aicache.c (addhstaiX): Use struct scratch_buffer instead of extend_alloca.
2018-06-25nscd: Use struct scratch_buffer, not extend_alloca in most caches [BZ #18023]Florian Weimer
This replaces the ERANGE retry loops with loops which have heap fallback. Heap allocation might actually be required for extremely large NSS results.
2018-06-25nscd restart: Use malloc instead of extend_alloca [BZ #18023]Florian Weimer
This introduces a separate function, read_cmdline, which reads the contents of /proc/self/cmdline into a heap-allocated buffer.
2018-06-25csb_PL: Add alternative month names (bug 23140).Rafal Luzynski
Kashubian language is not supported by CLDR, data copied from Wikipedia and documents released by RJK (official Kashubian Language Council), also consulted with a native speaker. Note that this language also needs ab_alt_mon feature due to the month May: nominative "môj", genitive "maja"; abbreviated nominative "môj", abbreviated genitive "maj". [BZ #23140] * localedata/locales/csb_PL (mon): Rename to... (alt_mon): This. (abmon): Rename to... (ab_alt_mon): This. (mon): Add with proper genitive forms, copy from Wikipedia. (abmon): Likewise.
2018-06-25csb_PL: Update month translations + add yesstr/nostr (bug 19485).Rafal Luzynski
Thank you Michal Ostrowski for the feedback. [BZ #19485] * localedata/locales/csb_PL (mon): Fix typos: "łżëkwiôt" -> "łżëkwiat" (April); "lëpinc" -> "lëpińc" (July). (yesstr): Add, value is "jo". (nostr): Add, value is "nié".
2018-06-22m68k: Reorganize log1p and significand implementationsTulio Magno Quites Machado Filho
Commit 5e79e0292bfb03f40e43379fd92581ad8eae9cb8 broke m68k after s_significand.c became available in the build directory. All m68k implementations of log1p and significand were including s_significand.c and stopped working after the inclusion of the the auto-generated file. This patch reorganizes the implementation of log1p and significand for m680x0 in order to avoid hitting this problem. * sysdeps/m68k/m680x0/fpu/s_log1p.c: Set as the generic file for all log1p and significand functions on m680x0. * sysdeps/m68k/m680x0/fpu/s_log1pf.c: Include s_log1p.c instead of s_significand.c.. * sysdeps/m68k/m680x0/fpu/s_log1pl.c: Likewise. * sysdeps/m68k/m680x0/fpu/s_significandf.c: Likewise. * sysdeps/m68k/m680x0/fpu/s_significandl.c: Likewise. * sysdeps/m68k/m680x0/fpu/s_significand.c: Move all the code to s_log1p.c and include it.. Signed-off-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
2018-06-21Add Andes nds32 dynamic relocations to elf.hVincent Chen
* elf/elf.h (R_NDS32_NONE): New define. (R_NDS32_32_RELA): Likewise. (R_NDS32_COPY): Likewise. (R_NDS32_GLOB_DAT): Likewise. (R_NDS32_JUMP_SLOT): Likewise. (R_NDS32_RELATIVE): Likewise. (R_NDS32_TLS_TPOFF): Likewise. (R_NDS32_TLS_DESC): Likewise.
2018-06-21elf.h: Add BPF relocation types.Mark Wielaard
The BPF ELF format has new relocation types R_BPF_64_64 and R_BPF_64_32. The existing R_BPF_MAP_FD was an extension that never got implemented. Remove it, because the constant conflicts with the official R_BPF_64_64. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2018-06-21math: Set 387 and SSE2 rounding mode for tgamma on i386 [BZ #23253]Florian Weimer
Previously, only the SSE2 rounding mode was set, so the assembler implementations using 387 were not following the expecting rounding mode.
2018-06-20Fix tst-cmp.c build with GCC mainline.Joseph Myers
Building the testsuite with GCC mainline fails with -Wstringop-overflow= errors in string/tst-cmp.c. These are for calls to strncmp and strncasecmp with SIZE_MAX size argument. The tests are deliberately using this size that would be dubious in normal code, so this patch disables the warning for the calls in question. Tested with build-many-glibcs.py for aarch64-linux-gnu. * string/tst-cmp.c: Include <libc-diag.h>. (strncmp_max): Disable -Wstringop-overflow= around call to strncmp. (strncasecmp_max): Disable -Wstringop-overflow= around call to strncasecmp.
2018-06-20Fix bug-strspn1.c, bug-strpbrk1.c build with GCC mainline.Joseph Myers
Building the testsuite with GCC mainline fails with: bug-strspn1.c: In function 'main': bug-strspn1.c:14:3: error: right-hand operand of comma expression has no effect [-Werror=unused-value] strspn (b++, ""); ^~~~~~~~~~~~~~~~ and a similar error for bug-strpbrk1.c. I'm not sure what GCC change introduced this, and the wording of the message is a bit off (in the source it's not a comma expression, that must reflect GCC's IR). But the warning is correct (strspn is a pure function, the call is useless, and if there wasn't an argument with a side effect much older GCC would have warned); the point of the test is to verify that the side effect in an argument still occurs for this useless call that can otherwise be optimized to an (unused) constant (testing for a bug there once was in an old strspn macro). This patch duly arranges for the warning to be disabled for this code. Tested with build-many-glibcs.py for aarch64-linux-gnu. * string/bug-strpbrk1.c: Include <libc-diag.h>. (main): Disable -Wunused-value around call to strpbrk. * string/bug-strspn1.c: Include <libc-diag.h>. (main): Disable -Wunused-value around call to strspn.
2018-06-20ldbl-128ibm-compat: Create libm-alias-float128.hTulio Magno Quites Machado Filho
Add a new libm-alias-float128.h in order to provide the __*ieee128 aliases for the existing *f128 that do not have a globally exported symbol. * sysdeps/ieee754/ldbl-128ibm-compat/Versions: New file. * sysdeps/ieee754/ldbl-128ibm-compat/libm-alias-float128.h: New file.
2018-06-20Add a generic significand implementationTulio Magno Quites Machado Filho
Create a template for significand. * math/Makefile (libm-calls): Move s_significandF to... (gen-libm-calls): ... here. * math/s_significand_template.c: New file. * math/s_significand.c: Removed. * math/s_significandf.c: Removed. * math/s_significandl.c: Removed. * sysdeps/ieee754/ldbl-opt/s_significand.c: Removed. * sysdeps/ieee754/ldbl-opt/s_significandl.c: Removed. Signed-off-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
2018-06-20Move declare_mgen_finite_alias definitionTulio Magno Quites Machado Filho
Move declare_mgen_finite_alias, declare_mgen_finite_alias_s and declare_mgen_finite_alias_x to a shared place in order to reuse them in other files that also declare _finite aliases. * math/e_exp2_template.c (declare_mgen_finite_alias, declare_mgen_finite_alias_s, declare_mgen_finite_alias_x): Move to... * sysdeps/generic/math-type-macros.h (declare_mgen_finite_alias, declare_mgen_finite_alias_s, declare_mgen_finite_alias_x): ... here. Signed-off-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
2018-06-20libio: Avoid ptrdiff_t overflow in IO_validate_vtableFlorian Weimer
If the candidate pointer is sufficiently far away from __start___libc_IO_vtables, the result might not fit into ptrdiff_t.
2018-06-19Fix scanf rounding of negative floating-point numbers (bug 23280).Joseph Myers
As reported in bug 23280, scanf functions produce incorrectly rounded result for floating-point formats in FE_UPWARD and FE_DOWNWARD modes, because they pass the input with sign removed to strtod functions, and then negate the result if there was a '-' at the start of the input. This patch fixes this by arranging for the sign to be passed to strtod rather than scanf doing the negation itself. In turn, keeping the sign around in the buffer being built up for strtod requires updating places that examine char_buffer_size (&charbuf) to allow for the sign being there as an extra character. Tested for x86_64. [BZ #23280] * stdio-common/vfscanf.c (_IO_vfscanf_internal): Pass sign of floating-point number to strtod functions rather than possibly negating result of those functions. * stdio-common/tst-scanf-round.c: New file. * stdio-common/Makefile (tests): Add tst-scanf-round. ($(objpfx)tst-scanf-round): Depend on $(libm).
2018-06-19hurd: fix localplt.data formatSamuel Thibault
* sysdeps/mach/hurd/i386/localplt.data: Drop empty line.
2018-06-19hurd: Fix "Missing required PLT reference"Samuel Thibault
* sysdeps/mach/hurd/localplt.data: Move to... * sysdeps/mach/hurd/i386/localplt.data: new file. Add + REL R_386_GLOB_DAT like on Linux i386.
2018-06-18Add SHM_STAT_ANY from Linux 4.17 to bits/shm.h.Joseph Myers
Linux 4.17 adds a SHM_STAT_ANY constant (ipcs command). This patch adds it to the relevant bits/shm.h headers. Tested for x86_64. * sysdeps/unix/sysv/linux/alpha/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): New macro. * sysdeps/unix/sysv/linux/arm/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/generic/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/hppa/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/ia64/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/mips/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/s390/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/sh/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/sparc/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/x86/bits/shm.h [__USE_MISC] (SHM_STAT_ANY): Likewise.
2018-06-18Add SEM_STAT_ANY from Linux 4.17 to bits/sem.h.Joseph Myers
Linux 4.17 adds a SEM_STAT_ANY constant (ipcs command). This patch adds it to the relevant bits/sem.h headers. Tested for x86_64. * sysdeps/unix/sysv/linux/alpha/bits/sem.h [__USE_MISC] (SEM_STAT_ANY): New macro. * sysdeps/unix/sysv/linux/bits/sem.h [__USE_MISC] (SEM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/generic/bits/sem.h [__USE_MISC] (SEM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/hppa/bits/sem.h [__USE_MISC] (SEM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/ia64/bits/sem.h [__USE_MISC] (SEM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/mips/bits/sem.h [__USE_MISC] (SEM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/sem.h [__USE_MISC] (SEM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/s390/bits/sem.h [__USE_MISC] (SEM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/sparc/bits/sem.h [__USE_MISC] (SEM_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/x86/bits/sem.h [__USE_MISC] (SEM_STAT_ANY): Likewise.
2018-06-18Add MSG_STAT_ANY from Linux 4.17 to bits/msq.h.Joseph Myers
Linux 4.17 adds a MSG_STAT_ANY constant (ipcs command). This patch adds it to the relevant bits/msq.h headers. Tested for x86_64. * sysdeps/unix/sysv/linux/alpha/bits/msq.h [__USE_MISC] (MSG_STAT_ANY): New macro. * sysdeps/unix/sysv/linux/bits/msq.h [__USE_MISC] (MSG_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/generic/bits/msq.h [__USE_MISC] (MSG_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/hppa/bits/msq.h [__USE_MISC] (MSG_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/ia64/bits/msq.h [__USE_MISC] (MSG_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/mips/bits/msq.h [__USE_MISC] (MSG_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/msq.h [__USE_MISC] (MSG_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/s390/bits/msq.h [__USE_MISC] (MSG_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/sparc/bits/msq.h [__USE_MISC] (MSG_STAT_ANY): Likewise. * sysdeps/unix/sysv/linux/x86/bits/msq.h [__USE_MISC] (MSG_STAT_ANY): Likewise.
2018-06-18Update MAP_TYPE value for hppa from Linux 4.17.Joseph Myers
This patch updates the hppa definition of MAP_TYPE to reflect a corresponding change in the Linux kernel in 4.17 (so the value now has four bits set, as it does on other architectures, although they are different from other architectures because of hppa differences in other MAP_* bits). Tested with build-many-glibcs.py for hppa. * sysdeps/unix/sysv/linux/hppa/bits/mman.h [__USE_MISC] (MAP_TYPE): Change value to 0x2b.
2018-06-18Linux: Create Netlink socket with SOCK_CLOEXEC in __check_pf [BZ #15722]Florian Weimer
2018-06-18Fix powerpc64le build of nan-sign tests (bug 23303).Joseph Myers
My recent nan-sign tests fail to build for powerpc64le with GCC 8 because of the special compile / link options needed there for any test using _Float128. This patch arranges for these tests to be handled on powerpc64le similarly to other such tests. Tested with build-many-glibcs.py for powerpc64le. [BZ #23303] * sysdeps/powerpc/powerpc64/le/Makefile (CFLAGS-tst-strtod-nan-sign.c): Add -mfloat128. (CFLAGS-tst-wcstod-nan-sign.c): Likewise. (gnulib-tests): Also add $(f128-loader-link) for tst-strtod-nan-sign abd tst-wcstod-nan-sign.
2018-06-16hurd: Fix reference to _hurd_self_sigstateSamuel Thibault
* sysdeps/hurd/include/hurd/signal.h (_hurd_self_sigstate): Add hidden prototype and definition. * sysdeps/mach/hurd/i386/____longjmp_chk.S (____longjmp_chk): Use hidden target for _hurd_self_sigstate.
2018-06-16hurd: Fix missing __pthread_get_cleanup_stack symbolSamuel Thibault
Rework 57e1651557e8 ("hurd: Avoid PLT ref for __pthread_get_cleanup_stack") to keep the __pthread_get_cleanup_stack symbol. * htl/pt-cleanup.c (__pthread_get_cleanup_stack): Rename to ___pthread_get_cleanup_stack. (__pthread_get_cleanup_stack): Remove hidden def, add alias. * htl/pt-exit.c (__pthread_exit): Use ___pthread_get_cleanup_stack instead of __pthread_get_cleanup_stack. * sysdeps/htl/pthread-functions.h [libpthread] (__pthread_get_cleanup_stack): Remove hidden proto. * sysdeps/htl/pthreadP.h (___pthread_get_cleanup_stack): Add prototype. * sysdeps/htl/pthreadP.h (___pthread_get_cleanup_stack): Add hidden attribute. * htl/pt-join.c (__pthread_get_cleanup_stack): Define to ___pthread_get_cleanup_stack.
2018-06-16hurd: Whitelist PLT refs which are difficult to avoidSamuel Thibault
* sysdeps/mach/hurd/localplt.data (siglongjmp, longjmp, __libc_lseek64, _IO_funlockfile): Whitelist PLT references.
2018-06-16hurd: Avoid PLT references to syscallsSamuel Thibault
* mach/Makefile ($(mach-syscalls:%=$(objpfx))): Add hidden definition. * sysdeps/mach/include/mach/mach_traps.h (__mach_reply_port, __mach_thread_self, __mach_task_self, __mach_host_self, __swtch, __swtch_pri, __thread_switch, __evc_wait): Add hidden prototypes.
2018-06-16hurd: Avoid PLT ref to __mach_msgSamuel Thibault
* sysdeps/mach/include/mach.h (__mach_msg): Add hidden prototype. * mach/msg.c: Include <mach.h>. (__mach_msg): Add hidden definition.
2018-06-16hurd: Avoid PLT references to shortcutsSamuel Thibault
* sysdeps/mach/include/mach-shortcuts-hidden.h: New file. * mach/shortcut.awk: Make syscall stubs include <mach-shortcuts-hidden.h> and add hidden definition. * sysdeps/mach/include/mach.h: Include <mach-shortcuts-hidden.h>.
2018-06-16hurd: Avoid missing PLT ref from ld.so requirementSamuel Thibault
* sysdeps/mach/hurd/localplt.data (ld.so): Make ref to __open optional.
2018-06-16hurd: Avoid PLT ref for __pthread_get_cleanup_stackSamuel Thibault
* htl/pt-cleanup.c (___pthread_get_cleanup_stack): Rename to __pthread_get_cleanup_stack. (__pthread_get_cleanup_stack): Remove alias, add hidden def. * htl/pt-exit.c (__pthread_exit): Use __pthread_get_cleanup_stack instead of ___pthread_get_cleanup_stack. * sysdeps/htl/pthread-functions.h [libpthread] (__pthread_get_cleanup_stack): Add hidden proto. * sysdeps/htl/pthreadP.h (___pthread_get_cleanup_stack): Remove prototype.
2018-06-16hurd: Detect 32bit overflow in value returned by lseekSamuel Thibault
* sysdeps/mach/hurd/lseek.c: Include <errno.h>. * sysdeps/mach/hurd/lseek.c (__libc_lseek): Check that the value returned by __lseek64 can fit off_t, return EOVERFLOW otherwise.
2018-06-16hurd: avoid PLT ref between sendfile and sendfile64Samuel Thibault
* include/sys/sendfile.h (__sendfile64): Declare hidden prototype. * sysdeps/mach/hurd/sendfile.c (sendfile): Call __sendfile64 instead of sendfile. * sysdeps/mach/hurd/sendfile64.c (sendfile64): Rename to __sendfile64. (sendfile64): New strong alias.
2018-06-15Add tests for sign of NaN returned by strtod (bug 23007).Joseph Myers
This patch adds tests for bug 23007, strtod ignoring any sign in the input string in the case of a NaN result. Tested for x86_64. [BZ #23007] * stdlib/tst-strtod-nan-sign-main.c: New file. * stdlib/tst-strtod-nan-sign.c: Likewise. * wcsmbs/tst-wcstod-nan-sign.c: Likewise. * stdlib/Makefile (tests): Add tst-strtod-nan-sign. ($(objpfx)tst-strtod-nan-sign): Depend on $(libm). * wcsmbs/Makefile (tests) Add tst-wcstod-nan-sign. ($(objpfx)tst-wcstod-nan-sign): Depend on $(libm).
2018-06-15Fix sign of NaN returned by strtod (bug 23007).Herman ten Brugge
As reported in bug 23007, strtod ignores any sign in the input string in the case of a NaN result. Thes patch fixes this. Tested for x86_64 (in conjunction with tests to be added separately). [BZ #23007] * stdlib/strtod_l.c (____STRTOF_INTERNAL): Return NaN of appropriate sign.
2018-06-14localedata: Make IBM273 compatible with ISO-8859-1 [BZ #23290]Florian Weimer
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2018-06-14hurd: Fix htl link failureSamuel Thibault
126b3ec370f0 ("hurd: Avoid PLTs for __mach_thread_self and __mach_reply_port") made mach traps hidden, but htl actually uses two of them. Re-expose them for now. Exposing them properly will be more involved since their definition is generated. * sysdeps/mach/include/mach/mach_traps.h (__mach_thread_self, __mach_task_self): Remove attribute_hidden.
2018-06-14Ignore -Wrestrict for one strncat test.Joseph Myers
With current GCC mainline, one strncat test involving a size close to SIZE_MAX results in a -Wrestrict warning that that buffer size would imply that the two buffers must overlap. This patch fixes the build by adding disabling of -Wrestrict (for GCC versions supporting that option) to the already-present disabling of -Wstringop-overflow= and -Warray-bounds for this test. Tested with build-many-glibcs.py that this restores the testsuite build with GCC mainline for aarch64-linux-gnu. * string/tester.c (test_strncat) [__GNUC_PREREQ (7, 0)]: Also ignore -Wrestrict for one test.
2018-06-14aarch64: Use an ifunc/VDSO to implement gettimeofday in shared glibc.Steve Ellcey
This patch uses an ifunc to implement gettimeofday in the shared libc. This is faster compared to the vsyscall mechanism that has to check a global pointer, demangle it and call it indirectly when the VDSO is present. Resolving the gettimeofday symbol directly to the VDSO code is safe because there are no failures that the libc has to handle by setting errno like in a generic vsyscall (the only failure when the VDSO code falls back to a syscall is EFAULT, but passing an invalid pointer is undefined behaviour so returning -EFAULT is fine). If the kernel supports the VDSO interface we use it for extern calls, otherwise the old vsyscall method is used which falls back to a syscall. The static version of gettimeofday continues to use a syscall, libc.so internal calls use the old vsyscall method. * sysdeps/unix/sysv/linux/aarch64/gettimeofday.c: New file.