diff --git a/ChangeLog.old/ChangeLog.10 b/ChangeLog.old/ChangeLog.10 index 6736bcc1fa..f2eb42b300 100644 --- a/ChangeLog.old/ChangeLog.10 +++ b/ChangeLog.old/ChangeLog.10 @@ -658,10 +658,10 @@ Define and initialize use_outdigits in the inner loops. * sysdeps/posix/sigwait.c: Don't look for signal 0 since it does - not exist. Patch by Miloslav Trmac (PR libc/1601). + not exist. Patch by Miloslav Trmač (PR libc/1601). * sysdeps/i386/fpu/s_nearbyint.S: Disable raising exception, not - enable it. Patch by Miloslav Trmac (PR libc/1600). + enable it. Patch by Miloslav Trmač (PR libc/1600). * sysdeps/i386/fpu/s_nearbyintf.S: Likewise. * sysdeps/i386/fpu/s_nearbyintl.S: Likewise. @@ -693,7 +693,7 @@ so test for overflow and handle it. * sysdeps/i386/fpu/s_sinf.S: Likewise. * sysdeps/i386/fpu/s_tanf.S: Likewise. - Patch by Miloslav Trmac (PR libc/1563). + Patch by Miloslav Trmač (PR libc/1563). * iconvdata/Makefile (modules): Add UTF-16. (distribute): Add utf-16.c. @@ -981,7 +981,7 @@ * sysdeps/unix/sysv/linux/mips/fxstat.c: Likewise. * sysdeps/unix/sysv/linux/mips/init-first.h: New file, from Ralf - Baechle . + Bächle . * sysdeps/unix/sysv/linux/mips/brk.c: New file. @@ -1012,7 +1012,7 @@ * sysdeps/powerpc/fpu/fesetround.c: Likewise. * sysdeps/sparc/fpu/feholdexcpt.c: Likewise. * sysdeps/sparc/fpu/fesetround.c: Likewise. - Patch by Miloslav Trmac . + Patch by Miloslav Trmač . * locale/programs/ld-collate.c (struct locale_collate_t): Change type of plane_size and plane_cnt to uint32_t. @@ -1482,7 +1482,7 @@ * manual/getopt.texi (Using the getopt function): Fix description of return value for format string starting with '-' (PR libc/1551). - Patch by Ral Nez de Arenas Coronado + Patch by Raúl Núñez de Arenas Coronado * sunrpc/clnt_perr.c (rpc_errlist): Fix index for RPC_PROGVERSMISMATCH. Patch by jens.moeller@westgeo.com (PR libc/1550). @@ -3715,7 +3715,7 @@ (RESOLVE_GOTSYM): Use R_MIPS_REL32. (ELF_MACHINE_RUNTIME_TRAMPOLINE): Likewise. Based on patches from Maciej W. Rozycki and - Ralf Baechle . + Ralf Bächle . * sysdeps/mips/mips64/dl-machine.h: Apply same patches. @@ -6138,7 +6138,7 @@ * sysdeps/unix/sysv/linux/mips/bits/errno.h: Likewise. * elf/Makefile ($(objpfx)ld.so): Fix rtld-ldscript dependency. - Patch by Ralf Baechle . + Patch by Ralf Bächle . 1999-08-25 Ulrich Drepper @@ -6188,14 +6188,14 @@ * stdio-common/tst-cookie.c: New file. * sysdeps/unix/sysv/linux/mips/bits/errno.h: Fix EILSEQ value - changed in last patch. Reported by Ralf Baechle. + changed in last patch. Reported by Ralf Bächle. 1999-08-24 Andreas Jaeger * sysdeps/unix/mips/sysdep.h: Use __syscall_error. * sysdeps/unix/mips/sysdep.S: Rewrite, don't declare errno here. - Patches by Ralf Baechle + Patches by Ralf Bächle 1999-08-24 Andreas Jaeger @@ -6361,7 +6361,7 @@ * sysdeps/unix/sysv/linux/mips/bits/sigaction.h (SA_RESETHAND): Add it. * sysdeps/mips/bits/dlfcn.h: Remove SGI specific calls, add RTLD_LOCAL. - Patches by Ralf Baechle + Patches by Ralf Bächle 1999-08-21 Ulrich Drepper @@ -7316,7 +7316,7 @@ 1999-07-25 Andreas Jaeger - * localedata/tst-rpmatch.sh: Use "&" instead of "" to avoid a bug + * localedata/tst-rpmatch.sh: Use "&" instead of "§" to avoid a bug in bash 2.03. 1999-07-25 Ulrich Drepper diff --git a/ChangeLog.old/ChangeLog.11 b/ChangeLog.old/ChangeLog.11 index 356da033c3..c6ce38de50 100644 --- a/ChangeLog.old/ChangeLog.11 +++ b/ChangeLog.old/ChangeLog.11 @@ -789,7 +789,7 @@ * sysdeps/s390/fpu/libm-test-ulps: New ulps. * sysdeps/unix/sysv/linux/mips/syscalls.list: Add fcntl64. - Patch by Ralf Baechle . + Patch by Ralf Bächle . 2000-10-21 Ulrich Drepper @@ -878,7 +878,7 @@ * sysdeps/sh/dl-machine.h: Likewise. * sysdeps/sparc/sparc32/dl-machine.h: Likewise. * sysdeps/sparc/sparc64/dl-machine.h: Likewise. - Patch by Martin Schwidefsksy . + Patch by Martin Schwidefsky . 2000-10-20 Jakub Jelinek @@ -918,7 +918,7 @@ * string/string.h: Remove declaration of __strcasecmp and __strcasestr. * include/string.h: Declare them here. -2000-10-18 Ralf Baechle +2000-10-18 Ralf Bächle * sysdeps/unix/sysv/linux/mips/sys/syscall.h: Include . @@ -944,7 +944,7 @@ (elf_machine_runtime_link_map): Likewise. (elf_machine_runtime_setup): Likewise. Handle dynamic linker's local got entries. - Patches by Ralf Baechle . + Patches by Ralf Bächle . 2000-10-09 Maciej W. Rozycki @@ -1347,7 +1347,7 @@ * sysdeps/sparc/sparc32/fpu/libm-test-ulps: New file. -2000-10-02 Ralf Baechle +2000-10-02 Ralf Bächle * sysdeps/unix/sysv/linux/mips/sys/tas.h: Add missing .mips0 at the end of inline assembler code. @@ -1364,7 +1364,7 @@ * sysdeps/unix/sysv/linux/alpha/bits/resource.h: Add RLIMIT_LOCKS. -2000-10-01 Ralf Baechle +2000-10-01 Ralf Bächle * sysdeps/mips/dl-machine.h (RTLD_START): Fix computation of envp argument passed to _dl_init. @@ -1433,7 +1433,7 @@ level2, and level3 as well. (wctype_table_add): Remove a few unnecessary conditionals. -2000-09-30 Ralf Baechle +2000-09-30 Ralf Bächle * wcsmbs/Versions [libc] (GLIBC_2.0): Add __mbrtowc. @@ -1702,7 +1702,7 @@ * sysdeps/unix/sysv/linux/powerpc/bits/sem.h: New file. * sysdeps/unix/sysv/linux/powerpc/bits/shm.h: New file. -2000-09-28 Martin Schwidefsksy +2000-09-28 Martin Schwidefsky * sysdeps/s390/atomicity.h: Fix compare_and_swap. @@ -1733,7 +1733,7 @@ 2000-09-28 Ulrich Drepper * manual/errno.texi: Correct error text for ENXIO. - Reported by Jrg Schilling . + Reported by Jörg Schilling . 2000-09-27 Jes Sorensen @@ -2216,7 +2216,7 @@ * intl/Versions: Add bind_textdomain_codeset. -2000-09-16 Ralf Baechle +2000-09-16 Ralf Bächle * sysdeps/mips/dl-machine.h (_RTLD_PROLOGUE): Reformat. Declare as function. @@ -3116,7 +3116,7 @@ * libio/oldiofsetpos64.c: iofsetpos was introduced in glibc 2.1, change symbol version. * libio/oldiofgetpos64.c: Likewise. - Reported by Martin v. Loewis . + Reported by Martin v. Löwis . * locale/programs/ld-ctype.c (charclass_charcode_ellipsis): Fix typo. @@ -5522,7 +5522,7 @@ * timezone/northamerica: Likewise. * timezone/zone-tab: Likewise. -2000-07-30 Ralf Baechle +2000-07-30 Ralf Bächle * sysdeps/unix/sysv/linux/mips/bits/sigstack.h: New file. On MIPS the order of struct sigaltstack members is different. @@ -6434,7 +6434,7 @@ * nss/makedb.c (main): Compare result of load_db with NSS_STATUS_SUCCESS and not 0. - Patch by Jan Rekorajski . + Patch by Jan Rękorajski . * sysdeps/unix/sysv/linux/Versions: Export __sysctl for GLIBC_2.2. @@ -7177,7 +7177,7 @@ * sysdeps/mips/fpu_control.h: Fix type of fpu_control_t. (_FPU_GETCW): Remove extra colon. - Patch by Ralf Baechle . + Patch by Ralf Bächle . * posix/fnmatch_loop.c (FCT): Only declare len if !WIDE_CHAR_VERSION to silence GCC. @@ -8201,7 +8201,7 @@ 2000-06-18 Andreas Jaeger * sysdeps/mips/dl-machine.h: Always use $25 as jump register. - Patch by Ralf Baechle . + Patch by Ralf Bächle . 2000-06-17 Ulrich Drepper @@ -8471,7 +8471,7 @@ 2000-06-13 Andreas Jaeger * sysdeps/mips/elf/start.S (ENTRY_POINT): Remove mips64 defines. - Patch by Ralf Baechle . + Patch by Ralf Bächle . 2000-06-13 Ulrich Drepper @@ -9820,7 +9820,7 @@ * inet/netinet/in.h (IN6_ARE_ADDR_EQUAL): Correct indices. Reported by tmoestl@gmx.net, closes PR libc/1732. -2000-05-11 Jan Hubicka +2000-05-11 Jan Hubička * misc/sys/cdefs.h: Add support for pure attribute. @@ -11318,7 +11318,7 @@ * sysdeps/mips/__longjmp.c (__longjmp): Use $25 to fix problems with some applications. - Patches by Ralf Baechle . + Patches by Ralf Bächle . * sysdeps/mips/bsd-setjmp.S: Use __PIC__. * sysdeps/mips/bsd-_setjmp.S: Likewise. @@ -12107,7 +12107,7 @@ * sysdeps/unix/sysv/linux/arm/siglist.c: Likewise. 2000-03-29 Andreas Jaeger , - Ralf Baechle + Ralf Bächle * Makeconfig: Introduce new variable SHARED to mark code used in the shared library. diff --git a/ChangeLog.old/ChangeLog.12 b/ChangeLog.old/ChangeLog.12 index 2a4620e56d..adcf9081d4 100644 --- a/ChangeLog.old/ChangeLog.12 +++ b/ChangeLog.old/ChangeLog.12 @@ -510,7 +510,7 @@ * libio/iopopen.c: Add lock for proc_file_chain access. * libio/oldiopopen.c: Add lock for old_proc_file_chain access. - Reported by Padraig Brady . + Reported by Pádraig Brady . 2001-07-31 Andreas Jaeger @@ -2247,7 +2247,7 @@ * sysdeps/unix/sysv/linux/speed.c (cfsetispeed): Max speed is B4000000. (cfsetospeed): Likewise. - Reported by Lukasz Trabinski . + Reported by Łukasz Trąbiński . 2001-05-31 Joseph S. Myers @@ -2813,7 +2813,7 @@ that _CS_LFS_CFLAGS can fall through to the empty returned string case. Add FALLTHROUGH comment. -2001-04-29 Ralf Baechle +2001-04-29 Ralf Bächle * sysdeps/unix/sysv/linux/mips/bits/sem.h: Make structure definitions match the kernel definitions. @@ -5570,7 +5570,7 @@ * resolv/tst-aton.c: Add testcase for IP with four periods. * resolv/inet_addr.c: Don't recognize an IP with four periods. - Patch by Andre' Breiler . + Patch by André Breiler . 2001-02-27 Philip Blundell @@ -9884,7 +9884,7 @@ * manual/startup.texi (Program Arguments): Fix type of main's envp parameter. - Reported by Ral Nez de Arenas Coronado . + Reported by Raúl Núñez de Arenas Coronado . * iconvdata/gconv-modules: Add CP950 alias. diff --git a/ChangeLog.old/ChangeLog.13 b/ChangeLog.old/ChangeLog.13 index 241861369e..1dc96b6ef3 100644 --- a/ChangeLog.old/ChangeLog.13 +++ b/ChangeLog.old/ChangeLog.13 @@ -12297,7 +12297,7 @@ * po/ca.po: New file. Contributed by the translation team. -2001-10-15 Ralf Baechle +2001-10-15 Ralf Bächle * sysdeps/unix/sysv/linux/mips/sys/sysmips.h: Make sysmips() prototype a varargs prototype. Remove dependency from kernel header files. diff --git a/ChangeLog.old/ChangeLog.14 b/ChangeLog.old/ChangeLog.14 index 708e765084..eb45d78862 100644 --- a/ChangeLog.old/ChangeLog.14 +++ b/ChangeLog.old/ChangeLog.14 @@ -4149,7 +4149,7 @@ * sysdeps/x86_64/fpu/s_ilogbl.S: New file. * sysdeps/x86_64/fpu/e_remainderl.S: New file. - * math/libm-test.inc (floor_test): Test also 0.25. + * math/libm-test.inc (floor_test): Test also ±0.25. (ceil_test): Test -0.25. 2003-11-17 Ulrich Drepper @@ -4658,7 +4658,7 @@ (hol_entry_long_iterate): Change __attribute to __attribute__. (_help, __argp_error, __argp_failure) [!_LIBC && (HAVE_FLOCKFILE && HAVE_FUNLOCKFILE)]: Protect call to flockfile and funlockfile. - (__argp_basename) [!_LIBC]: New. Taken from LSH, by Niels Mller, + (__argp_basename) [!_LIBC]: New. Taken from LSH, by Niels Möller, modified after comments from Ulrich Drepper. (__argp_short_program_name): Ditto. (__argp_state_help, __argp_error, __argp_failure): Use it. @@ -10627,7 +10627,7 @@ and handle TPREL16 relocs too. Return rather than break for DTPREL64. Mostly from Steven Munroe . -2003-03-11 Ralf Baechle +2003-03-11 Ralf Bächle * sysdeps/unix/sysv/linux/mips/clone.S (__thread_start): Use jal instead of jalr to invoke subroutine so restoring the $gp register @@ -12372,7 +12372,7 @@ * elf/reldep6.c: Create relocation dependency before closing the first module. -2003-01-10 Guido Gnther +2003-01-10 Guido Günther * sysdeps/unix/mips/fork.S: Add PSEUDO_END. * sysdeps/unix/mips/brk.S: Likewise. @@ -15230,11 +15230,11 @@ service hasn't been used [PR libc/4744]. * include/features.h: Use __STDC_VERSION__ not __STDC_VERSION. - Reported by Miloslav Trmac [PR libc/4766]. + Reported by Miloslav Trmač [PR libc/4766]. * manual/examples/dir.c: Don't include . * manual/examples/select.c: Include for TEMP_FAILURE_RETRY. - Reported by Frdric Delanoy . + Reported by Frédéric Delanoy . 2002-11-02 H.J. Lu diff --git a/ChangeLog.old/ChangeLog.15 b/ChangeLog.old/ChangeLog.15 index 5d9b00d42a..d7b791fdee 100644 --- a/ChangeLog.old/ChangeLog.15 +++ b/ChangeLog.old/ChangeLog.15 @@ -2046,7 +2046,7 @@ (delete_heap): Clear aligned_heap_area if deleting the area right before aligned_heap_area. -2004-10-03 Juerg Billeter +2004-10-03 Jürg Billeter * nscd/nscd_initgroups.c (__nscd_getgrouplist): Return -1 if nscd can't be used. [BZ #424] diff --git a/ChangeLog.old/ChangeLog.17 b/ChangeLog.old/ChangeLog.17 index 92f9739680..86f3d01d33 100644 --- a/ChangeLog.old/ChangeLog.17 +++ b/ChangeLog.old/ChangeLog.17 @@ -795,7 +795,7 @@ [BZ #5553] * malloc/malloc.c (public_vALLOc): Set ar_ptr when trying main_arena. (public_pVALLOc): Likewise. - Patch by Petr Baudis. + Patch by Petr Baudiš. 2010-02-22 Jim Meyering @@ -5048,7 +5048,7 @@ d2009-10-30 Ulrich Drepper * posix/Makefile (getconf.speclist): Also collect SUSv5 and SUSv7 environments. -2009-01-16 Petr Baudis +2009-01-16 Petr Baudiš [BZ #9753] * resolv/res_libc.c (__res_maybe_init): Call __res_vinit() @@ -5357,7 +5357,7 @@ d2009-10-30 Ulrich Drepper re_string_skip_chars, re_string_reconstruct): Likewise. * posix/regex_internal.h [!_LIBC] (__mbrtowc): New #define. -2008-12-31 Rafael Avila de Espindola +2008-12-31 Rafael Ávila de Espíndola * resolv/nss_dns/dns-host.c (_nss_dns_gethostbyaddr2_r): Check and adjust the buffer alignment. @@ -5462,7 +5462,7 @@ d2009-10-30 Ulrich Drepper * inet/Makefile (tests): Add tst-getni1. * inet/tst-getni1.c: New file. -2008-12-03 Petr Baudis +2008-12-03 Petr Baudiš [BZ #7067] * nscd/connections.c (invalidate_cache): Use prune_run_lock @@ -6487,7 +6487,7 @@ d2009-10-30 Ulrich Drepper [BZ #6657] * time/strptime_l.c: Don't clear s.era_cnt after successful match of %EY. - Patch by Petr Baudis. + Patch by Petr Baudiš. 2008-06-26 Ulrich Drepper @@ -6542,7 +6542,7 @@ d2009-10-30 Ulrich Drepper [BZ #6612] * time/strftime.c (__strftime_internal): Call tzset() only when printing timezone-dependent values. - Based on a patch by Petr Baudis . + Based on a patch by Petr Baudiš . * resolv/nss_dns/dns-host.c (gaih_getanswer): Don't unconditionally use second gaih_getanswer_slice result. @@ -8275,7 +8275,7 @@ d2009-10-30 Ulrich Drepper * nscd/connections.c (start_threads): Use NSCD_THREAD_STACKSIZE. * nscd/mem.c (gc): Don't allocate arrays on the stack if they can overflow it. - Partially based on a patch by Petr Baudis . + Partially based on a patch by Petr Baudiš . * sysdeps/unix/sysv/linux/nscd_setup_thread.c (setup_thread): Return zero in case the thread library is not NPTL. @@ -8288,7 +8288,7 @@ d2009-10-30 Ulrich Drepper * nis/nss_compat/compat-initgroups.c (getgrent_next_nss): Don't use result of nss_getgrgid_r if nothing was found. For other error return with a failure. - Partially based on a patch by Petr Baudis . + Partially based on a patch by Petr Baudiš . * locale/programs/ld-collate.c (collate_read): Fix loop to match macro name. @@ -9789,7 +9789,7 @@ d2009-10-30 Ulrich Drepper [BZ #4946] * nscd/connections.c (handle_request): Using sendfile always requires that mmap is used for the database. - Patch by Petr Baudis . + Patch by Petr Baudiš . [BZ #4905] * nscd/hstcache.c (cache_addhst): When reloading an entry which @@ -10987,7 +10987,7 @@ d2009-10-30 Ulrich Drepper determining whether there are IPv4/IPv6 addresses, ignore loopback addresses. -2007-06-14 Uros Bizjak +2007-06-14 Uroš Bizjak * soft-fp/soft-fp.h (CMPtype): Define to "int" if undefined. * soft-fp/eqdf2.c (__eqdf2): Use CMPtype instead of int @@ -11630,7 +11630,7 @@ d2009-10-30 Ulrich Drepper with setting the sticky bit. * math/test-misc.c (main): Add more truncation tests. -2007-04-14 Uros Bizjak +2007-04-14 Uroš Bizjak * soft-fp/floatunsidf.c (__floatunsidf): Use DFtype instead of double in the function declaration. @@ -11658,7 +11658,7 @@ d2009-10-30 Ulrich Drepper * soft-fp/op-4.h (_FP_FRAC_COPY_2_2): Define as alias to _FP_FRAC_COPY_4. -2007-04-16 Uros Bizjak +2007-04-16 Uroš Bizjak Jakub Jelinek * soft-fp/op-common.h (FP_EXTEND): Do not abort when @@ -12914,7 +12914,7 @@ d2009-10-30 Ulrich Drepper * io/fts.c: Make sure fts_cur is always valid after return from fts_read. - Patch by Miloslav Trmac . + Patch by Miloslav Trmač . 2006-10-27 Richard Sandiford @@ -13800,7 +13800,7 @@ d2009-10-30 Ulrich Drepper * po/pl.po: Update from translation team. * nscd/nscd.c (main): Fix typo in message. - Patch by Jakub Bogsz . + Patch by Jakub Bogusz . 2006-10-02 Jakub Jelinek @@ -13858,7 +13858,7 @@ d2009-10-30 Ulrich Drepper [BZ #3273] * nscd/nscd_initgroups.c (__nscd_getgrouplist): It is OK to have found no group members. - Patch by Petr Baudis. + Patch by Petr Baudiš. 2006-09-29 Jakub Jelinek diff --git a/ChangeLog.old/ChangeLog.18 b/ChangeLog.old/ChangeLog.18 index d6b1025cf1..76e2e2b0d6 100644 --- a/ChangeLog.old/ChangeLog.18 +++ b/ChangeLog.old/ChangeLog.18 @@ -6271,7 +6271,7 @@ * scripts/build-many-glibcs.py (Context.checkout): Default gcc version to 7 branch. -2017-04-25 Uros Bizjak +2017-04-25 Uroš Bizjak * sysdeps/alpha/fpu/math_private.h (__ieee754_sqrt): Add earlyclobber to output operand of sqrt insn. @@ -15923,7 +15923,7 @@ * math/libm-test.inc (totalorder_test_data): Add more tests. -2016-10-12 Adhemerval Zanela +2016-10-12 Adhemerval Zanella * sysdeps/unix/sysv/linux/mips/mips64/n64/posix_fadvise64.c: Undefine weak_alias and add a comment why mips64 require @@ -20368,7 +20368,7 @@ * misc/sys/cdefs.h [__GNUC_PREREQ (3,2)]: Undef __always_inline first. [!__GNUC_PREREQ (3,2)]: Likewise. -2016-06-10 Adhemerval Zanela +2016-06-10 Adhemerval Zanella * conform/data/sys/socket.h-data (msghdr.msg_iovlen): Add xfail-. (msghdr.msg_controllen): Likewise. @@ -24840,7 +24840,7 @@ * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Move __sqrtl_finite to GLIBC_2.23 -2016-01-25 Ricchard Henderson +2016-01-25 Richard Henderson * sysdeps/alpha/fpu/libm-test-ulps: Update. @@ -33529,7 +33529,7 @@ * sysdeps/posix/nice.c (nice): Restore old errno. * posix/tst-nice.c (do_test): Add test for BZ #18086. -2015-08-10 Ondrej Bilka +2015-08-10 Ondřej Bílka * sysdeps/powerpc/powerpc64/multiarch/stpcpy.c: Fix ifunc. @@ -39110,7 +39110,7 @@ [BZ #18043] * posix/wordexp.c (parse_param): Don't call setenv(..., NULL, 1). -2015-03-11 Adhemerval Zanellla +2015-03-11 Adhemerval Zanella * config.h.in [HAVE_ASM_GLOBAL_DOT_NAME]: Remove define. * include/libc-symbols.h [HAVE_ASM_GLOBAL_DOT_NAME] (strong_alias): @@ -39397,7 +39397,7 @@ * string/strings.h (__CORRECT_ISO_CPP_STRINGS_H_PROTO): Likewise. -2015-03-03 Adhemerval Zanellla +2015-03-03 Adhemerval Zanella [BZ #17776] * sysdeps/powerpc/bits/fenvinline.h (feraiseexcept): Convert input to @@ -40170,7 +40170,7 @@ * sysdeps/i386/i686/multiarch/mempcpy_chk.S: Fix position of jump label. -2015-02-09 Adhemerval Zanellla +2015-02-09 Adhemerval Zanella * sysdeps/powerpc/powerpc32/configure.ac: Remove R_PPC_REL16 check. * sysdeps/powerpc/powerpc32/configure: Regenerated. @@ -40608,7 +40608,7 @@ * sysdeps/mips/bits/atomic.h [_MIPS_SIM == _ABIN32] (__HAVE_64B_ATOMICS): Define to 0. -2015-01-28 Adhemerval Zanellla +2015-01-28 Adhemerval Zanella [BZ #17885] * sysdeps/powerpc/fpu/fsetexcptflg.c (__fesetexceptflag): Fix correct @@ -40657,7 +40657,7 @@ * elf/dl-load.c (open_path): Avoid writing to 'env_path_list' when none of the search directories exist. -2015-01-24 Adhemerval Zanellla +2015-01-24 Adhemerval Zanella [BZ #17869] * sysdeps/powerpc/powerpc64/power8/memset.S: Use power7 instead of @@ -51441,7 +51441,7 @@ * manual/resource.texi (How to get information about the memory subsystem?): Fix typo. - Reported by Peon de la Parra Ivan + Reported by Ivan Peon de la Parra 2014-06-03 Guo Yixuan @@ -58133,7 +58133,7 @@ * libio/tst-ftell-partial-wide.c: New test case. * libio/Makefile (tests): Add tst-ftell-partial-wide. - * manual/contrib.texi: Update entry for Ondrej Bilka, Will + * manual/contrib.texi: Update entry for Ondřej Bílka, Will Newton and Alexandre Oliva. Add entries for Steve Ellcey, Chris Leonard and Allan McRae. @@ -61220,7 +61220,7 @@ * malloc/malloc.c (__libc_calloc): Make memset a tail call. -2013-11-26 Uros Bizjak +2013-11-26 Uroš Bizjak * soft-fp/op-4.h (_FP_FRAC_ASSEMBLE_4): Check rsize against _FP_W_TYPE_SIZE to avoid "left shift count >= width of type" @@ -64634,8 +64634,8 @@ 2013-08-01 David S. Miller * manual/contrib.texi: Update entry for Siddhesh Poyarekar. Add - entries for Will Newton, Andi Kleen, David Holsgrove, and Ondrej - Bilka. + entries for Will Newton, Andi Kleen, David Holsgrove, and Ondřej + Bílka. 2013-07-30 David S. Miller @@ -68988,7 +68988,7 @@ 2013-04-10 Siddhesh Poyarekar Roland McGrath - Ondrej Bilka + Ondřej Bílka [BZ #15346] * time/getdate.c: Include ctype.h and alloca.h. @@ -69563,7 +69563,7 @@ on argument names, not just descriptions. * iconv/iconvconfig.c (options): Likewise. -2013-03-18 Ondrej Bilka +2013-03-18 Ondřej Bílka * sysdeps/x86_64/strlen.S: Replace with new SSE2 based implementation which is faster on all x86_64 architectures. @@ -69772,7 +69772,7 @@ * sysdeps/unix/sysv/linux/times.c (__times): Fix formatting. -2013-03-14 Petr Baudis +2013-03-14 Petr Baudiš * sysdeps/unix/sysv/linux/times.c (__times): On EFAULT, test for non-NULL pointer before the memory validity test. Pointed @@ -83503,7 +83503,7 @@ * config.h.in: Add HAVE_ARM_PCS_VFP. -2012-05-08 Roland Mc Grath +2012-05-08 Roland McGrath [BZ #13979] * include/features.h: Warn if user requests __FORTIFY_SOURCE @@ -85140,7 +85140,7 @@ * sysdeps/ieee754/ldbl-opt/w_ilogb.c: ... here. * sysdeps/ieee754/ldbl-opt/w_ilogbl.c: New file: ilogbl wrapper. -2012-04-17 Petr Baudis +2012-04-17 Petr Baudiš * include/sys/uio.h: Change __vector to __iovec to avoid clash with altivec. @@ -85188,7 +85188,7 @@ [BZ #2074] * libio/libio.h (__io_write_fn): Update comment. -2012-04-12 Petr Baudis +2012-04-12 Petr Baudiš [BZ #2074] * stdio.texi (Hook Functions): The user provided writer function @@ -92408,7 +92408,7 @@ * sysdeps/x86_64/fpu/libm-test-ulps: Add new ULPs for jn_test, regenerate with gen-libm-tests.pl. -2010-05-12 Petr Baudis +2010-05-12 Petr Baudiš [BZ #11589] * sysdeps/ieee754/dbl-64/e_jn.c: Compensate major precision loss @@ -94475,7 +94475,7 @@ * resolv/res_query.c (__libc_res_nsearch): Backport changes from modern BIND to search name as TLD unless forbidden. -2011-05-07 Petr Baudis +2011-05-07 Petr Baudiš Ulrich Drepper [BZ #12393] @@ -94984,7 +94984,7 @@ Hurd needs munmap. * sysdeps/mach/hurd/ifreq.h: New file. -2011-01-27 Petr Baudis +2011-01-27 Petr Baudiš Ulrich Drepper [BZ 12445]# @@ -95432,7 +95432,7 @@ * sysdeps/ieee754/ldbl-128/s_fmal.c (__fmal): Fix up inline asm. -2010-05-31 Petr Baudis +2010-05-31 Petr Baudiš [BZ #11149] * elf/ldconfig.c (main): Allow aux_cache_file open()ing to fail @@ -95443,7 +95443,7 @@ * nis/nss_compat/compat-initgroups.c (internal_getgrent_r): Optimize last patch a bit. Pretty printing -2010-05-31 Petr Baudis +2010-05-31 Petr Baudiš [BZ #10085] * nis/nss_compat/compat-initgroups.c (internal_getgrent_r): Fix @@ -95821,7 +95821,7 @@ * sysdeps/unix/sysv/linux/internal_statvfs.c (INTERNAL_STATVFS): Mask out sign-bit copies when constructing f_fsid. -2010-09-24 Petr Baudis +2010-09-24 Petr Baudiš * debug/stack_chk_fail_local.c: Add missing licence exception. * debug/warning-nop.c: Likewise. @@ -96051,7 +96051,7 @@ * configure.in: Move assembler checks to before sysdep dir checking. -2010-08-20 Petr Baudis +2010-08-20 Petr Baudiš * LICENSES: Sync the sunrpc license. diff --git a/ChangeLog b/ChangeLog.old/ChangeLog.19 similarity index 93% rename from ChangeLog rename to ChangeLog.old/ChangeLog.19 index 6b46bfa09d..84d56ed5e8 100644 --- a/ChangeLog +++ b/ChangeLog.old/ChangeLog.19 @@ -1,3 +1,2559 @@ +2019-10-11 Florian Weimer + + * manual/startup.texi (Aborting a Program): Remove warning. + +2019-10-10 Adhemerval Zanella + + [BZ #18231] + * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add + bits/ipc-perm.h. + * sysdeps/unix/sysv/linux/aarch64/bits/ipc.h: Remove file. + * sysdeps/unix/sysv/linux/alpha/bits/ipc.h: Likewise. + * sysdeps/unix/sysv/linux/hppa/bits/ipc.h: Likewise. + * sysdeps/unix/sysv/linux/ia64/bits/ipc.h: Likewise. + * sysdeps/unix/sysv/linux/mips/bits/ipc.h: Likewise. + * sysdeps/unix/sysv/linux/powerpc/bits/ipc.h: Likewise. + * sysdeps/unix/sysv/linux/s390/bits/ipc.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/bits/ipc.h: Likewise. + * sysdeps/unix/sysv/linux/arm/kernel-features.h + [__BYTE_ORDER == __BIG_ENDIAN] (__ASSUME_SYSVIPC_BROKEN_MODE_T): + Define. + * sysdeps/sysv/linux/microblaze/kernel-features.h: Likewise. + * sysdeps/unix/sysv/linux/s390/kernel-features.h + [!__s390x__] (__ASSUME_SYSVIPC_BROKEN_MODE_T): Define. + * sysdeps/unix/sysv/linux/sh/kernel-features.h + (__ASSUME_SYSVIPC_BROKEN_MODE_T): Define. + * sysdeps/unix/sysv/linux/m68k/kernel-features.h: Likewise. + * sysdeps/unix/sysv/linux/bits/ipc-perm.h: New file. + * sysdeps/unix/sysv/linux/powerpc/bits/ipc-perm.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/bits/ipc-perm.h: Likewise. + * sysdeps/unix/sysv/linux/bits/ipc.h (ipc_perm): Move to + bits/ipc-perm.h. + * sysdeps/unix/sysv/linux/hppa/bits/ipc-perm.h: New file. + * sysdeps/unix/sysv/linux/kernel-features.h: Add comment about + __ASSUME_SYSVIPC_BROKEN_MODE_T semantic. + * sysdeps/unix/sysv/linux/msgctl.c (DEFAULT_VERSION): Define as + 2.31 if __ASSUME_SYSVIPC_BROKEN_MODE_T is defined. + (msgctl_syscall, __msgctl_mode16): New symbol. + (__new_msgctl): Add bits for __ASSUME_SYSVIPC_BROKEN_MODE_T. + * sysdeps/unix/sysv/linux/semctl.c: Likewise. + * sysdeps/unix/sysv/linux/shmctl.c: Likewise. + * sysdeps/unix/sysv/linux/arm/be/libc.abilist (GLIBC_2.31): Add + msgctl, semctl, and shmctl. + * sysdeps/sysv/linux/microblaze/be/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/be/libc.abilist: Likewise. + * conform/data/sys/ipc.h-data: Only xfail {struct ipc_perm} mode_t + mode for Hurd. + * sysdeps/unix/sysv/linux/m68k/Versions (libc) [GLIBC_2.31]: Add + msgctl, semctl, and shmctl. + * sysdeps/unix/sysv/linux/arm/be/Versions: New file. + * sysdeps/unix/sysv/linux/microblaze/be/Versions: Likewise. + * sysdeps/unix/sysv/linux/sh/be/Versions: Likewise. + +2019-10-10 Andreas Schwab + + * elf/dl-load.c (open_verify): Remove dead code. + +2019-10-10 Dmitry V. Levin + + * sysdeps/unix/sysv/linux/syscall-names.list: Fix typos in comment, + reformat the affected paragraph. + +2019-10-10 Łukasz Majewski + + * include/time.h (__clock_settime64): + Add __clock_settime alias according to __TIMESIZE define + * sysdeps/unix/sysv/linux/clock_settime.c (__clock_settime): + Refactor this function to be used only on 32 bit machines as a + wrapper on __clock_settime64. + * sysdeps/unix/sysv/linux/clock_settime.c (__clock_settime64): Add + * sysdeps/unix/sysv/linux/clock_settime.c (__clock_settime64): + Use clock_settime64 kernel syscall (available from 5.1+ Linux) + +2019-10-09 Adhemerval Zanella + + * include/spawn.h (__posix_spawn_file_actions_addopen): New + prototype. + * posix/spawn_faction_addopen.c (posix_spawn_file_actions_addopen): + Add internal alias. + * posix/wordexp.c (create_environment, free_environment): New + functions. + (exec_comm_child, exec_comm): Use posix_spawn instead of fork+exec. + * posix/wordexp-test.c: Use libsupport. + + * sysdeps/unix/sysv/linux/mips/mips64/getdents64.c (__getdents64): + Add small optimization for older kernel to avoid issuing + __NR_getdents64 on each call and replace scratch_buffer usage with + a static allocated buffer. + +2019-10-09 Florian Weimer + + * config.h.in (HAVE_GCC_GOTDATA): Remove. + * sysdeps/sparc/configure.ac: Remove checks for HAVE_GCC_GOTDATA + and PI_STATIC_AND_HIDDEN. Always define PI_STATIC_AND_HIDDEN. + * sysdeps/sparc/configure: Regenerate. + +2019-10-09 Petr Vorel + + * include/dirent.h (__getdents64): Update comment. + +2019-10-08 Gabriel F. T. Gomes + + * Makefile: Fix locale dependency for a couple of tests. + ($(objpfx)tst-strftime2.out): New rule. + ($(objpfx)tst-strftime3.out): Likewise. + +2019-10-08 Florian Weimer + + * posix/tst-wordexp-nocmd.c (do_test): Fix diagnostics output. + +2019-10-08 Florian Weimer + + * posix/Makefile (tests): Add tst-wordexp-nocmd. + * posix/wordexp-test.c (__app_register_atfork): Remove function. + (registered_forks): Remove variable. + (register_fork): Remove function. + (test_case): Remove WRDE_NOCMD tests. + (main): Do not set up fork tracking. Remove integer overflow in + division tests. + (testit): Do not check for unexpected forks. + * posix/tst-wordexp-nocmd.c: New file containing the tests removed + from posix/wordexp-test.c. + +2019-10-07 Florian Weimer + + nptl: Move pthread_attr_setschedparam implementation into libc. + * nptl/Makefile (routines): Add pthread_attr_setschedparam. + (libpthread-routines): Remove pthread_attr_setschedparam. + * nptl/Versions (libpthread GLIBC_2.0): Remove + pthread_attr_setschedparam. + * nptl/forward.c (pthread_attr_setschedparam): Remove definition. + * nptl/nptl-init.c (pthread_functions): Remove initializer for + ptr_pthread_attr_setschedparam. + * sysdeps/nptl/pthread-functions.h (struct pthread_functions): + Remove ptr_pthread_attr_setschedparam member. + * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.17): + Remove pthread_attr_setschedparam. + * sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.0): + Likewise. + * sysdeps/unix/sysv/linux/arm/be/libpthread.abilist (GLIBC_2.4): + Likewise. + * sysdeps/unix/sysv/linux/arm/le/libpthread.abilist (GLIBC_2.4): + Likewise. + * sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.29): + Likewise. + * sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.0): + Likewise. + * sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist + (GLIBC_2.4): Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist + (GLIBC_2.18): Likewise. + * sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist + (GLIBC_2.18): Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.21): + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist + (GLIBC_2.3): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist + (GLIBC_2.17): Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist + (GLIBC_2.27): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist + (GLIBC_2.2): Likewise. + * sysdeps/unix/sysv/linux/sh/be/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/sh/le/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist + (GLIBC_2.2): Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist + (GLIBC_2.2.5): Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist + (GLIBC_2.16): Likewise. + +2019-10-07 Florian Weimer + + riscv: Remove support for variable page sizes. + * sysdeps/unix/sysv/linux/riscv/Makefile [$(subdir) == elf] + (sysdep_routines): Do not add dl-static. + * sysdeps/unix/sysv/linux/riscv/dl-static.c: Remove file. + * sysdeps/unix/sysv/linux/riscv/ldsodefs.h: Likewise. + +2019-10-07 Florian Weimer + + nptl: Move pthread_attr_getschedparam implementation into libc. + * nptl/Makefile (routines): Add pthread_attr_getschedparam. + (libpthread-routines): Remove pthread_attr_getschedparam. + * nptl/Versions (libpthread GLIBC_2.0): Remove + pthread_attr_getschedparam. + * nptl/forward.c (pthread_attr_getschedparam): Remove definition. + * nptl/nptl-init.c (pthread_functions): Remove initializer for + ptr_pthread_attr_getschedparam. + * sysdeps/nptl/pthread-functions.h (struct pthread_functions): + Remove ptr_pthread_attr_getschedparam member. + * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.17): + Remove pthread_attr_getschedparam. + * sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.0): + Likewise. + * sysdeps/unix/sysv/linux/arm/be/libpthread.abilist (GLIBC_2.4): + Likewise. + * sysdeps/unix/sysv/linux/arm/le/libpthread.abilist (GLIBC_2.4): + Likewise. + * sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.29): + Likewise. + * sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.0): + Likewise. + * sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist + (GLIBC_2.4): Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist + (GLIBC_2.18): Likewise. + * sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist + (GLIBC_2.18): Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.21): + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist + (GLIBC_2.3): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist + (GLIBC_2.17): Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist + (GLIBC_2.27): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist + (GLIBC_2.2): Likewise. + * sysdeps/unix/sysv/linux/sh/be/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/sh/le/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist + (GLIBC_2.2): Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist + (GLIBC_2.2.5): Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist + (GLIBC_2.16): Likewise. + +2019-10-04 Florian Weimer + + [BZ #24930] + * elf/dl-load.c (_dl_map_object_from_fd): Only assign TLS modid if + the link map will be returned to the caller. + * elf/Makefile [$(have-fpie) && $(build-shared)] (tests, tests-pie): + Add tst-dlopen-aout-pie. + (tst-tst-dlopen-aout-no-pie): Set. + (CFLAGS-tst-dlopen-aout-pie.c): Build with -fpie. + (tst-dlopen-aout-pie): Link with -ldl -lpthread. + * elf/tst-dlopen-aout-pie.c: New file. + +2019-10-04 Florian Weimer + + [BZ #24900] + * elf/dl-load.c (_dl_map_object_from_fd): Do not use the file ID + when loading the executable as part of an explicit loader + invocation. + +2019-10-04 Florian Weimer + + nptl: Move pthread_attr_setinheritsched implementation into libc. + * nptl/Makefile (routines): Add pthread_attr_setinheritsched. + (libpthread-routines): Remove pthread_attr_setinheritsched. + * nptl/Versions (libpthread GLIBC_2.0): Remove + pthread_attr_setinheritsched. + * nptl/forward.c (pthread_attr_setinheritsched): Remove definition. + * nptl/nptl-init.c (pthread_functions): Remove initializer for + ptr_pthread_attr_setinheritsched. + * sysdeps/nptl/pthread-functions.h (struct pthread_functions): + Remove ptr_pthread_attr_setinheritsched member. + * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.17): + Remove pthread_attr_setinheritsched. + * sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.0): + Likewise. + * sysdeps/unix/sysv/linux/arm/be/libpthread.abilist (GLIBC_2.4): + Likewise. + * sysdeps/unix/sysv/linux/arm/le/libpthread.abilist (GLIBC_2.4): + Likewise. + * sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.29): + Likewise. + * sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.0): + Likewise. + * sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist + (GLIBC_2.4): Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist + (GLIBC_2.18): Likewise. + * sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist + (GLIBC_2.18): Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.21): + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist + (GLIBC_2.3): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist + (GLIBC_2.17): Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist + (GLIBC_2.27): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist + (GLIBC_2.2): Likewise. + * sysdeps/unix/sysv/linux/sh/be/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/sh/le/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist + (GLIBC_2.2): Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist + (GLIBC_2.2.5): Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist + (GLIBC_2.16): Likewise. + +2019-10-02 Joseph Myers + + * sunrpc/clnt_udp.c: Include . + (clntudp_call): Disable -Wmaybe-uninitialized around declaration + of total_deadline. + +2019-10-02 Alistair Francis + + * string/endian.h: Restore the __USE_MISC conditionals. + +2019-10-02 Joseph Myers + + * string/tester.c: Ignore -Warray-bounds and + -Wmemset-transposed-args at top level. + [__GNUC_PREREQ (7, 0)]: Ignore -Wrestrict and -Wstringop-overflow= + at top level. + [__GNUC_PREREQ (8, 0)]: Ignore -Wstringop-truncation at top level. + (test_stpncpy): Do not ignore warnings here. + (test_strncat): Likewise. + (test_strncpy): Likewise. + (test_memset): Likewise. + +2019-10-02 Łukasz Majewski + + * include/time.h: Add #include + +2019-10-02 Paul A. Clarke + + * sysdeps/powerpc/fpu/fenv_private.h: + (__TEST_AND_BEGIN_NON_STOP): New. + (__TEST_AND_END_NON_STOP): New. + (libc_feholdexcept_setround_ppc): Use __TEST_AND_BEGIN_NON_STOP. + (__libc_femergeenv_ppc): Use __TEST_AND_BEGIN_NON_STOP and + __TEST_AND_END_NON_STOP. + (libc_feholdsetround_noex_ppc_ctx): Use __TEST_AND_END_NON_STOP. + +2019-10-02 Arjun Shankar + + debugglibc.sh: Implement program arguments + * Makefile (debugglibc): Change variable definition. + +2019-10-01 Alistair Francis + + * time/bits/types/struct_timespec.h: Add padding for the timespec if + required. + +2019-10-01 Zack Weinberg + Alistair Francis + + * string/endian.h: Unconditionally define LITTLE_ENDIAN, + BIG_ENDIAN, PDP_ENDIAN, and BYTE_ORDER. Condition byteswapping + macros only on !__ASSEMBLER__. Move the definitions of + __BIG_ENDIAN, __LITTLE_ENDIAN, __PDP_ENDIAN, __FLOAT_WORD_ORDER, + and __LONG_LONG_PAIR to... + * string/bits/endian.h: ...this new file, which includes + the renamed header bits/endianness.h for the definition of + __BYTE_ORDER and possibly __FLOAT_WORD_ORDER. + + * string/Makefile: Install bits/endianness.h. + * include/bits/endian.h: New wrapper. + + * bits/endian.h: Rename to bits/endianness.h. + Add multiple-include guard. Rewrite the comment explaining what + the machine-specific variants of this file should do. + + * sysdeps/unix/sysv/linux/ia64/bits/endian.h: + Move to sysdeps/ia64. + + * sysdeps/aarch64/bits/endian.h + * sysdeps/alpha/bits/endian.h + * sysdeps/arm/bits/endian.h + * sysdeps/csky/bits/endian.h + * sysdeps/hppa/bits/endian.h + * sysdeps/ia64/bits/endian.h + * sysdeps/m68k/bits/endian.h + * sysdeps/microblaze/bits/endian.h + * sysdeps/mips/bits/endian.h + * sysdeps/nios2/bits/endian.h + * sysdeps/powerpc/bits/endian.h + * sysdeps/riscv/bits/endian.h + * sysdeps/s390/bits/endian.h + * sysdeps/sh/bits/endian.h + * sysdeps/sparc/bits/endian.h + * sysdeps/x86/bits/endian.h: + Rename to endianness.h; canonicalize form of file; remove + redundant definitions of __FLOAT_WORD_ORDER. + + * sysdeps/powerpc/bits/endianness.h: Remove logic to check for + broken compilers. + + * ctype/ctype.h + * sysdeps/aarch64/nptl/bits/pthreadtypes-arch.h + * sysdeps/arm/nptl/bits/pthreadtypes-arch.h + * sysdeps/csky/nptl/bits/pthreadtypes-arch.h + * sysdeps/ia64/ieee754.h + * sysdeps/ieee754/ieee754.h + * sysdeps/ieee754/ldbl-128/ieee754.h + * sysdeps/ieee754/ldbl-128ibm/ieee754.h + * sysdeps/m68k/nptl/bits/pthreadtypes-arch.h + * sysdeps/microblaze/nptl/bits/pthreadtypes-arch.h + * sysdeps/mips/ieee754/ieee754.h + * sysdeps/mips/nptl/bits/pthreadtypes-arch.h + * sysdeps/nios2/nptl/bits/pthreadtypes-arch.h + * sysdeps/nptl/pthread.h + * sysdeps/riscv/nptl/bits/pthreadtypes-arch.h + * sysdeps/sh/nptl/bits/pthreadtypes-arch.h + * sysdeps/sparc/sparc32/ieee754.h + * sysdeps/unix/sysv/linux/generic/bits/stat.h + * sysdeps/unix/sysv/linux/generic/bits/statfs.h + * sysdeps/unix/sysv/linux/sys/acct.h + * wctype/bits/wctype-wchar.h: + Include bits/endian.h, not endian.h. + + * sysdeps/unix/sysv/linux/hppa/pthread.h: Don’t include endian.h. + + * sysdeps/mips/ieee754/ieee754.h: Use __LDBL_MANT_DIG__ + in ifdefs, instead of LDBL_MANT_DIG. Only include float.h + when __LDBL_MANT_DIG__ is not predefined, in which case + define __LDBL_MANT_DIG__ to equal LDBL_MANT_DIG. + +2019-09-17 Mike FABIAN + + * localedata/locales/az_AZ: Make lang_name agree with CLDR + * localedata/locales/be_BY@latin: Make lang_name agree with langtable + * localedata/locales/ber_DZ: Make language, country_name, lang_name agree with langtable + * localedata/locales/ber_MA: Add country_name from langtable, make language, lang_name agree with langtable + * localedata/locales/bhb_IN: Add country_name from langtable, make lang_name agree with langtable + * localedata/locales/bho_IN: Add country_name from langtable + * localedata/locales/chr_US: Make country_name agree with CLDR + * localedata/locales/crh_UA: Make lang_name agree with langtable + * localedata/locales/csb_PL: Add country_name from langtable + * localedata/locales/doi_IN: Add country_name from langtable + * localedata/locales/dv_MV: Add country_name from langtable + * localedata/locales/eo: Fix capitalisation of lang_name, agree with CLDR + * localedata/locales/hak_TW: Make lang_name agree with langtable + * localedata/locales/hif_FJ: Make lang_name agree with langtable + * localedata/locales/hne_IN: Add country_name from langtable + * localedata/locales/ia_FR: Fix capitalisation of lang_name, agree with CLDR + * localedata/locales/id_ID: Make lang_name agree with CLDR + * localedata/locales/ig_NG: Make country_name, lang_name agree with CLDR + * localedata/locales/kab_DZ: Make country_name agree with CLDR + * localedata/locales/ks_IN: Make country_name agree with CLDR + * localedata/locales/ku_TR: Make country_name, lang_name agree with CLDR + * localedata/locales/mag_IN: Add country_name from langtable + * localedata/locales/mfe_MU: Make country_name agree with CLDR + * localedata/locales/mhr_RU: Add lang_name from langtable + * localedata/locales/mi_NZ: Make lang_name agree with CLDR + * localedata/locales/ms_MY: Make lang_name agree with CLDR + * localedata/locales/nan_TW: Make lang_name agree with langtable + * localedata/locales/nan_TW@latin: Make lang_name agree with langtable + * localedata/locales/nds_DE: Make lang_name agree with langtable + * localedata/locales/nds_NL: Make lang_name agree with langtable + * localedata/locales/nhn_MX: Add country_name from langtable, make lang_name agree with langtable + * localedata/locales/niu_NU: Add country_name, lang_name from langtable + * localedata/locales/niu_NZ: Add lang_name from langtable + * localedata/locales/nr_ZA: Fix capitalisation of lang_name from langtable + * localedata/locales/oc_FR: Fix capitalisation of lang_name from langtable + * localedata/locales/or_IN: Fix spelling of language from langtable + * localedata/locales/pa_PK: Make country_name agree with CLDR + * localedata/locales/ps_AF: Make country_name agree with CLDR + * localedata/locales/quz_PE: Make language, lang_name agree with langtable + * localedata/locales/raj_IN: Make country_name, lang_name agree with langtable + * localedata/locales/rw_RW: Make country_name agree with CLDR + * localedata/locales/sah_RU: Make langauge, country_name, lang_name agree with CLDR + * localedata/locales/sat_IN: Make country_name, lang_name agree with langtable + * localedata/locales/sc_IT: Fix capitalisaton of lang_name according to langtable + * localedata/locales/sd_IN: Make country_name, lang_name agree with CLDR + * localedata/locales/sd_IN@devanagari: Make lang_name agree with langtable + * localedata/locales/shn_MM: Make country_name agree with langtable + * localedata/locales/shs_CA: Make language, lang_name agree with langtable + * localedata/locales/sm_WS: Make country_name agree with langtable + * localedata/locales/ss_ZA: Fix capitalisation of lang_name from langtable + * localedata/locales/szl_PL: Add country_name from langtable + * localedata/locales/te_IN: Fix country_name from CLDR + * localedata/locales/tg_TJ: Add lang_name from CLDR + * localedata/locales/the_NP: Add country_name, lang_name from langtable + * localedata/locales/tk_TM: Make lang_name agree with CLDR + * localedata/locales/tl_PH: Add lang_name from langtable + * localedata/locales/to_TO: Make lang_name agree with CLDR + * localedata/locales/tpi_PG: Make country_name, lang_name agree with langtable + * localedata/locales/tt_RU@iqtelif: Add country_name, lang_name from langtable + * localedata/locales/ug_CN: Add lang_name from CLDR + * localedata/locales/unm_US: Add lang_name from langtable + * localedata/locales/wa_BE: Fix capitalisation of lang_name from langtable + * localedata/locales/wo_SN: Add lang_name from CLDR + * localedata/locales/xh_ZA: Fix capitalisation of country_name, lang_name from CLDR + * localedata/locales/yo_NG: Make country_name agree with CLDR + * localedata/locales/yuw_PG: Make langauge, lang_name agree with langtable + * localedata/locales/zh_HK: Add lang_name from langtable + * localedata/locales/zh_SG: Add lang_name from langtable + +2019-09-30 Joseph Myers + + * scripts/build-many-glibcs.py (Context.checkout): Default + binutils version to 2.33 branch. + +2019-10-01 Lukasz Majewski + + * include/time.h (valid_timeval_to_timespec64): Add. + * include/time.h (valid_timespec_to_timespec64): Likewise. + * include/time.h (valid_timespec64_to_timespec): Likewise. + * include/time.h (valid_timespec64_to_timeval): Likewise. + +2019-09-30 Joseph Myers + + * sysdeps/unix/sysv/linux/powerpc/bits/mman.h [__USE_MISC] + (MAP_SYNC): New macro. + * sysdeps/unix/sysv/linux/sparc/bits/mman.h [__USE_MISC] + (MAP_SYNC): Likewise. + * sysdeps/unix/sysv/linux/tst-mman-consts.py (main): Update Linux + kernel version number to 5.3. + +2019-09-27 Paul A. Clarke + + * sysdeps/powerpc/fpu/fenv_libc.h (fesetenv_mode): Rename to + fesetenv_control. + * sysdeps/powerpc/fpu/fedisblxcpt.c (fedisableexcept): Accommodate + rename of fesetenv_mode to fegetenv_control. + * sysdeps/powerpc/fpu/feenablxcpt.c (feenableexcept): Likewise. + * sysdeps/powerpc/fpu/fesetmode.c (fesetmode): Likewise. + * sysdeps/powerpc/fpu/fenv_private.h (__libc_femergeenv_ppc): Likewise. + (libc_feholdsetround_noex_ppc_ctx): Likewise. + +2019-09-27 Paul A. Clarke + + * sysdeps/powerpc/fpu/fenv_private.h + (libc_feholdsetround_noex_ppc_ctx): Call fesetenv_mode instead + of fesetenv_register. + +2019-09-27 Paul A. Clarke + + * sysdeps/powerpc/fpu/fenv_libc.h (fegetenv_status): Rename to + fegetenv_control. + * sysdeps/powerpc/fpu/fedisblxcpt.c (fedisableexcept): Accommodate + rename of fegetenv_status to fegetenv_control. + * sysdeps/powerpc/fpu/feenablxcpt.c (feenableexcept): Likewise. + * sysdeps/powerpc/fpu/fegetexcept.c (__fegetexcept): Likewise. + * sysdeps/powerpc/fpu/fegetmode.c (fegetmode): Likewise. + * sysdeps/powerpc/fpu/fesetenv.c (__fesetenv): Likewise. + * sysdeps/powerpc/fpu/fesetmode.c (fesetmode): Likewise. + +2019-09-27 Paul A. Clarke + + * sysdeps/powerpc/fpu/fenv_libc.h (__fesetround_inline): Use + 'mffscrn' instruction on POWER9. + (__fesetround_inline_nocheck): Likewise. + +2019-09-27 Paul A. Clarke + + * sysdeps/powerpc/fpu/fenv_libc.h (FPSCR_EXCEPTIONS_MASK): New. + * sysdeps/powerpc/fpu/fenv_private.h (__libc_femergeenv_ppc): Optimize + to write FPSCR control only, if exceptions have not changed. + +2019-09-27 Paul A. Clarke + + * sysdeps/powerpc/fpu/fenv_libc.h: + (__TEST_AND_ENTER_NON_STOP): New. + (__TEST_AND_EXIT_NON_STOP): New. + * sysdeps/powerpc/fpu/fenv_private.h + (_FPU_ALL_TRAPS): Delete, replace with FPSCR_ENABLES_MASK. + (_FPU_MASK_RN): Delete. + (_FPU_MASK_NOT_RN_NI): Delete. + (_FPU_MASK_TRAPS_RN): Delete, replace with ~FPSCR_CONTROL_MASK. + (_FPU_MASK_FRAC_INEX_RET_CC): Delete, replace with ~FPSCR_STATUS_MASK. + (__libc_feholdbits_ppc): Delete, move code into + libc_feholdexcept_setround_ppc. + (libc_feholdexcept_ppc): Delete. + (libc_fesetround_ppc): Delete. + (libc_fetestexcept_ppc): Delete. + (libc_feholdsetround_ppc): Delete. + (__libc_femergeenv_ppc): Use __TEST_AND_ENTER/EXIT_NON_STOP. + (libc_feholdsetround_noex_ppc_ctx): Likewise. + (libc_feupdateenv_test_ppc): Use FPSCR defines. + * sysdeps/powerpc/fpu/feenablxcpt.c (feenableexcept): Use + __TEST_AND_ENTER_NON_STOP. + * sysdeps/powerpc/fpu/fedisblxcpt.c (fedisableexcept): Likewise. + * sysdeps/powerpc/fpu/feholdexcpt.c (__feholdexcept): Likewise. + * sysdeps/powerpc/fpu/fesetenv.c (__fesetenv): Likewise. + * sysdeps/powerpc/fpu/fesetmode.c (fesetmode): Likewise. + * sysdeps/powerpc/fpu/feupdateenv.c (__feupdateenv): Likewise. + (_FPU_MASK_ALL): Delete. + +2019-09-27 Joseph Myers + + * sysdeps/gnu/netinet/tcp.h (TCP_TX_DELAY): New macro. + +2019-09-26 Lukasz Majewski + + * include/time.h: Add struct __timespec64 definition + +2019-09-26 Siddhesh Poyarekar + + * scripts/vcs_to_changelog/misc_util.py (decode): Remove latin1 + from codecs. + +2019-09-25 Adhemerval Zanella + + * rt/Makefile (CFLAGS-clock_nanosleep.c): Move to ... + * time/Makefile (CFLAGS-clock_nanosleep.c): ... here. + + * sysdeps/unix/sysv/linux/Makefile + (CFLAGS-tst-sigcontextinfo-get_pc.c): Rename to + CFLAGS-tst-sigcontext-get_pc.c. + +2019-09-24 Alistair Francis + + * inet/net-internal.h: Fix uninitalised clntudp_call() variable. + +2019-09-24 Andreas Schwab + + * sysdeps/unix/sysv/linux/arm/sysdep.h + (HAVE_CLOCK_GETTIME_VSYSCALL): Define to "__vdso_clock_gettime", + not "__vdso_gettimeofday". + (HAVE_GETTIMEOFDAY_VSYSCALL): Define to "__vdso_gettimeofday", not + "__vdso_clock_gettime". + * sysdeps/unix/sysv/linux/mips/sysdep.h + (HAVE_CLOCK_GETTIME_VSYSCALL): Define to "__vdso_clock_gettime", + not "__vdso_gettimeofday". + (HAVE_GETTIMEOFDAY_VSYSCALL): Define to "__vdso_gettimeofday", not + "__vdso_clock_gettime". + +2019-09-19 Paul A. Clarke + + * sysdeps/powerpc/fpu/fenv_libc.h (fegetenv_and_set_rn): New. + (__fe_mffscrn): New. + * sysdeps/powerpc/fpu/fenv_private.h (libc_feholdsetround_ppc_ctx): + Do not clear enable bits, remove obsolete code, use + fegetenv_and_set_rn. + (libc_feresetround_ppc): Remove obsolete code, use + fegetenv_and_set_rn. + +2019-09-19 Stefan Liebler + + * support/support_ptrace.c: Remove inclusion of sys/prctl.h. + +2019-09-19 Stefan Liebler + + * sysdeps/s390/hp-timing.h (_HP_TIMING_H): Undefine. + (_HP_TIMING_S390_H): Define. + +2019-09-18 Joseph Myers + + * sysdeps/unix/sysv/linux/syscall-names.list: Update kernel + version to 5.3. + (clone3): New syscall. + (pidfd_open): Likewise. + + * scripts/build-many-glibcs.py (Context.checkout): Default Linux + version to 5.3. + +2019-09-18 Stefan Liebler + + * sysdeps/s390/hp-timing.h: New file. + +2019-09-18 Joseph Myers + + * sysdeps/unix/sysv/linux/riscv/vfork.S: Do not include + . + (CLONE_VM): New macro. + (CLONE_VFORK): Likewise. + +2019-09-18 Stefan Liebler + + * elf/tst-pldd.c (do_test): Add UNSUPPORTED check. + Rearrange subprocesses. + (pldd_process): New function. + * support/Makefile (libsupport-routines): Add support_ptrace. + * support/xptrace.h: New file. + * support/support_ptrace.c: Likewise. + +2019-09-17 Adhemerval Zanella + + * sysdeps/unix/sysv/linux/sparc/sparc64/time.c: Remove file. + + * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h + (INTERNAL_VSYSCALL_CALL): Remove. + * sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h + (INTERNAL_VSYSCALL_CALL): Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h + (INTERNAL_VSYSCALL_CALL): Likewise. + * sysdeps/unix/sysv/linux/mips/sysdep.h (INTERNAL_VSYSCALL_CALL): + New macro. + + * sysdeps/unix/sysv/linux/libc-vdso.h (VDSO_IFUNC_RET): Define if not + defined. + * sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c + (__get_timebase_freq): Remove use of + INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK. + (get_timebase_freq_fallback): New symbol. + * sysdeps/unix/sysv/linux/powerpc/gettimeofday.c (time): Use + HAVE_GETTIMEOFDAY_VSYSCALL. + * sysdeps/unix/sysv/linux/powerpc/time.c (gettimeofday): Use + HAVE_TIME_VSYSCALL. + * sysdeps/unix/sysv/linux/powerpc/libc-vdso.h: Include generic + implementation. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h + (INTERNAL_VSYSCALL_CALL_TYPE): Make calling convention similar to + powerpc64. + (INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK): Remove macro. + * .../sysv/linux/powerpc/powerpc64/sysdep.h + (INTERNAL_VSYSCALL_NO_SYSCALL_FALLBACK): Likewise. + * sysdeps/unix/sysv/linux/powerpc/sysdep.h + (HAVE_GETTIMEOFDAY_VSYSCALL): Define. + + * sysdeps/powerpc/powerpc32/backtrace.c (is_sigtramp_address, + is_sigtramp_address_rt): Use HAVE_SIGTRAMP_{RT}32 instead of SHARED. + * sysdeps/powerpc/powerpc64/backtrace.c (is_sigtramp_address): + Likewise. + * sysdeps/unix/sysv/linux/aarch64/init-first.c: Remove file. + * sysdeps/unix/sysv/linux/aarch64/libc-vdso.h: Likewise. + * sysdeps/unix/sysv/linux/arm/init-first.c: Likewise. + * sysdeps/unix/sysv/linux/arm/libc-vdso.h: Likewise. + * sysdeps/unix/sysv/linux/mips/init-first.c: Likewise. + * sysdeps/unix/sysv/linux/mips/libc-vdso.h: Likewise. + * sysdeps/unix/sysv/linux/i386/init-first.c: Likewise. + * sysdeps/unix/sysv/linux/riscv/init-first.c: Likewise. + * sysdeps/unix/sysv/linux/riscv/libc-vdso.h: Likewise. + * sysdeps/unix/sysv/linux/s390/init-first.c: Likewise. + * sysdeps/unix/sysv/linux/s390/libc-vdso.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/init-first.c: Likewise. + * sysdeps/unix/sysv/linux/sparc/libc-vdso.h: Likewise. + * sysdeps/unix/sysv/linux/x86/libc-vdso.h: Likewise. + * sysdeps/unix/sysv/linux/x86_64/init-first.c: Likewise. + * sysdeps/unix/sysv/linux/aarch64/sysdep.h + (HAVE_CLOCK_GETRES_VSYSCALL, HAVE_CLOCK_GETTIME_VSYSCALL, + HAVE_GETTIMEOFDAY_VSYSCALL): Define value based on kernel exported + name. + * sysdeps/unix/sysv/linux/arm/sysdep.h (HAVE_CLOCK_GETTIME_VSYSCALL, + HAVE_GETTIMEOFDAY_VSYSCALL): Likewise. + * sysdeps/unix/sysv/linux/i386/sysdep.h (HAVE_CLOCK_GETTIME_VSYSCALL, + HAVE_GETTIMEOFDAY_VSYSCALL): Likewise. + * sysdeps/unix/sysv/linux/mips/sysdep.h (HAVE_CLOCK_GETTIME_VSYSCALL, + HAVE_GETTIMEOFDAY_VSYSCALL): Likewise. + * sysdeps/unix/sysv/linux/powerpc/sysdep.h + (HAVE_CLOCK_GETRES_VSYSCALL, HAVE_CLOCK_GETTIME_VSYSCALL, + HAVE_GETCPU_VSYSCALL, HAVE_TIME_VSYSCALL, HAVE_GET_TBFREQ, + HAVE_SIGTRAMP_RT64, HAVE_SIGTRAMP_32, HAVE_SIGTRAMP_RT32i, + HAVE_GETTIMEOFDAY_VSYSCALL): Likewise. + * sysdeps/unix/sysv/linux/riscv/sysdep.h (HAVE_CLOCK_GETRES_VSYSCALL, + HAVE_CLOCK_GETTIME_VSYSCALL, HAVE_GETTIMEOFDAY_VSYSCALL, + HAVE_GETCPU_VSYSCALL): Likewise. + * sysdeps/unix/sysv/linux/s390/sysdep.h (HAVE_CLOCK_GETRES_VSYSCALL, + HAVE_CLOCK_GETTIME_VSYSCALL, HAVE_GETTIMEOFDAY_VSYSCALL, + HAVE_GETCPU_VSYSCALL): Likewise. + * sysdeps/unix/sysv/linux/sparc/sysdep.h (HAVE_CLOCK_GETTIME_VSYSCALL, + HAVE_GETTIMEOFDAY_VSYSCALL): Likewise. + * sysdeps/unix/sysv/linux/x86_64/sysdep.h + (HAVE_CLOCK_GETTIME_VSYSCALL, HAVE_GETTIMEOFDAY_VSYSCALL, + HAVE_GETCPU_VSYSCALL): Likewise. + * sysdeps/unix/sysv/linux/dl-vdso.h (VDSO_NAME, VDSO_HASH): Define to + invalid names if architecture does not define them. + (get_vdso_mangle_symbol): New symbol. + * sysdeps/unix/sysv/linux/init-first.c: New file. + * sysdeps/unix/sysv/linux/libc-vdso.h: Likewise. + * sysdeps/unix/sysv/linux/powerpc/init-first.c (gettimeofday, + clock_gettime, clock_getres, getcpu, time): Remove declaration. + (__libc_vdso_platform_setup_arch): Likewise and use + get_vdso_mangle_symbol to setup vDSO symbols. + (sigtramp_rt64, sigtramp32, sigtramp_rt32, get_tbfreq): Add + attribute_hidden. + * sysdeps/unix/sysv/linux/powerpc/libc-vdso.h: Likewise. + * sysdeps/unix/sysv/linux/sysdep-vdso.h (VDSO_SYMBOL): Remove + definition. + + * sysdeps/unix/make-syscalls.sh: Make vDSO call use get_vdso_symbol. + * sysdeps/unix/sysv/linux/aarch64/gettimeofday.c (__gettimeofday): + Use get_vdso_symbol instead of _dl_vdso_vsym. + * sysdeps/unix/sysv/linux/powerpc/time.c (time): Likewise. + * sysdeps/unix/sysv/linux/riscv/flush-icache.c + (__lookup_riscv_flush_icache): Likewise. + * sysdeps/unix/sysv/linux/x86/gettimeofday.c (__gettimeofday): + Likewise. + * sysdeps/unix/sysv/linux/x86/time.c (time): Likewise. + * sysdeps/unix/sysv/linux/powerpc/gettimeofday.c: Likewise. + * sysdeps/unix/sysv/linux/aarch64/init-first.c: Likewise. + * sysdeps/unix/sysv/linux/arm/init-first.c: Likewise. + * sysdeps/unix/sysv/linux/i386/init-first.c: Likewise. + * sysdeps/unix/sysv/linux/mips/init-first.c: Likewise. + * sysdeps/unix/sysv/linux/powerpc/init-first.c: Likewise. + * sysdeps/unix/sysv/linux/riscv/init-first.c: Likewise. + * sysdeps/unix/sysv/linux/sparc/init-first.c: Likewise. + * sysdeps/unix/sysv/linux/s390/init-first.c: Likewise. + * sysdeps/unix/sysv/linux/x86_64/init-first.c: Likewise. + * sysdeps/unix/sysv/linux/aarch64/sysdep.h (VDSO_NAME, VDSO_HASH): + Define. + * sysdeps/unix/sysv/linux/arm/sysdep.h (VDSO_NAME, VDSO_HASH): + Likewise. + * sysdeps/unix/sysv/linux/i386/sysdep.h (VDSO_NAME, VDSO_HASH): + Likewise. + * sysdeps/unix/sysv/linux/riscv/sysdep.h (VDSO_NAME, VDSO_HASH): + Likewise. + * sysdeps/unix/sysv/linux/sparc/sysdep.h (VDSO_NAME, VDSO_HASH): + Likewise. + * sysdeps/unix/sysv/linux/x86_64/sysdep.h (VDSO_NAME, VDSO_HASH): + Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h + (HAVE_CLOCK_GETTIME_VSYSCALL, HAVE_GETTIMEOFDAY_VSYSCALL): Remove + definition. + * sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h + (HAVE_CLOCK_GETTIME_VSYSCALL, HAVE_GETTIMEOFDAY_VSYSCALL): Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h + (HAVE_CLOCK_GETTIME_VSYSCALL, HAVE_GETTIMEOFDAY_VSYSCALL): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h + (HAVE_CLOCK_GETTIME_VSYSCALL, HAVE_GETTIMEOFDAY_VSYSCALL): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h + (HAVE_CLOCK_GETTIME_VSYSCALL, HAVE_GETTIMEOFDAY_VSYSCALL): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h + (HAVE_CLOCK_GETRES_VSYSCALL, HAVE_CLOCK_GETTIME_VSYSCALL, + HAVE_GETTIMEOFDAY_VSYSCALL, HAVE_GETCPU_VSYSCALL): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h + (HAVE_CLOCK_GETRES_VSYSCALL, HAVE_CLOCK_GETTIME_VSYSCALL, + HAVE_GETTIMEOFDAY_VSYSCALL, HAVE_GETCPU_VSYSCALL): Likewise. + * sysdeps/unix/sysv/linux/mips/sysdep.h: New file. + * sysdeps/unix/sysv/linux/powerpc/sysdep.h: Likewise. + * sysdeps/unix/sysv/linux/s390/sysdep.h: Likewise. + * sysdeps/unix/sysv/linux/dl-vdso.h (PREPARE_VERSION, + PREPARE_VERSION_KNOWN, VDSO_NAME_LINUX_2_6, VDSO_HASH_LINUX_2_6, + VDSO_NAME_LINUX_2_6_15, VDSO_HASH_LINUX_2_6_15, + VDSO_NAME_LINUX_2_6_29, VDSO_HASH_LINUX_2_6_29, + VDSO_NAME_LINUX_4_15, VDSO_HASH_LINUX_4_15): Remove defines. + (get_vdso_symbol): New function. + +2019-09-17 Chung-Lin Tang + + * sysdeps/generic/hp-timing-common.h (HP_TIMING_PRINT): Correct + position of string null termination. + +2019-09-14 Aurelien Jarno + + [BZ #24986] + * sysdeps/unix/alpha/getegid.S: Move to ... + * sysdeps/unix/sysv/linux/alpha/getegid.S: ... here. + * sysdeps/unix/alpha/geteuid.S: Move to ... + * sysdeps/unix/sysv/linux/alpha/geteuid.S: ... here. + * sysdeps/unix/alpha/getppid.S: Move to ... + * sysdeps/unix/sysv/linux/alpha/getppid.S: ... here + +2019-09-09 Paul Eggert + + Fix http: URL in 'configure' + * configure.ac: Add URL to AC_INIT so that it generates an + https: URL instead of an http: URL. + * configure: Regenerate. + + Regenerate charmap-kw.h, locfile-kw.h + This propagates the recent http->https URL changes. + Since I used gperf 3.1 to regenerate, this is also a minor + internal-to-localedef API change. + URL problem reported by Joseph Myers in: + https://www.sourceware.org/ml/libc-alpha/2019-09/msg00143.html + * locale/programs/charmap-kw.h, locale/programs/locfile-kw.h: + Regenerate with gperf 3.1. + * locale/programs/linereader.h (kw_hash_fct_t): + * locale/programs/repertoire.c (repertoiremap_hash): + 2nd arg is now size_t not unsigned, for compatibility with gperf 3.1. + +2019-09-05 Florian Weimer + + [BZ #24962] + * locale/localeinfo.h (_nl_category_names): Remove union wrapper. + (_nl_category_names_get): New function. + * intl/dcigettext.c (category_to_name): Call it. + * locale/findlocale.c (_nl_find_locale): Likewise. + * intl/loadlocale.c (_nl_load_locale): Likewise. + * locale/newlocale.c (__newlocale): Likewise. + * locale/setlocale.c (_nl_category_names): Adjust definition. + (_nl_category_name_idxs): Likewise. + (new_composite_name): Call _nl_category_names_get. + (setlocale): Likewise. + +2019-09-05 Gabriel F. T. Gomes + + * math/bits/mathcalls.h (totalorder, totalordermag): Replace + const attribute with pure attribute. + +2019-09-04 Lukasz Majewski + + * sysdeps/unix/sysv/linux/kernel-features.h + (__ASSUME_TIME64_SYSCALLS): New macro. + +2019-09-04 Zack Weinberg + + [BZ #24959] + * rt/clock_getcpuclockid.c: Move to time/clock_getcpuclockid.c. + * rt/clock_getres.c: Move to time/clock_getres.c. + * rt/clock_gettime.c: Move to time/clock_gettime.c. + * rt/clock_nanosleep.c: Move to time/clock_nanosleep.c. + * rt/clock_settime.c: Move to time/clock_settime.c. + * rt/tst-clock.c: Move to time/tst-clock.c. + * rt/tst-clock2.c: Move to time/tst-clock2.c. + * rt/tst-clock_nanosleep.c: Move to time/tst-clock_nanosleep.c. + * rt/tst-cpuclock1.c: Move to time/tst-cpuclock1.c. + * rt/clock-compat.c: Delete file. + + * time/clock_getcpuclockid.c + * time/clock_getres.c + * time/clock_gettime.c + * time/clock_nanosleep.c + * time/clock_settime.c + * sysdeps/posix/clock_getres.c + * sysdeps/unix/clock_gettime.c + * sysdeps/unix/clock_nanosleep.c + * sysdeps/unix/clock_settime.c + * sysdeps/unix/sysv/linux/clock_getcpuclockid.c + * sysdeps/unix/sysv/linux/clock_getres.c + * sysdeps/unix/sysv/linux/clock_gettime.c + * sysdeps/unix/sysv/linux/clock_nanosleep.c + * sysdeps/unix/sysv/linux/clock_settime.c: Define the function + defined by this file with default symbol version GLIBC_2_17, + and optionally a compatibility alias at symbol version GLIBC_2_2. + * include/time.h: Remove internal prototypes for clock_getres, + clock_nanosleep, and clock_getcpuclockid. + + * sysdeps/unix/sysv/linux/clock_gettime.c: Prune includes. + Remove unused function realtime_gettime. + + * rt/Makefile (clock-routines, routines): Remove variable. + (librt-routines): Remove clock-compat. + (tests): Remove tst-clock, tst-clock2, tst-clock_nanosleep, + and tst-cpuclock1. + * time/Makefile (routines): Add clock_getres, clock_gettime, + clock_settime, clock_getcpuclockid, and clock_nanosleep. + (tests): Add tst-clock, tst-clock2, tst-clock_nanosleep, + and tst-cpuclock1. + + * rt/Versions (libc): Remove entire stanza. + (librt GLIBC_2.2): Remove all clock_* functions. + * time/Versions (libc GLIBC_2.2, libc GLIBC_2.17): + Add clock_getres, clock_gettime, clock_settime, + clock_getcpuclockid, and clock_nanosleep. + (libc GLIBC_PRIVATE): Add __clock_gettime. + + * sysdeps/mach/hurd/i386/librt.abilist + * sysdeps/unix/sysv/linux/alpha/librt.abilist + * sysdeps/unix/sysv/linux/arm/be/librt.abilist + * sysdeps/unix/sysv/linux/arm/le/librt.abilist + * sysdeps/unix/sysv/linux/hppa/librt.abilist + * sysdeps/unix/sysv/linux/i386/librt.abilist + * sysdeps/unix/sysv/linux/ia64/librt.abilist + * sysdeps/unix/sysv/linux/m68k/coldfire/librt.abilist + * sysdeps/unix/sysv/linux/m68k/m680x0/librt.abilist + * sysdeps/unix/sysv/linux/microblaze/be/librt.abilist + * sysdeps/unix/sysv/linux/microblaze/le/librt.abilist + * sysdeps/unix/sysv/linux/mips/mips32/librt.abilist + * sysdeps/unix/sysv/linux/mips/mips64/librt.abilist + * sysdeps/unix/sysv/linux/powerpc/powerpc32/librt.abilist + * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/librt.abilist + * sysdeps/unix/sysv/linux/s390/s390-32/librt.abilist + * sysdeps/unix/sysv/linux/s390/s390-64/librt.abilist + * sysdeps/unix/sysv/linux/sh/librt.abilist + * sysdeps/unix/sysv/linux/sparc/sparc32/librt.abilist + * sysdeps/unix/sysv/linux/sparc/sparc64/librt.abilist + * sysdeps/unix/sysv/linux/x86_64/64/librt.abilist + * sysdeps/unix/sysv/linux/x86_64/x32/librt.abilist: + Remove entries for clock_getres, clock_gettime, clock_settime, + clock_getcpuclockid, and clock_nanosleep. + + * sysdeps/mach/hurd/i386/libc.abilist + * sysdeps/unix/sysv/linux/alpha/libc.abilist + * sysdeps/unix/sysv/linux/arm/libc.abilist + * sysdeps/unix/sysv/linux/hppa/libc.abilist + * sysdeps/unix/sysv/linux/i386/libc.abilist + * sysdeps/unix/sysv/linux/ia64/libc.abilist + * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist + * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist + * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist + * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist + * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist + * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist + * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist + * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist + * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist + * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist + * sysdeps/unix/sysv/linux/sh/be/libc.abilist + * sysdeps/unix/sysv/linux/sh/le/libc.abilist + * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist + * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist + * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist + * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: + Add another set of entries for clock_getres, clock_gettime, + clock_settime, clock_getcpuclockid, and clock_nanosleep at + whatever version GLIBC_2.2 maps to. + +2019-09-03 Aurelien Jarno + + * sysdeps/alpha/fpu/libm-test-ulps: Regenerated using GCC 9.2. + +2019-09-03 Florian Weimer + + [BZ #24950] + * locale/programs/charmap.h (struct charseq): Turn bytes into a + flexible array member. + * locale/programs/ld-ctype.c (ctype_finish): Use initializer for + replace. + +2019-09-02 Florian Weimer + + * misc/tst-mntent-autofs.c: New file. + * misc/Makefile (tests): Add misc/tst-mntent-autofs. + +2019-09-02 Ian Kent + + Use autofs "ignore" mount hint in getmntent_r/getmntent. + * misc/mntent_r.c (get_mnt_entry): New function, extracted from + getmntent_r. + (__getmntent_r): Call it. Filter out autofs entries with an + "ignore" mount option. + +2019-08-30 Wilco Dijkstra + + * benchtests/bench-memcpy.c (simple_memcpy): Remove. + (generic_memcpy): Include generic C memcpy. + * benchtests/bench-memmove.c (simple_memmove): Remove. + (generic_memmove): Include generic C memmove. + * benchtests/bench-memset.c (simple_memset): Remove. + (generic_memset): Include generic C memset. + * benchtests/bench-memset-large.c (simple_memset): Remove. + (generic_memset): Include generic C memset. + * benchtests/bench-memset-walk.c (simple_memset): Remove. + (generic_memset): Include generic C memset. + * string/memcpy.c (MEMCPY): Add defines to enable redirection. + * string/memset.c (MEMSET): Likewise. + * sysdeps/x86_64/memcopy.h: Remove empty file. + +2019-08-30 Florian Weimer + + nptl: Move pthread_attr_getinheritsched implementation into libc. + * nptl/Makefile (routines): Add pthread_attr_getinheritsched. + (libpthread-routines): Remove pthread_attr_getinheritsched. + * nptl/Versions (libpthread GLIBC_2.0): Remove + pthread_attr_getinheritsched. + * nptl/forward.c (pthread_attr_getinheritsched): Remove definition. + * nptl/nptl-init.c (pthread_functions): Remove initializer for + ptr_pthread_attr_getinheritsched. + * sysdeps/nptl/pthread-functions.h (struct pthread_functions): + Remove ptr_pthread_attr_getinheritsched member. + * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.17): + Remove pthread_attr_getinheritsched. + * sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.0): + Likewise. + * sysdeps/unix/sysv/linux/arm/be/libpthread.abilist (GLIBC_2.4): + Likewise. + * sysdeps/unix/sysv/linux/arm/le/libpthread.abilist (GLIBC_2.4): + Likewise. + * sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.29): + Likewise. + * sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.0): + Likewise. + * sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist + (GLIBC_2.4): Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist + (GLIBC_2.18): Likewise. + * sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist + (GLIBC_2.18): Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.21): + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist + (GLIBC_2.3): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist + (GLIBC_2.17): Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist + (GLIBC_2.27): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist + (GLIBC_2.2): Likewise. + * sysdeps/unix/sysv/linux/sh/be/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/sh/le/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist + (GLIBC_2.2): Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist + (GLIBC_2.2.5): Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist + (GLIBC_2.16): Likewise. + +2019-08-30 Samuel Thibault + + * sysdeps/mach/hurd/getcwd.c + (_hurd_canonicalize_directory_name_internal): Do not remove the heading + slash if we got an unknown root directory. (__getcwd): Do not fail with + EGRATUITOUS if we got an unknown root directory. + * hurd/hurdselect.c (SELECT_ERROR): New macro. + (_hurd_select): + - Add `error' field to `d' structures array. + - If a poll descriptor is bogus, set EBADF, but continue with a zero + timeout. + - Go through the whole fd_set, not only until _hurd_dtablesize. Return + EBADF there is any bit set above _hurd_dtablesize. + - Do not request io_select on bogus descriptors (SELECT_ERROR). + - On io_select request error, record the error. + - On io_select bogus reply, use EIO error code. + - On io_select bogus or error reply, record the error. + - Do not destroy reply port for bogus FDs. + - On error, make poll set POLLHUP in the EPIPE case, POLLNVAL in the + EBADF case, or else POLLERR. + - On error, make select simulated readiness. + + [BZ #19903] + * sysdeps/mach/hurd/mmap.c (__mmap): Remove optimizing anonymous maps + as __vm_allocate. + + * sysdeps/mach/hurd/i386/sigreturn.c (__sigreturn2): New function, + unlocks SS and returns to the saved PC. + (__sigreturn): Do not unlock SS, and "return" into __sigreturn2 on the + thread stack instead of the saved PC. + +2019-08-30 Richard Braun + + * hurd/hurdselect.c (_hurd_select): Always call __io_select with no + timeout. + * sysdeps/mach/hurd/setitimer.c (setitimer_locked): Fix preemptor setup. + * hurd/Makefile (user-interfaces): Add io_reply and io_request. + * hurd/hurdselect.c: Include , and + . + (_hurd_select): Replace the call to __io_select with either + __io_select_request or __io_select_timeout_request, depending on the + timeout. Count the number of ready descriptors (replies for which at + least one type bit is set). Implement the timeout locally when there is + no file descriptor. + +2019-08-29 Mihailo Stojanovic + + * elf/dl-addr.c (determine_info): Calculate the symbol index + using the newly defined ELF_MACHINE_HASH_SYMIDX macro. + * elf/dl-lookup.c (do_lookup_x): Ditto. + (_dl_setup_hash): Initialize MIPS xhash translation table. + * elf/elf.h (SHT_MIPS_XHASH): New define. + (DT_MIPS_XHASH): New define. + * sysdeps/generic/ldsodefs.h (ELF_MACHINE_GNU_HASH_ADDRIDX): New + define. + (ELF_MACHINE_HASH_SYMIDX): Ditto. + (ELF_MACHINE_XHASH_SETUP): Ditto. + * sysdeps/mips/ldsodefs.h (ELF_MACHINE_GNU_HASH_ADDRIDX): New + define. + (ELF_MACHINE_HASH_SYMIDX): Ditto. + (ELF_MACHINE_XHASH_SETUP): Ditto. + * sysdeps/mips/linkmap.h (struct link_map_machine): New member. + * sysdeps/unix/sysv/linux/mips/ldsodefs.h: Increment valid ABI + version. + * sysdeps/unix/sysv/linux/mips/libc-abis: New ABI version. + +2019-08-29 Adhemerval Zanella + + * sysdeps/sh/preconfigure.ac: New file. + * sysdeps/sh/preconfigure: Regenerate. + * sysdeps/sh/be/sh3/Implies: New file. + * sysdeps/sh/be/sh4/Implies: Likewise. + * sysdeps/sh/le/sh3/Implies: Likewise. + * sysdeps/sh/le/sh4/Implies: Likewise. + * sysdeps/unix/sysv/linux/sh/le/sh3/Implies: Likewise. + * sysdeps/unix/sysv/linux/sh/le/sh4/Implies: Likewise. + * sysdeps/unix/sysv/linux/sh/*.abilist: Move to + sysdeps/unix/sysv/linux/sh/le/*.abilist. + * sysdeps/unix/sysv/linux/sh/be/*.abilist: New files. + + * sysdeps/microblaze/preconfigure.ac: New file. + * sysdeps/microblaze/preconfigure: Regenerate. + * sysdeps/microblaze/be/implies: New file. + * sysdeps/microblaze/le/implies: Likewise. + * sysdeps/unix/sysv/linux/microblaze/be/implies: Likewise. + * sysdeps/unix/sysv/linux/microblaze/le/implies: Likewise. + * sysdeps/unix/sysv/linux/microblaze/*.abilist. Move to + sysdeps/unix/sysv/linux/microblaze/be/*.abilist. + * sysdeps/unix/sysv/linux/microblaze/le/*.abilist: New files. + + * sysdeps/arm/preconfigure.ac: Set machine based on endianness. + * sysdeps/arm/preconfigure: Regenerate. + * sysdeps/arm/be/Implies: New file. + * sysdeps/arm/be/armv6/Implies: Likewise. + * sysdeps/arm/be/armv6t2/Implies: Likewise. + * sysdeps/arm/be/armv7/Implies: Likewise. + * sysdeps/arm/le/Implies: Likewise. + * sysdeps/unix/sysv/linux/arm/be/Implies: Likewise. + * sysdeps/unix/sysv/linux/arm/le/Implies: Likewise. + * sysdeps/unix/sysv/linux/arm/*.abilist: Move to + sysdeps/unix/sysv/linux/arm/le/*.abilist. + * sysdeps/unix/sysv/linux/arm/be/l*.abilist: New files. + +2019-08-27 Paul Eggert + + Fix posix/tst-regex by using UTF-8 and own test input + Problem reported by Stefan Liebler in: + https://sourceware.org/ml/libc-alpha/2019-08/msg00658.html + * posix/tst-regex.c: Convert this file from Latin-1 to UTF-8. + (do_test, test_expr): Adjust to the fact that this source file, + and the test data in ChangeLog.8, is now UTF-8 instead of Latin-1. + * posix/tst-regex.input: Copy from ChangeLog.old/ChangeLog.8, + so that it is now UTF-8. + +2019-08-28 Paul A. Clarke + + * sysdeps/powerpc/fpu/fenv_libc.h (fegetenv_status_ISA300): Delete. + (fegetenv_status): Generate 'mffsl' unconditionally. + +2019-08-28 Paul A. Clarke + + * sysdeps/powerpc/fpu/fesetenv.c (__fesetenv): Utilize lightweight + FPSCR read. + (_FPU_MASK_ALL): Delete. + +2019-08-28 Paul A. Clarke + + * sysdeps/powerpc/fpu/fenv_private.h (libc_feholdsetround_ppc_ctx): + Utilize lightweight FPSCR read if possible, set fewer FPSCR bits + if possible. + (libc_feresetround_ppc): Replace call to __libc_femergeenv_ppc + with simpler required steps, set fewer FPSCR bits if possible. + +2019-08-28 Paul A. Clarke + + * sysdeps/powerpc/fpu/fenv_libc.h (fesetenv_mode): New. + (FPSCR_FPRF_MASK): New. (FPSCR_STATUS_MASK): New. + * sysdeps/powerpc/fpu/feenablxcpt.c (feenableexcept): Use lighter- + weight access to FPSCR; remove unnecessary second FPSCR read and + validate. + * sysdeps/powerpc/fpu/fedisblxcpt.c (fedisableexcept): Likewise. + * sysdeps/powerpc/fpu/fesetmode.c (fesetmode): Use lighter-weight + access to FPSCR; Use macros in fenv_libc.h in favor of local. + +2019-08-28 Paul A. Clarke + + * sysdeps/powerpc/fpu/fenv_libc.h: Define FPSCR bitmasks. + (fenv_reg_to_exceptions): Replace bitwise operations with mask-shift. + (fenv_exceptions_to_reg): New. + * sysdeps/powerpc/fpu/fedisblxcpt.c (fedisableexcept): Replace bitwise + operation with call to fenv_exceptions_to_reg(). + * sysdeps/powerpc/fpu/feenablxcpt.c (feenableexcept): Likewise. + +2019-08-28 Florian Weimer + + * misc/mntent.c (struct mntent_buffer): Define. + (mntent_buffer): Adjust type to void *. + (allocate): Adjust for allocate_once. + (deallocate): New function. + (getmntent): Call allocate_once. + +2019-08-28 Florian Weimer + + nptl: Move pthread_attr_setdetachstate implementation into libc. + * nptl/Makefile (routines): Add pthread_attr_setdetachstate. + (libpthread-routines): Remove pthread_attr_setdetachstate. + * nptl/Versions (libpthread GLIBC_2.0): Remove + pthread_attr_setdetachstate. + * nptl/forward.c (pthread_attr_setdetachstate): Remove definition. + * nptl/nptl-init.c (pthread_functions): Remove initializer for + ptr_pthread_attr_setdetachstate. + * sysdeps/nptl/pthread-functions.h (struct pthread_functions): + Remove ptr_pthread_attr_setdetachstate member. + * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.17): + Remove pthread_attr_setdetachstate. + * sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.0): + Likewise. + * sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.4): + Likewise. + * sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.29): + Likewise. + * sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.0): + Likewise. + * sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist + (GLIBC_2.4): Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/microblaze/libpthread.abilist + (GLIBC_2.18): Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.21): + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist + (GLIBC_2.3): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist + (GLIBC_2.17): Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist + (GLIBC_2.27): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist + (GLIBC_2.2): Likewise. + * sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist + (GLIBC_2.2): Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist + (GLIBC_2.2.5): Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist + (GLIBC_2.16): Likewise. + +2019-08-28 Florian Weimer + + [BZ #24902] + * login/Makefile (tests): Add tst-pututxline-lockfail. + (tst-pututxline-lockfail): Link with -lpthread. + * login/utmp_file.c (internal_getut_r): Remove buffer argument. + (__libc_getutid_r): Adjust. + (__libc_pututline): Likewise. Check for file_offset == -1. + * login/tst-pututxline-lockfail.c: New file. + +2019-08-28 Stefan Liebler + + * posix/tst-regex.c (do_test): Use tst-regex.input as input file. + * posix/tst-regex.input: New file. + +2019-08-23 Mihailo Stojanovic + + [BZ #24916] + * sysdeps/mips/Makefile [$(subdir) = elf] (tests): Add + tst-undefined-weak. + [$(subdir) = elf] (modules-names): Add tst-undefined-weak-lib. + [$(subdir) = elf] ($(objpfx)tst-undefined-weak): Add dependency. + * sysdeps/mips/tst-undefined-weak-lib.S: New file. + * sysdeps/mips/tst-undefined-weak.c: Likewise. + * sysdeps/unix/sysv/linux/mips/ldsodefs.h (VALID_ELF_ABIVERSION): + Increment highest valid ABIVERSION value. + +2019-08-23 Dragan Mladjenovic + + * sysdeps/unix/sysv/linux/mips/Makefile + (test-xfail-check-execstack): + Move under mips-has-gnustack != yes. + (CFLAGS-.o*, ASFLAGS-.o*): New rules. + Apply -Wa,-execstack if mips-force-execstack == yes. + * sysdeps/unix/sysv/linux/mips/configure: Regenerated. + * sysdeps/unix/sysv/linux/mips/configure.ac + (mips-force-execstack): New var. + Set to yes for hard-float builds with minimum_kernel < 4.8.0 + or minimum_kernel not set at all. + (mips-has-gnustack): New var. + Use value of libc_cv_as_noexecstack + if mips-force-execstack != yes, otherwise set to no. + +2019-08-23 Adhemerval Zanella + Florian Weimer + + * gmon/Versions (libc) [GLIBC_2.31]: New entry. + * sysdeps/unix/sysv/linux/arm/profil-counter.h (profil_counter): + Make a compat_symbol. + * sysdeps/unix/sysv/linux/sparc/profil-counter.h + (__profil_counter_global): Likewise. + + * debug/segfault.c (install_handler): Use SA_SIGINFO if defined. + * sysdeps/generic/profil-counter.h (__profil_counter): Cast to + uintptr_t. + * sysdeps/generic/sigcontextinfo.h (GET_PC): Rename to + sigcontext_get_pc and return aligned cast to uintptr_t. + * sysdeps/mach/hurd/i386/sigcontextinfo.h (GET_PC): Likewise. + * sysdeps/posix/profil.c (profil_count): Change PC argument to + uintptr_t. + (__profil): Use SA_SIGINFO. + * sysdeps/posix/sprofil.c (profil_count): Change PCP argument to + uintptr_t. + (__sprofil): Use SA_SIGINFO. + * sysdeps/unix/sysv/linux/profil-counter.h: New file. + * sysdeps/unix/sysv/linux/aarch64/profil-counter.h: Remove file. + * sysdeps/unix/sysv/linux/csky/profil-counter.h: Likewise. + * sysdeps/unix/sysv/linux/hppa/profil-counter.h: Likewise. + * sysdeps/unix/sysv/linux/i386/profil-counter.h: Likewise. + * sysdeps/unix/sysv/linux/ia64/profil-counter.h: Likewise. + * sysdeps/unix/sysv/linux/microblaze/profil-counter.h: Likewise. + * sysdeps/unix/sysv/linux/mips/profil-counter.h: Likewise. + * sysdeps/unix/sysv/linux/nios2/profil-counter.h: Likewise. + * sysdeps/unix/sysv/linux/powerpc/profil-counter.h: Likewise. + * sysdeps/unix/sysv/linux/x86_64/profil-counter.h: Likewise. + * sysdeps/unix/sysv/linux/riscv/profil-counter.h: Likewise. + * sysdeps/sysv/linux/s390/s390-32/profil-counter.h: Likewise. + * sysdeps/sysv/linux/s390/s390-64/profil-counter.h: Likewise. + * sysdeps/unix/sysv/linux/sh/profil-counter.h: Likewise. + * sysdeps/unix/sysv/linux/arm/profil-counter.h (__profil_counter): + Assume SA_SIGINFO and use sigcontext_get_pc instead of GET_PC. + * sysdeps/unix/sysv/linux/sparc/profil-counter.h: New file. + * sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h: Remove file. + * sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h: Likewise. + * sysdpes/unix/sysv/linux/aarch64/sigcontextinfo.h (SIGCONTEXT, + GET_PC, __sigaction, sigaction): Remove defines. + (sigcontext_get_pc): New function. + * sysdeps/unix/sysv/linux/alpha/sigcontextinfo.h: Likewise. + * sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: Likewise. + * sysdeps/unix/sysv/linux/csky/sigcontextinfo.h: Likewise. + * sysdeps/unix/sysv/linux/hppa/sigcontextinfo.h: Likewise. + * sysdeps/unix/sysv/linux/i386/sigcontextinfo.h: Likewise. + * sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h: Likewise. + * sysdeps/unix/sysv/linux/m68k/sigcontextinfo.h: Likewise. + * sysdeps/unix/sysv/linux/mips/sigcontextinfo.h: Likewise. + * sysdeps/unix/sysv/linux/nios2/sigcontextinfo.h: Likewise. + * sysdeps/unix/sysv/linux/s390/sigcontextinfo.h: Likewise. + * sysdeps/unix/sysv/linux/microblaze/sigcontextinfo.h: Likewise. + * sysdeps/unix/sysv/linux/powerpc/sigcontextinfo.h: Likewise. + * sysdeps/unix/sysv/linux/riscv/sigcontextinfo.h: Likewise. + * sysdeps/unix/sysv/linux/sh/sigcontextinfo.h: Likewise. + * sysdeps/sysv/linux/sparc/sparc32/sigcontextinfo.h: Likewise. + * sysdeps/sysv/linux/sparc/sparc64/sigcontextinfo.h: Likewise. + * sysdeps/unix/sysv/linux/x86_64/sigcontextinfo.h: Likewise. + * sysdeps/unix/sysv/linux/alpha/register-dump.h (register_dump): + Handle CTX argument as ucontext_t. + * sysdeps/unix/sysv/linux/i386/register-dump.h: Likewise. + Likewise. + * sysdeps/unix/sysv/linux/m68k/register-dump.h: Likewise. + * sysdeps/sysv/linux/s390/s390-32/register-dump.h: Likewise. + * sysdeps/sysv/linux/s390/s390-64/register-dump.h: Likewise. + * sysdeps/unix/sysv/linux/sh/register-dump.h: New file. + * sysdeps/unix/sysv/linux/sh/sh4/register-dump.h: Remove File. + * sysdeps/unix/sysv/linux/sh/sh3/register-dump.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/register-dump.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/register-dump.h: Likewise. + * sysdeps/unix/sysv/linux/Makefile (tests-internal): Add + tst-sigcontextinfo-get_pc. + * sysdeps/unix/sysv/linux/tst-sigcontextinfo-get_pc.c: New file. + (CFLAGS-tst-sigcontextinfo-get_pc.c): New rule. + +2019-08-23 Adhemerval Zanella + + * sysdeps/generic/single-thread.h (RTLD_SINGLE_THREAD_P): Add + definition. + +2019-08-23 Rafał Lużyński + + [BZ #24682] + * localedata/locales/bo_CN (first_weekday): Add, set to 2 (Monday). + * localedata/locales/ug_CN (first_weekday): Likewise. + * localedata/locales/zh_CN (first_weekday): Likewise. + +2019-08-22 Gustavo Romero + + * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h: Fix typos and + field name in mcontext_t struct. + +2019-08-22 Joseph Myers + + * resolv/tst-resolv-ai_idn-latin1.c (do_test): Mark test + unsupported with libidn2 before 2.0.5. + * resolv/tst-resolv-ai_idn.c (do_test): Likewise. + + * manual/time.texi (strftime): Document %Ob and %OB as C2X + features. + +2019-08-21 Paul Eggert + + Remove dead regex code + * posix/regex_internal.c (re_node_set_insert): + Remove unnecessary assignment. Reported by Tim Rühsen in: + https://lists.gnu.org/r/bug-gnulib/2019-08/msg00026.html + + Fix bad pointer / leak in regex code + This was found by Coverity (CID 1484201). [BZ#24844] + * posix/regex_internal.c (create_cd_newstate): Fix use of bad + pointer and/or memory leak when storage is exhausted. + +2019-08-21 Zack Weinberg + + * misc/syslog.c (__vsyslog_internal) + * time/getdate.c (__getdate_r) + * time/tst_wcsftime.c (main): + Use return value of time, not its argument. + + * string/strfry.c (strfry) + * sysdeps/mach/sleep.c (__sleep): + Remove unnecessary casts of NULL in calls to time. + +2019-08-21 Joseph Myers + + * math/tgmath.h [__HAVE_FLOAT128X]: Give error. + [(__HAVE_FLOAT64X && !__HAVE_FLOAT128) + || (__HAVE_FLOAT128 && !__HAVE_FLOAT64X)]: Likewise. + (__TGMATH_2_NARROW_F): Likewise. + (__TGMATH_2_NARROW_D): New macro. + (__TGMATH_2_NARROW_F16): Likewise. + (__TGMATH_2_NARROW_F32): Likewise. + (__TGMATH_2_NARROW_F64): Likewise. + (__TGMATH_2_NARROW_F32X): Likewise. + (__TGMATH_2_NARROW_F64X): Likewise. + [__HAVE_BUILTIN_TGMATH] (__TGMATH_NARROW_FUNCS_F): Likewise. + [__HAVE_BUILTIN_TGMATH] (__TGMATH_NARROW_FUNCS_F16): Likewise. + [__HAVE_BUILTIN_TGMATH] (__TGMATH_NARROW_FUNCS_F32): Likewise. + [__HAVE_BUILTIN_TGMATH] (__TGMATH_NARROW_FUNCS_F64): Likewise. + [__HAVE_BUILTIN_TGMATH] (__TGMATH_NARROW_FUNCS_F32X): Likewise. + [__GLIBC_USE (IEC_60559_BFP_EXT_C2X)] (fadd): Likewise. + [__GLIBC_USE (IEC_60559_BFP_EXT_C2X)] (dadd): Likewise. + [__GLIBC_USE (IEC_60559_BFP_EXT_C2X)] (fdiv): Likewise. + [__GLIBC_USE (IEC_60559_BFP_EXT_C2X)] (ddiv): Likewise. + [__GLIBC_USE (IEC_60559_BFP_EXT_C2X)] (fmul): Likewise. + [__GLIBC_USE (IEC_60559_BFP_EXT_C2X)] (dmul): Likewise. + [__GLIBC_USE (IEC_60559_BFP_EXT_C2X)] (fsub): Likewise. + [__GLIBC_USE (IEC_60559_BFP_EXT_C2X)] (dsub): Likewise. + [__GLIBC_USE (IEC_60559_TYPES_EXT) && __HAVE_FLOAT16] (f16add): + Likewise. + [__GLIBC_USE (IEC_60559_TYPES_EXT) && __HAVE_FLOAT16] (f16div): + Likewise. + [__GLIBC_USE (IEC_60559_TYPES_EXT) && __HAVE_FLOAT16] (f16mul): + Likewise. + [__GLIBC_USE (IEC_60559_TYPES_EXT) && __HAVE_FLOAT16] (f16sub): + Likewise. + [__GLIBC_USE (IEC_60559_TYPES_EXT) && __HAVE_FLOAT32] (f32add): + Likewise. + [__GLIBC_USE (IEC_60559_TYPES_EXT) && __HAVE_FLOAT32] (f32div): + Likewise. + [__GLIBC_USE (IEC_60559_TYPES_EXT) && __HAVE_FLOAT32] (f32mul): + Likewise. + [__GLIBC_USE (IEC_60559_TYPES_EXT) && __HAVE_FLOAT32] (f32sub): + Likewise. + [__GLIBC_USE (IEC_60559_TYPES_EXT) && __HAVE_FLOAT64 + && (__HAVE_FLOAT64X || __HAVE_FLOAT128)] (f64add): Likewise. + [__GLIBC_USE (IEC_60559_TYPES_EXT) && __HAVE_FLOAT64 + && (__HAVE_FLOAT64X || __HAVE_FLOAT128)] (f64div): Likewise. + [__GLIBC_USE (IEC_60559_TYPES_EXT) && __HAVE_FLOAT64 + && (__HAVE_FLOAT64X || __HAVE_FLOAT128)] (f64mul): Likewise. + [__GLIBC_USE (IEC_60559_TYPES_EXT) && __HAVE_FLOAT64 + && (__HAVE_FLOAT64X || __HAVE_FLOAT128)] (f64sub): Likewise. + [__GLIBC_USE (IEC_60559_TYPES_EXT) && __HAVE_FLOAT32X] (f32xadd): + Likewise. + [__GLIBC_USE (IEC_60559_TYPES_EXT) && __HAVE_FLOAT32X] (f32xdiv): + Likewise. + [__GLIBC_USE (IEC_60559_TYPES_EXT) && __HAVE_FLOAT32X] (f32xmul): + Likewise. + [__GLIBC_USE (IEC_60559_TYPES_EXT) && __HAVE_FLOAT32X] (f32xsub): + Likewise. + [__GLIBC_USE (IEC_60559_TYPES_EXT) && __HAVE_FLOAT64X + && (__HAVE_FLOAT128X || __HAVE_FLOAT128)] (f64xadd): Likewise. + [__GLIBC_USE (IEC_60559_TYPES_EXT) && __HAVE_FLOAT64X + && (__HAVE_FLOAT128X || __HAVE_FLOAT128)] (f64xdiv): Likewise. + [__GLIBC_USE (IEC_60559_TYPES_EXT) && __HAVE_FLOAT64X + && (__HAVE_FLOAT128X || __HAVE_FLOAT128)] (f64xmul): Likewise. + [__GLIBC_USE (IEC_60559_TYPES_EXT) && __HAVE_FLOAT64X + && (__HAVE_FLOAT128X || __HAVE_FLOAT128)] (f64xsub): Likewise. + * math/gen-tgmath-tests.py (Type): Add members + non_standard_real_argument_types_list, long_double_type, + complex_float64_type and float32x_ext_type. + (Type.__init__): Set the new members. + (Type.floating_type): Add new argument floatn. + (Type.real_floating_type): Likewise. + (Type.can_combine_types): Likewise. + (Type.combine_types): Likewise. + (Type.init_types): Create internal Float32x_ext type. + (Tests.__init__): Define Float32x_ext in generated C code. + (Tests.add_tests): Handle narrowing functions. + (Tests.add_all_tests): Likewise. + (Tests.tests_text): Allow variation in mant_dig for narrowing + functions with compilers before GCC 8. + * math/Makefile (tgmath3-narrow-types): New variable. + (tgmath3-narrow-macros): Likewise. + (tgmath3-macros): Add $(tgmath3-narrow-macros). + +2019-08-20 Andreas Schwab + + * sysdeps/i386/fpu/libm-test-ulps: Update. + +2019-08-19 Carlos O'Donell + + * nscd/nscd.conf: Add warning and comment about shared option. + +2019-08-19 Carlos O'Donell + + * nss/nsswitch.conf: Expand comments, and simplify defaults. + * manual/nss.texi (NSS Basics): List all known databases. + (Services in the NSS configuration): Mention automount. + +2019-08-19 Florian Weimer + + Do not print backtraces on fatal errors. + * debug/fortify_fail.c (__libc_argv): Remove declaration. + (__fortify_fail_abort): Remove definition. + (__fortify_fail): Call __libc_message directly. + * debug/stack_chk_fail.c (__libc_argv): Remove declaration. + (__stack_chk_fail): Call __fortify_fail instead of + __fortify_fail_abort. + * include/stdio.h (__fortify_fail_abort): Remove declaration. + * sysdeps/posix/libc_fatal.c (BEFORE_ABORT, before_abort): Remove + definitions. + (__libc_message): Do not handle do_backtrace. Do not call + BEFORE_ABORT. + (__libc_fatal): Do not pass do_backtrace to __libc_message. + * sysdeps/unix/sysv/linux/libc_fatal.c (BEFORE_ABORT) + (before_abort): Remove definitions. + +2019-08-16 Florian Weimer + + nptl: Move pthread_attr_getdetachstate implementation into libc. + * nptl/Makefile (routines): Add pthread_attr_getdetachstate. + (libpthread-routines): Remove pthread_attr_getdetachstate. + * nptl/Versions (libpthread GLIBC_2.0): Remove + pthread_attr_getdetachstate. + * nptl/forward.c (pthread_attr_getdetachstate): Remove definition. + * nptl/nptl-init.c (pthread_functions): Remove initializer for + ptr_pthread_attr_getdetachstate. + * sysdeps/nptl/pthread-functions.h (struct pthread_functions): + Remove ptr_pthread_attr_getdetachstate member. + * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.17): + Remove pthread_attr_getdetachstate. + * sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.0): + Likewise. + * sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.4): + Likewise. + * sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.29): + Likewise. + * sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.0): + Likewise. + * sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist + (GLIBC_2.4): Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/microblaze/libpthread.abilist + (GLIBC_2.18): Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.21): + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist + (GLIBC_2.3): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist + (GLIBC_2.17): Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist + (GLIBC_2.27): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist + (GLIBC_2.2): Likewise. + * sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist + (GLIBC_2.2): Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist + (GLIBC_2.2.5): Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist + (GLIBC_2.16): Likewise. + +2019-08-16 Joseph Myers + + * math/libm-test-compat_totalorder.inc (do_test) + [TEST_COMPAT (libm, GLIBC_2_25, GLIBC_2_31)]: Change condition to + [TEST_COMPAT (libm, COMPAT_VER, GLIBC_2_31)]. + * math/libm-test-compat_totalordermag.inc (do_test) + [TEST_COMPAT (libm, GLIBC_2_25, GLIBC_2_31)]: Likewise. + +2019-08-15 Florian Weimer + + nptl: Move pthread_attr_init implementation into libc. + * nptl/Makefile (routines): Add pthread_attr_init. + (libpthread-routines): Remove pthread_attr_init. + * nptl/Versions (libpthread GLIBC_2.0): Remove pthread_attr_init. + (libpthread GLIBC_2.0): Likewise. + * nptl/pthread_attr_init.c: Check for libc compat version instead + of libpthread compat version. + * nptl/forward.c (__pthread_attr_init_2_0) + (__pthread_attr_init_2_1): Remove definitions. + * nptl/nptl-init.c (pthread_functions): Remove initializers for + ptr___pthread_attr_init_2_0, ptr___pthread_attr_init_2_1. + * sysdeps/nptl/pthread-functions.h (struct pthread_functions): + Remove members ptr___pthread_attr_init_2_0, + ptr___pthread_attr_init_2_1. + * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.17): + Remove pthread_attr_init. + * sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.0): + Likewise. + (GLIBC_2.1): Likewise. + * sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.4): + Likewise. + * sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.29): + Likewise. + * sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.0): + Likewise. + (GLIBC_2.1): Likewise. + * sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist + (GLIBC_2.4): Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist + (GLIBC_2.0): Likewise. + (GLIBC_2.1): Likewise. + * sysdeps/unix/sysv/linux/microblaze/libpthread.abilist + (GLIBC_2.18): Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist + (GLIBC_2.0): Likewise. + (GLIBC_2.1): Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist + (GLIBC_2.0): Likewise. + (GLIBC_2.1): Likewise. + * sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.21): + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist + (GLIBC_2.0): Likewise. + (GLIBC_2.1): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist + (GLIBC_2.3): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist + (GLIBC_2.17): Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist + (GLIBC_2.27): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist + (GLIBC_2.0): Likewise. + (GLIBC_2.1): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist + (GLIBC_2.2): Likewise. + * sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist + (GLIBC_2.0): Likewise. + (GLIBC_2.1): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist + (GLIBC_2.2): Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist + (GLIBC_2.2.5): Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist + (GLIBC_2.16): Likewise. + +2019-08-15 Florian Weimer + + [BZ #24900] + * elf/dl-object.c (_dl_new_object): Do not store pathnames in the + new object in __RTLD_OPENEXEC mode (except for the origin). + * elf/tst-dlopen-aout.c (check_dlopen_failure): New function with + check for the error message. + (do_test): Call it. Add check using relative path. + * elf/Makefile (tests-container): Add tst-dlopen-aout-container. + (tst-dlopen-aout-container): Link with libpthread. + (LDFLAGS-tst-dlopen-aout-container): Set RPATH to $ORIGIN. + +2019-08-15 Joseph Myers + + * math/bits/mathcalls.h + [__GLIBC_USE (IEC_60559_BFP_EXT) || __MATH_DECLARING_FLOATN] + (totalorder): Take pointer arguments. + [__GLIBC_USE (IEC_60559_BFP_EXT) || __MATH_DECLARING_FLOATN] + (totalordermag): Likewise. + * manual/arith.texi (totalorder): Likewise. + (totalorderf): Likewise. + (totalorderl): Likewise. + (totalorderfN): Likewise. + (totalorderfNx): Likewise. + (totalordermag): Likewise. + (totalordermagf): Likewise. + (totalordermagl): Likewise. + (totalordermagfN): Likewise. + (totalordermagfNx): Likewise. + * math/tgmath.h (__TGMATH_BINARY_REAL_RET_ONLY): Remove macro. + [__GLIBC_USE (IEC_60559_BFP_EXT)] (totalorder): Likewise. + [__GLIBC_USE (IEC_60559_BFP_EXT)] (totalordermag): Likewise. + * math/Versions (GLIBC_2.31): Add totalorder, totalorderf, + totalorderl, totalordermag, totalordermagf, totalordermagl, + totalorderf32, totalorderf64, totalorderf32x, totalordermagf32, + totalordermagf64, totalordermagf32x, totalorderf64x, + totalordermagf64x, totalorderf128 and totalordermagf128. + * math/Makefile (libm-test-funcs-noauto): Add compat_totalorder + and compat_totalordermag. + (libm-test-funcs-compat): New variable. + (libm-tests-compat): Likewise. + (tests): Do not include compat tests. + (tests-internal): Add compat tests. + ($(foreach t,$(libm-tests-base), + $(objpfx)$(t)-compat_totalorder.o)): Depend + on $(objpfx)libm-test-totalorder.c. + ($(foreach t,$(libm-tests-base), + $(objpfx)$(t)-compat_totalordermag.o): Depend on + $(objpfx)libm-test-totalordermag.c. + (tgmath3-macros): Remove totalorder and totalordermag. + * math/libm-test-compat_totalorder.inc: New file. + * math/libm-test-compat_totalordermag.inc: Likewise. + * math/libm-test-driver.c (struct test_ff_i_data): Update comment. + (RUN_TEST_fpfp_b): New macro. + (RUN_TEST_LOOP_fpfp_b): Likewise. + * math/libm-test-totalorder.inc (totalorder_test_data): Use + TEST_fpfp_b. + (totalorder_test): Condition on [!COMPAT_TEST]. + (do_test): Likewise. + * math/libm-test-totalordermag.inc (totalordermag_test_data): Use + TEST_fpfp_b. + (totalordermag_test): Condition on [!COMPAT_TEST]. + (do_test): Likewise. + * math/gen-tgmath-tests.py (Tests.add_all_tests): Remove + totalorder and totalordermag. + * math/test-tgmath.c (NCALLS): Change to 132. + (F(compile_test)): Do not call totalorder or totalordermag. + (F(totalorder)): Remove. + (F(totalordermag)): Likewise. + * include/float.h (__STDC_WANT_IEC_60559_TYPES_EXT__): Do not + define if [__STDC_WANT_IEC_60559_TYPES_EXT__]. + * include/setjmp.h [!_ISOMAC] (STR_HELPER): Rename to + SJSTR_HELPER. + [!_ISOMAC] (STR): Rename to SJSTR. Update call to STR_HELPER. + [!_ISOMAC] (TEST_SIZE): Update call to STR. + [!_ISOMAC] (TEST_ALIGN): Likewise. + [!_ISOMAC] (TEST_OFFSET): Likewise. + * sysdeps/ieee754/dbl-64/s_totalorder.c: Include + and . + (__totalorder): Take pointer arguments. Add symbol versions and + compat symbols. + * sysdeps/ieee754/dbl-64/s_totalordermag.c: Include + and . + (__totalordermag): Take pointer arguments. Add symbol versions + and compat symbols. + * sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c: Include + and . + (__totalorder): Take pointer arguments. Add symbol versions and + compat symbols. + * sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c: Include + and . + (__totalordermag): Take pointer arguments. Add symbol versions + and compat symbols. + * sysdeps/ieee754/float128/float128_private.h + (__totalorder_compatl): New macro. + (__totalordermag_compatl): Likewise. + * sysdeps/ieee754/flt-32/s_totalorderf.c: Include + and . + (__totalorderf): Take pointer arguments. Add symbol versions and + compat symbols. + * sysdeps/ieee754/flt-32/s_totalordermagf.c: Include + and . + (__totalordermagf): Take pointer arguments. Add symbol versions + and compat symbols. + * sysdeps/ieee754/ldbl-128/s_totalorderl.c: Include + and . + (__totalorderl): Take pointer arguments. Add symbol versions and + compat symbols. + * sysdeps/ieee754/ldbl-128/s_totalordermagl.c: Include + and . + (__totalordermagl): Take pointer arguments. Add symbol versions + and compat symbols. + * sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c: Include + . + (__totalorderl): Take pointer arguments. Add symbol versions and + compat symbols. + * sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c: Include + . + (__totalordermagl): Take pointer arguments. Add symbol versions + and compat symbols. + * sysdeps/ieee754/ldbl-96/s_totalorderl.c: Include + and . + (__totalorderl): Take pointer arguments. Add symbol versions and + compat symbols. + * sysdeps/ieee754/ldbl-96/s_totalordermagl.c: Include + and . + (__totalordermagl): Take pointer arguments. Add symbol versions + and compat symbols. + * sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c (totalorderl): Take + pointer arguments. + * sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c (totalordermagl): + Likewise. + * sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c + (do_test): Update calls to totalorderl and totalordermagl. + * sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c (do_test): + Update calls to totalorderl and totalordermagl. + * sysdeps/mach/hurd/i386/libm.abilist: Update. + * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/csky/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. + +2019-08-15 Florian Weimer + + [BZ #24899] + * sysdeps/gnu/bits/utmpx.h (struct utmpx): Add + __attribute_nonstring__ to ut_line, ut_id, ut_user, ut_host. + * sysdeps/unix/sysv/linux/s390/bits/utmpx.h (struct utmpx): + Likewise. + * sysdeps/gnu/bits/utmp.h (struct utmp): Add + __attribute_nonstring__ to ut_id. + * sysdeps/unix/sysv/linux/s390/bits/utmpx.h (struct utmp): + Likewise. + +2019-08-15 Florian Weimer + + [BZ #24880] + * login/utmp_file.c (file_locking_failed): Use struct flock64. + (file_locking_unlock): Likewise. + +2019-08-15 Florian Weimer + + [BZ #24879] + login: Disarm timer after utmp lock acquisition. + * login/utmp_file.c (struct file_locking): Remove. + (try_file_lock): Adjust. + (file_lock_restore): Remove function. + (__libc_getutent_r): . + (internal_getut_r): Likewise. + (__libc_getutline_r): Likewise. + (__libc_pututline): Likewise. + (__libc_updwtmp): Likewise. + +2019-08-15 Florian Weimer + + nptl: Remove pthread_self compatibility symbol from libpthread. + * nptl/Versions (libpthread GLIBC_2.0): Remove pthread_self, + pthread_equal. + * nptl/Makefile (libpthread-routines): Remove compat-pthread_self. + * nptl/compat-pthread_self.c: Remove file. + * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.17): + Remove pthread_self. + * sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.0): + Likewise. + * sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.4): + Likewise. + * sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.0): + Likewise. + * sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist + (GLIBC_2.4): Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/microblaze/libpthread.abilist + (GLIBC_2.18): Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.21): + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist + (GLIBC_2.3): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist + (GLIBC_2.17): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist + (GLIBC_2.2): Likewise. + * sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist + (GLIBC_2.2): Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist + (GLIBC_2.2.5): Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist + (GLIBC_2.16): Likewise. + +2019-08-15 Florian Weimer + + nptl: Move pthread_attr_destroy implementation into libc. + * nptl/Makefile (routines): Add pthread_attr_destroy. + (libpthread-routines): Remove pthread_attr_destroy. + * nptl/Versions (libpthread GLIBC_2.0): Remove + pthread_attr_destroy. + * nptl/pthread_attr_destroy.c (__pthread_attr_destroy): Check for + libc compat version instead of libpthread compat version. + * nptl/forward.c (pthread_attr_destroy): Remove definition. + * nptl/nptl-init.c (pthread_functions): Remove initializer for + ptr_pthread_attr_destroy. + * sysdeps/nptl/pthread-functions.h (struct pthread_functions): + Remove ptr_pthread_attr_destroy member. + * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.17): + Remove pthread_attr_destroy. + * sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.0): + Likewise. + * sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.4): + Likewise. + * sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.29): + Likewise. + * sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.0): + Likewise. + * sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist + (GLIBC_2.4): Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/microblaze/libpthread.abilist + (GLIBC_2.18): Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.21): + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist + (GLIBC_2.3): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist + (GLIBC_2.17): Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist + (GLIBC_2.27): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist + (GLIBC_2.2): Likewise. + * sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist + (GLIBC_2.2): Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist + (GLIBC_2.2.5): Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist + (GLIBC_2.16): Likewise. + +2019-08-15 Andreas Schwab + + * sysdeps/i386/fpu/libm-test-ulps: Update. + +2019-08-15 Florian Weimer + + * malloc/Makefile (tests): Only add tst-mxfast for + $(have-tunables). + * malloc/tst-mxfast.c: Fix copyright year. + (do_test): Fix GNU style issues. Use TEST_COMPARE instead of + assert for checks. + +2019-08-15 Florian Weimer + + * login/utmp_file.c (__libc_updwtmp): Unlock the right file + descriptor. + * login/Makefile (tests): Add tst-updwtmpx. + * login/tst-updwtmpx.c: New file. + +2019-08-15 Florian Weimer + + nptl: Move pthread_equal implementation into libc. + * nptl/Makefile (routines): Add pthread_equal. + * nptl/forward.c (pthread_equal): Remove definition. + * nptl/nptl-init.c (pthread_functions): Remove initializer for + ptr_pthread_equal. + * sysdeps/nptl/pthread-functions.h (struct pthread_functions): + Remove ptr_pthread_equal member. + * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.17): + Remove pthread_equal. + * sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.0): + Likewise. + * sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.4): + Likewise. + * sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.29): + Likewise. + * sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.0): + Likewise. + * sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist + (GLIBC_2.4): Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/microblaze/libpthread.abilist + (GLIBC_2.18): Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.21): + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist + (GLIBC_2.3): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist + (GLIBC_2.17): Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist + (GLIBC_2.27): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist + (GLIBC_2.2): Likewise. + * sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.2): + Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist + (GLIBC_2.0): Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist + (GLIBC_2.2): Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist + (GLIBC_2.2.5): Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist + (GLIBC_2.16): Likewise. + +2019-08-14 Florian Weimer + + * support/support_descriptors.c: Include . + +2019-08-14 Feng Xue + + * sysdeps/aarch64/multiarch/memset_base64.S (DC_ZVA_THRESHOLD): + Disable DC ZVA code if this macro is defined as zero. + * sysdeps/aarch64/multiarch/memset_emag.S (DC_ZVA_THRESHOLD): + Change to zero to disable using DC ZVA. + +2019-08-13 Joseph Myers + + * bits/libc-header-start.h (__GLIBC_USE_IEC_60559_FUNCS_EXT): + Update comment. + (__GLIBC_USE_IEC_60559_FUNCS_EXT_C2X): New macro. + * bits/math-finite.h [__GLIBC_USE (IEC_60559_FUNCS_EXT)]: Change + to [__GLIBC_USE (IEC_60559_FUNCS_EXT_C2X)]. + * math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_FUNCS_EXT)]: + Likewise. + +2019-08-13 Florian Weimer + + * login/utmp_file.c (LOCK_FILE, LOCKING_FAILED, UNLOCK_FILE): + Remove macros. + (struct file_locking): New. + (try_file_lock, file_unlock, file_lock_restore): New functions. + (__libc_getutent_r): Use the new functions. + (internal_getut_r): Likewise. + (__libc_getutline_r): Likewise. + (__libc_pututline): Likewise. + (__libc_updwtmp): Likewise. + +2019-08-13 Joseph Myers + + * bits/libc-header-start.h (__GLIBC_USE_IEC_60559_BFP_EXT): Update + comment. + (__GLIBC_USE_IEC_60559_BFP_EXT_C2X): New macro. + * bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Change to + [__GLIBC_USE (IEC_60559_BFP_EXT_C2X)]. + * include/limits.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. + * math/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. + * math/math.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. + * stdlib/bits/stdlib-ldbl.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: + Likewise. + * stdlib/stdint.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. + * stdlib/stdlib.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise. + * sysdeps/aarch64/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: + Likewise. + * sysdeps/alpha/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: + Likewise. + * sysdeps/arm/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: + Likewise. + * sysdeps/csky/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: + Likewise. + * sysdeps/hppa/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: + Likewise. + * sysdeps/ia64/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: + Likewise. + * sysdeps/m68k/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: + Likewise. + * sysdeps/microblaze/bits/fenv.h [__GLIBC_USE + (IEC_60559_BFP_EXT)]: Likewise. + * sysdeps/mips/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: + Likewise. + * sysdeps/nios2/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: + Likewise. + * sysdeps/powerpc/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: + Likewise. + * sysdeps/riscv/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: + Likewise. + * sysdeps/s390/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: + Likewise. + * sysdeps/sh/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: + Likewise. + * sysdeps/sparc/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: + Likewise. + * sysdeps/x86/fpu/bits/fenv.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: + Likewise. + * math/bits/mathcalls.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: + Likewise, except for totalorder, totalordermag, getpayload, + setpayload and setpayloadsig. + * math/tgmath.h [__GLIBC_USE (IEC_60559_BFP_EXT)]: Likewise, + except for totalorder and totalordermag. + + * string/string.h (memccpy): Also declare if [__GLIBC_USE (ISOC2X)]. + (strdup): Likewise. + (strndup): Likewise. + + * include/features.h (_ISOC2X_SOURCE): New feature test macro. + Undefine and define to 1 if [_GNU_SOURCE]. + (__GLIBC_USE_ISOC2X): New macro. Undefine and redefine depending + on [_ISOC2X_SOURCE] and [__STDC_VERSION__ > 201710L]. + (__USE_ISOC11): Also define to 1 if [_ISOC2X_SOURCE]. + (__USE_ISOC99): Likewise. + (__USE_ISOC95): Likewise. + * manual/creature.texi (_ISOC2X_SOURCE): Document. + +2019-08-13 Florian Weimer + + * login/getutid_r.c (__getutid_r): _HAVE_UT_ID and _HAVE_UT_TYPE + are always true. + * login/getutmp.c (getutmp): _HAVE_UT_TYPE, _HAVE_UT_PID, + _HAVE_UT_ID, _HAVE_UT_HOST, _HAVE_UT_TV are always true. + * login/getutmpx.c (getutmpx): Likewise. + * login/login.c (login): _HAVE_UT_TYPE, _HAVE_UT_PID are always + true. + * login/logout.c (logout): _HAVE_UT_TYPE, _HAVE_UT_HOST, + _HAVE_UT_TV are always true. + * login/logwtmp.c (logwtmp): _HAVE_UT_PID, _HAVE_UT_TYPE, + _HAVE_UT_HOST, _HAVE_UT_TV are always true. + * login/tst-utmp.c: _HAVE_UT_TYPE, _HAVE_UT_TV are always true. + * login/utmp_file.c (__libc_setutent): _HAVE_UT_TYPE, _HAVE_UT_ID + are always true. + (internal_getut_r): _HAVE_UT_TYPE is always true. + (__libc_pututline): Likewise. + * login/programs/utmpdump.c (print_entry): Assume that + _HAVE_UT_TYPE, _HAVE_UT_PID, _HAVE_UT_ID, _HAVE_UT_HOST, + _HAVE_UT_TV are always true. + * sysdeps/generic/utmp-equal.h (__utmp_equal): _HAVE_UT_TYPE, + _HAVE_UT_ID are always true. + * sysdeps/gnu/bits/utmp.h: Move to ... + * bits/utmp.h: ... here, replacing the old file. + +2019-08-12 Florian Weimer + + * elf/Makefile (tests): Unconditionally add tst-dlopen-aout. + [$(build-hardcoded-path-in-tests)] (tst-dlopen-aout-no-pie): Do + not set. + * elf/tst-dlopen-aout.c: Do not included . + (do_test): Open the executable using an absolute path. Print + error message to standard output. + +2019-08-09 DJ Delorie + + * elf/dl-tunables.list: Add glibc.malloc.mxfast. + * manual/tunables.texi: Document it. + * malloc/malloc.c (do_set_mxfast): New. + (__libc_mallopt): Call it. + * malloc/arena.c: Add mxfast tunable. + * malloc/tst-mxfast.c: New. + * malloc/Makefile: Add it. + +2019-08-08 Niklas Hambüchen + Carlos O'Donell + + [BZ #24026] + * malloc/malloc.c (__malloc_info): Account for top chunk. + +2019-08-07 Joseph Myers + + * sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_GNU] + (SYNC_FILE_RANGE_WRITE_AND_WAIT): New macro. + +2019-08-06 Joseph Myers + + * io/fcntl.h [__USE_GNU] (AT_RECURSIVE): New macro. + +2019-07-02 Stefan Liebler + + * sysdeps/unix/sysv/linux/s390/init-first.c (VDSO_SETUP): New define. + +2019-08-05 Joseph Myers + + * sysdeps/unix/sysv/linux/bits/sched.h [__USE_GNU] (CLONE_PIDFD): + New macro. + +2019-08-05 Adhemerval Zanella + + [BZ #19767] + * sysdeps/unix/sysv/linux/aarch64/sysdep.h (ALWAYS_USE_VSYSCALL): + Remove definition. + * sysdeps/unix/sysv/linux/arm/sysdep.h (ALWAYS_USE_VSYSCALL): + Likewise. + * sysdeps/unix/sysv/linux/i386/sysdep.h (ALWAYS_USE_VSYSCALL): + Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h (ALWAYS_USE_VSYSCALL): + Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h + (ALWAYS_USE_VSYSCALL): Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h + (ALWAYS_USE_VSYSCALL): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h + (ALWAYS_USE_VSYSCALL): Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h + (ALWAYS_USE_VSYSCALL): Likewise. + * sysdeps/unix/sysv/linux/riscv/sysdep.h (ALWAYS_USE_VSYSCALL): + Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h + (ALWAYS_USE_VSYSCALL): Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h + (ALWAYS_USE_VSYSCALL): Likewise. + * sysdeps/unix/sysv/linux/sparc/sysdep.h (ALWAYS_USE_VSYSCALL): + Likewise. + * sysdeps/unix/sysv/linux/x86_64/sysdep.h (ALWAYS_USE_VSYSCALL): + Likewise. + * sysdeps/unix/sysv/linux/x86/libc-vdso.h: Remove #if USE_VSYSCALL. + * sysdeps/unix/sysv/linux/sysdep-vdso.h: Likewise. + * sysdeps/unix/sysv/linux/sysdep.h (ALWAYS_USE_VSYSCALL, + USE_VSYSCALL): Remove defitions. + + [BZ #19767] + * sysdeps/unix/sysv/linux/sparc/init-first.c: Remove #ifdef SHARED. + * sysdeps/unix/sysv/linux/sparc/libc-vdso.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/sysdep.h (ALWAYS_USE_VSYSCALL): + Define. + + [BZ #19767] + * sysdeps/unix/sysv/linux/s390/init-first.c: Remove #ifdef SHARED. + * sysdeps/unix/sysv/linux/s390/libc-vdso.h: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h + (ALWAYS_USE_VSYSCALL): Define. + * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h + (ALWAYS_USE_VSYSCALL): Likewise. + + [BZ #19767] + * sysdeps/unix/sysv/linux/riscv/init-first.c: Remove #ifdef SHARED. + * sysdeps/unix/sysv/linux/riscv/libc-vdso.h: Likewise. + * sysdeps/unix/sysv/linux/riscv/sysdep.h (ALWAYS_USE_VSYSCALL): + Define. + + * sysdeps/sh/libm-test-ulps: Update. + +2019-08-05 Florian Weimer + + [BZ #23518] + * login/uptmp-private.h (struct ufuncs): Remove definition. + (__libc_utmp_file_functions, __libc_utmp_unknown_functions) + (__libc_utmp_jump_table): Remove declarations. + (__libc_setutent, __libc_getutent_r, __libc_getutid_r) + (__libc_getutline_r, __libc_pututline, __libc_endutent) + (__libc_updwtmp): Declare. + * login/getutent_r.c (__libc_utmp_unknown_functions) + (__libc_utmp_jump_table, setutent_unknown, getutent_r_unknown) + (getutid_r_unknown, getutline_r_unknown, pututline_unknown) + (endutent_unknown): Remove definitions. + (__setutent): Call __libc_setutent. + (__getutent_r): Call __libc_getutent_r. + (__pututline): Call __libc_pututline. + (__endutent): Call __libc_endutent. + * login/getutid_r.c (__getutid_r): Call __libc_getutid_r. + * login/getutline_r.c (__getutline_r): Call __libc_getutline_r. + * login/updwtmp.c (__updwtmp): Call __libc_updwtmp. + * login/utmp_file.c (__libc_utmp_file_functions): Remove definition + (__libc_setutent): Rename from stetutent_file. Drop static. + (maybe_setutent): New function. + (__libc_getutent_r): Rename from getutent_r_file. Drop static. + Check for initialization. + (__libc_getutid_r): Rename from getutid_r_file. Drop static. + Check for initialization. + (__libc_getutline_r): Rename from getutline_r_file. Drop static. + Check for initialization. + (__libc_pututline): Rename from pututline_file. Drop static. + Check for initialization. + (__libc_endutent): Rename from endutent_file. Drop static. Check + for initialization. + (__libc_updwtmp): Rename from updwtmp_file. Drop static. + * login/utmpname.c (__utmpname): Call __libc_endutent. + * sysdeps/unix/getlogin_r (__getlogin_r): Call __libc_setutent, + __libc_getutlien_r, __libc_endutent. + * manual/users.texi (Who Logged In, Manipulating the Database): + Adjust. + +2019-08-05 Alexandra Hájková + + * elf/tst-ldconfig-bad-aux-cache.c: Use support_capture_subprocess. + +2019-08-02 Joseph Myers + + * sysdeps/unix/sysv/linux/syscall-names.list: Update comment. + + * sysdeps/unix/sysv/linux/tst-mman-consts.py (main): Update Linux + kernel version number to 5.2. + +2019-08-01 Raoni Fassina Firmino + + * sysdeps/powerpc/powerpc64/power8/memchr.S: Update power8 + mnemonics and set .machine power8. + * sysdeps/powerpc/powerpc64/power8/memcmp.S: Likewise. + * sysdeps/powerpc/powerpc64/power8/memrchr.S: Likewise. + * sysdeps/powerpc/powerpc64/power8/memset.S: Likewise. + * sysdeps/powerpc/powerpc64/power8/strchr.S: Likewise. + * sysdeps/powerpc/powerpc64/power8/strlen.S: Likewise. + * sysdeps/powerpc/powerpc64/power8/strncmp.S: Likewise. + * sysdeps/powerpc/powerpc64/power8/strncpy.S: Likewise. + * sysdeps/powerpc/powerpc64/power8/strnlen.S: Likewise. + * sysdeps/powerpc/powerpc64/power8/strrchr.S: Likewise. + * sysdeps/powerpc/powerpc64/power8/strspn.S: Likewise. + +2019-08-01 Adhemerval Zanella + + * sysdeps/hppa/fpu/libm-test-ulps: Update. + +2019-08-01 Florian Weimer + + [BZ #24867] + * malloc/malloc.c (__malloc_info): Remove unwanted leading + whitespace. + +2019-08-01 Adhemerval Zanella + + [BZ #15813] + sysdeps/posix/tempname.c (__gen_tempname): get entropy on each + attempt. + +2019-08-01 Carlos O'Donell + + * version.h (RELEASE): Set to "stable". + (VERSION): Set to "2.30". + * include/features.h (__GLIBC_MINOR__): Set to 2.30. + + * manual/install.texi: Update component versions. + * INSTALL: Regenerate. + * NEWS: Update. + +2019-07-31 Carlos O'Donell + + * po/be.po: Update translations. + * po/bg.po: Likewise. + * po/ca.po: Likewise. + * po/cs.po: Likewise. + * po/da.po: Likewise. + * po/de.po: Likewise. + * po/el.po: Likewise. + * po/eo.po: Likewise. + * po/es.po: Likewise. + * po/fi.po: Likewise. + * po/fr.po: Likewise. + * po/gl.po: Likewise. + * po/hr.po: Likewise. + * po/hu.po: Likewise. + * po/ia.po: Likewise. + * po/id.po: Likewise. + * po/it.po: Likewise. + * po/ja.po: Likewise. + * po/ko.po: Likewise. + * po/lt.po: Likewise. + * po/nb.po: Likewise. + * po/nl.po: Likewise. + * po/pl.po: Likewise. + * po/pt_BR.po: Likewise. + * po/ru.po: Likewise. + * po/rw.po: Likewise. + * po/sk.po: Likewise. + * po/sl.po: Likewise. + * po/sv.po: Likewise. + * po/tr.po: Likewise. + * po/uk.po: Likewise. + * po/vi.po: Likewise. + * po/zh_CN.po: Likewise. + * po/zh_TW.po: Likewise. + +2019-07-31 Florian Weimer + + [BZ #24583] + [BZ #24677] + iconv, libio: Revert reference counting changes. + * iconv/gconv_cache.c (__gconv_release_cache): Unconditionally + free the steps array. + * libio/Makefile (tests): Remove tst-wfile-gconv. + (tests-container): Do not add tst-wfile-ascii. + (tst-wfile-gconv-ENV): Do not set. + (generated): Do not add tst-wfile-gconv.mtrace, + tst-wfile-gconv.check. + [($run-built-tests)] (tests-special): Do not add + tst-wfile-gconv-mem.out. + (tst-wfile-gconv.out, tst-wfile-gconv-mem.out): Remove targets. + * libio/iofclose.c (_IO_new_fclose): Call __gconv_release_step + instead of __wcsmbs_clone_conv. + * wcsmbs/wcsmbsload.c (__wcsmbs_clone_conv): Remove definition. + * wcsmbs/wcsmbsload.h (__wcsmbs_clone_conv): Remove declaration. + 2019-07-30 Joseph Myers * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S @@ -119,7 +2675,7 @@ * nptl/nptl-init.c (pthread_functions): Remove assignment of removed member. -2019-07-17 Rafal Luzynski +2019-07-17 Rafał Lużyński [BZ #21897] * localedata/locales/aa_DJ (abday): Update from CLDR, all words @@ -137,7 +2693,7 @@ (mon): Update from CLDR, reword February from "Kudo" to "Naharsi Kudo" and April from "Agda Baxisso" to "Agda Baxis". -2019-07-17 Rafal Luzynski +2019-07-17 Rafał Lużyński [BZ #23996] * localedata/locales/nl_BE (LC_NAME): Replace with “copy "nl_NL"”. @@ -1122,7 +3678,7 @@ * sysdeps/s390/fpu/libm-test-ulps: Regenerated. -2019-06-24 Rafal Luzynski +2019-06-24 Rafał Lużyński [BZ #24652] * localedata/locales/szl_PL (day): Use the correct Unicode @@ -1138,7 +3694,7 @@ (alt_mon): This, then apply spelling corrections. (mon): New entry, month names in the genitive case. -2019-06-21 Rafal Luzynski +2019-06-21 Rafał Lużyński [BZ #23831] * localedata/locales/nl_AW (mon_thousands_sep): Set to ".". @@ -1217,7 +3773,7 @@ * sysdeps/unix/sysv/linux/powerpc/test-gettimebasefreq-static.c: New file. -2019-06-19 Rafal Luzynski +2019-06-19 Rafał Lużyński [BZ #24614] * localedata/locales/nl_AW (n_sep_by_space): Set to 2 (a space @@ -1253,7 +3809,7 @@ (tst-dlopen-pie.out): Add run-time dependency on tst-pie1. * elf/tst-dlopen-pie.c (do_test): New file. -2019-06-17 Rafal Luzynski +2019-06-17 Rafał Lużyński [BZ #24614] * localedata/Makefile (LOCALES): Add nl_NL.UTF-8. @@ -1860,7 +4416,7 @@ * sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_GNU] (F_SEAL_FUTURE_WRITE): New macro. -2019-05-23 Alexandra Hajkova +2019-05-23 Alexandra Hájková * elf/Makefile (test-container): Add tst-ldconfig-bad-aux-cache. * elf/tst-ldconfig-bad-aux-cache.c: New file. @@ -1915,7 +4471,7 @@ * benchtests/bench-strstr.c (do_one_test): Use small iterations. * benchtests/bench-strtok.c (do_one_test): Use small iterations. -2019-05-21 Adhemeval Zanella +2019-05-21 Adhemerval Zanella * sysdeps/unix/sysv/linux/powerpc/ipc_priv.h (SEMTIMEDOP_IPC_ARGS): New define. @@ -2141,7 +4697,7 @@ * nss/nss_compat/compat-spwd.c (init_nss_interface): Likewise. * sysdeps/posix/getaddrinfo.c (gaih_inet): Likewise. -2019-05-15 Alexandra Hajkova +2019-05-15 Alexandra Hájková * support/support.h (support_install_rootsbindir): New variable. * support/support_paths.c: Likewise. @@ -3192,7 +5748,7 @@ (mkreftable): Add rules for the new Japanese era and the new dates. 2019-04-02 TAMUKI Shoichi - Rafal Luzynski + Rafał Lużyński * time/tst-strftime2.c (date_t): Explicitly define the type. (dates): Use natural month and year numbers to express a date. @@ -3219,7 +5775,7 @@ * time/tst-strftime3.c: New. * time/Makefile (tests): Add tst-strftime3. -2019-04-01 Uros Bizjak +2019-04-01 Uroš Bizjak * sysdeps/alpha/divqu.S (__divqu): Move save of $f0 and excb after conditional branch to DIVBYZERO. Fix unwind info. @@ -6023,7 +8579,7 @@ (__hurd_file_name_lookup_retry): Keep a ref on last result in `lastdir'. Release it on return. Handle "pid" magical lookup retry. -2018-12-28 Rafal Luzynski +2018-12-28 Rafał Lużyński [BZ #10496] * localedata/locales/aa_DJ (t_fmt): Set to "%l:%M:%S %p". @@ -6155,7 +8711,7 @@ * localedata/locales/cs_CZ (t_fmt_ampm): Likewise. * localedata/locales/sk_SK (t_fmt_ampm): Likewise. -2018-12-28 Rafal Luzynski +2018-12-28 Rafał Lużyński [BZ #10496] [BZ #23724] @@ -9356,7 +11912,7 @@ * sysdeps/mips/sys/tas.h (_test_and_set): Handle the R5900 CPU with the ISA override. -2018-10-31 Rafael Avila de Espindola +2018-10-31 Rafael Ávila de Espíndola * sysdeps/unix/sysv/linux/sysdep-vdso.h: Simplify an #if #else #endif. @@ -10004,7 +12560,7 @@ * benchtests/scripts/compare_bench.py (main): set float type on threshold argument. -2018-10-08 Rafal Luzynski +2018-10-08 Rafał Lużyński [BZ #23740] * localedata/locales/kl_GL (mon): Update, the relative case. @@ -10083,7 +12639,7 @@ * support/test-container.c (main): Search for the ld.so which is also used by the testsuite. -2018-10-02 Rafal Luzynski +2018-10-02 Rafał Lużyński [BZ #20209] * localedata/locales/kl_GL: (abday): Fix spelling of Sun (Sunday), @@ -10548,7 +13104,7 @@ usage. * sysdeps/unix/sysv/linux/powerpc/not-errno.h: Remove file. -2018-09-21 Rafal Luzynski +2018-09-21 Rafał Lużyński [BZ #10425] * localedata/locales/it_IT (d_t_fmt): Use "%a %-d %b %Y, %T". @@ -11024,7 +13580,7 @@ (get_parser): Add --full-gcc option. (main): Update call to Context. -2018-09-10 Rafal Luzynski +2018-09-10 Rafał Lużyński [BZ #10797] * localedata/locales/de_CH (mon_thousands_sep): Use "" (Right @@ -11049,7 +13605,7 @@ * sysdeps/unix/sysv/linux/spawni.c (maybe_script_execute): Increment size of new_argv by one. -2018-09-05 Rafal Luzynski +2018-09-05 Rafał Lużyński [BZ #17426] * localedata/locales/anp_IN (d_fmt): Use "%-d//%-m//%y". @@ -11478,7 +14034,7 @@ * string/memmem.c: Use memcmp for first match. -2018-08-28 Rafal Luzynski +2018-08-28 Rafał Lużyński [BZ #17426] * localedata/locales/en_IN (d_fmt): Use "%d/%m/%y". @@ -12296,7 +14852,7 @@ (SNAN_TESTS_TYPE_CAST): Do not define macro here. * sysdeps/powerpc/math-tests.h (SNAN_TESTS_TYPE_CAST): Likewise. -2018-08-01 Carlos O'Donel +2018-08-01 Carlos O'Donell * version.h (RELEASE): Set to "development". (VERSION): Set to "2.28.9000". @@ -13170,7 +15726,7 @@ * sysdeps/x86_64/crti.S (_init): Likewise. (_fini): Likewise. -2018-07-17 Rafal Luzynski +2018-07-17 Rafał Lużyński [BZ #23140] * localedata/locales/os_RU (mon): Rename to... @@ -13335,7 +15891,7 @@ (IBT_ENABLED): Likewise. (SHSTK_ENABLED): Likewise. -2018-07-13 Rafal Luzynski +2018-07-13 Rafał Lużyński [BZ #23208] * localedata/Makefile (test-input): Add dsb_DE.UTF-8. @@ -13705,7 +16261,7 @@ * localedata/SUPPORTED (dsb_DE/UTF-8): New entry. * localedata/locales/dsb_DE: New file. -2018-06-29 Rafal Luzynski +2018-06-29 Rafał Lużyński [BZ #23140] * localedata/locales/hy_AM (mon): Synchronize with CLDR (lowercase, @@ -13844,7 +16400,7 @@ * malloc/malloc.c (__malloc_get_state, __malloc_set_state): Remove declarations. -2018-06-29 Rafal Luzynski +2018-06-29 Rafał Lużyński [BZ #23140] * localedata/locales/ast_ES (mon): Rename to... @@ -14123,7 +16679,7 @@ * nscd/connections.c (read_cmdline): New function. (restart): Use it. Update comment. -2018-06-25 Rafal Luzynski +2018-06-25 Rafał Lużyński [BZ #23140] * localedata/locales/csb_PL (mon): Rename to... @@ -14133,7 +16689,7 @@ (mon): Add with proper genitive forms, copy from Wikipedia. (abmon): Likewise. -2018-06-25 Rafal Luzynski +2018-06-25 Rafał Lużyński [BZ #19485] * localedata/locales/csb_PL (mon): Fix typos: @@ -14595,7 +17151,7 @@ * sysdeps/x86_64/multiarch/strncmp-sse2.S: Rename strcmp to strncmp if not in libc (and not to __strncmp_sse2). -2018-06-12 Rafal Luzynski +2018-06-12 Rafał Lużyński [BZ #23140] * localedata/locales/gd_GB (mon): Rename to... @@ -15710,7 +18266,7 @@ * sunrpc/svcauth_des.c (svcauthdes_stats): Turn into compatibility symbol. This should not have been exported, ever. -2018-05-11 Rafal Luzynski +2018-05-11 Rafał Lużyński [BZ #23152] * localedata/locales/gd_GB (abmon): Fix typo in May: @@ -18303,14 +20859,14 @@ * sysdeps/aarch64/strncmp.S (strncmp): Use lsr instead of mov + lsr. -2018-03-15 Rafal Luzynski +2018-03-15 Rafał Lużyński [BZ #22963] * localedata/locales/cs_CZ (mon): Rename to... (alt_mon): This. (mon): Import from CLDR (genitive case). -2018-03-15 Rafal Luzynski +2018-03-15 Rafał Lużyński [BZ #22937] * localedata/locales/el_CY (abmon): Rename to... @@ -18320,7 +20876,7 @@ (ab_alt_mon): This. (abmon): Import from CLDR (abbreviated genitive case). -2018-03-15 Rafal Luzynski +2018-03-15 Rafał Lużyński [BZ #22932] * localedata/locales/lt_LT (abmon): Synchronize with CLDR. @@ -20367,9 +22923,9 @@ * manual/contrib.texi (Palmer Dabbelt, Arjun Shankar, Florian Weimer): New entries. - (Rafal Luzynski, Andreas Schwab): Update. + (Rafał Lużyński, Andreas Schwab): Update. -2018-02-01 Rafal Luzynski +2018-02-01 Rafał Lużyński [BZ #10871] * NEWS: List the languages which actually use the alternative @@ -20398,7 +22954,7 @@ data. * nss/tst-nss-getpwent.c (do_test): Likewise. -2018-01-30 Rafal Luzynski +2018-01-30 Rafał Lużyński [BZ #10871] * localedata/locales/hr_HR (mon): Rename to... @@ -20644,13 +23200,13 @@ * scripts/build-many-glibcs.py (Context.checkout): Default Linux version to 4.15. -2018-01-29 Rafal Luzynski +2018-01-29 Rafał Lużyński [BZ #10871] * localedata/locales/lt_LT (alt_mon): Import from CLDR (nominative case). -2018-01-29 Rafal Luzynski +2018-01-29 Rafał Lużyński [BZ #10871] * localedata/locales/be_BY (mon): Rename to... @@ -20666,7 +23222,7 @@ * localedata/locales/be_BY@latin (lang_name): Reworded to "biełaruskaja mova". -2018-01-29 Rafal Luzynski +2018-01-29 Rafał Lużyński [BZ #10871] * localedata/locales/el_CY (mon): Renamed to... @@ -20674,7 +23230,7 @@ (mon): Import from CLDR (genitive case). * localedata/locales/el_GR: Likewise. -2018-01-29 Rafal Luzynski +2018-01-29 Rafał Lużyński [BZ #10871] * localedata/locales/ru_RU (mon): Rename to... @@ -20851,7 +23407,7 @@ __cancel_jmp_buf. * sysdeps/unix/sysv/linux/hppa/pthread.h: Likewise. -2018-01-25 Rafal Luzynski +2018-01-25 Rafał Lużyński [BZ #10871] * localedata/locales/uk_UA (mon): Renamed to... @@ -20955,7 +23511,7 @@ (ALTMON_11, ALTMON_12): Improve documentation. * manual/time.texi (strftime): Likewise. -2018-01-22 Rafal Luzynski +2018-01-22 Rafał Lużyński [BZ #10871] * localedata/locales/pl_PL: Alternative month names added, @@ -20963,7 +23519,7 @@ * time/tst-strptime.c (day_tests): Actually use a genitive case of a month name in Polish language. -2018-01-22 Rafal Luzynski +2018-01-22 Rafał Lużyński [BZ #10871] * manual/locale.texi: Document ALTMON_1..12 constants for @@ -20972,7 +23528,7 @@ permitting O modifier with %B and %b. Specify when to use %OB instead of %B. -2018-01-22 Rafal Luzynski +2018-01-22 Rafał Lużyński [BZ #10871] * locale/C-time.c (_nl_C_LC_TIME): Add abbreviated alternative month @@ -21003,7 +23559,7 @@ * time/tst-strptime.c (day_tests): Add more tests to parse different forms of month names including the new %Ob format specifier. -2018-01-22 Rafal Luzynski +2018-01-22 Rafał Lużyński [BZ #10871] * locale/C-time.c (_nl_C_LC_TIME): Add alternative month names, @@ -21052,7 +23608,7 @@ * sysdeps/generic/netinet/if_ether.h: Include . -2018-01-19 Rafal Luzynski +2018-01-19 Rafał Lużyński * localedata/locales/gu_IN (LC_IDENTIFICATION): Fix an obvious typo in date: "2004-14-09" should be "2004-09-14". @@ -21072,7 +23628,7 @@ * malloc/tst-malloc-too-large.c: New test. * malloc/Makefile: Add tst-malloc-too-large. -2018-01-18 Rafal Luzynski +2018-01-18 Rafał Lużyński * localedata/locales/bho_NP (LC_IDENTIFICATION): Fix an obvious typo in date: "2017-24-07" should be "2017-07-24". @@ -23410,7 +25966,7 @@ 2017-12-05 Rogerio A. Cardoso Paul E. Murphy - Carlos O'Donnell + Carlos O'Donell * elf/dl-tunables.list: Add elision parameters. * manual/tunables.texi: Add entries about elision tunable. @@ -27254,7 +29810,7 @@ (L): Likewise. (atom_text_section): Likewise. -2017-10-31 Rafal Luzynski +2017-10-31 Rafał Lużyński * localedata/unicode-gen/gen_unicode_ctype.py (output_head): category of LC_CTYPE set to "i18n:2012". @@ -27603,7 +30159,7 @@ then it is better not to have name_mr and name_mrs at all than having it wrong). -2017-10-27 Rafal Luzynski +2017-10-27 Rafał Lużyński * locale/loadlocale.c: Correct size of _nl_value_type_LC_ arrays. diff --git a/ChangeLog.old/ChangeLog.20 b/ChangeLog.old/ChangeLog.20 new file mode 100644 index 0000000000..f38dad74d5 --- /dev/null +++ b/ChangeLog.old/ChangeLog.20 @@ -0,0 +1,6542 @@ +2020-02-01 Siddhesh Poyarekar + + COMMIT: 7ef9556328fd5c2fe1c2d9203a209895b5156a33 + Update version numbers for 2.31 release + + * include/features.h: Modified. + (__GLIBC_MINOR__): Modified. + * version.h: Modified. + (RELEASE): Modified. + (VERSION): Modified. + +2020-02-01 Siddhesh Poyarekar + + COMMIT: e7daa7fcf70543b063ce0311fbdfb259d187d314 + Add bugs fixed in 2.31 in NEWS + + * NEWS: Modified. + +2020-02-01 Siddhesh Poyarekar + + COMMIT: df5919dfeb5424c90a1f623315abd67e87bad6a3 + Update newest tested versions of dependencies in install.texi + + * INSTALL: Modified. + * manual/install.texi: Modified. + +2020-02-01 Siddhesh Poyarekar + + COMMIT: 711416872d59eb592921962db2a832243ba765b2 + Add more contributors to the manual + + * manual/contrib.texi: Modified. + +2020-02-01 Siddhesh Poyarekar + + COMMIT: f1bb5499d12e0175ca69cb72e7e7471fd02457b8 + Add note to NEWS about kernel headers dependency on risc-v + + * NEWS: Modified. + +2020-02-01 Siddhesh Poyarekar + + COMMIT: 4844a8437f3e2133106a4a8639d2d1b186fa8c76 + Add Portuguese (Portugal) translation + + * po/pt.po: New file. + +2020-01-31 Szabolcs Nagy + Siddhesh Poyarekar + + COMMIT: 2cd01a1df2afc16ada1ce8479fbf888a803270ea + Add NEWS entry about 64-bit time_t syscall use on 32-bit targets + + * NEWS: Modified. + +2020-01-30 Florian Weimer + + COMMIT: 9baa46aa7b1aa56c8fb313013bb9aecf4ed96504 + nptl: Avoid using PTHREAD_MUTEX_DEFAULT in macro definition [BZ #25271] + + * sysdeps/nptl/pthread.h: Modified. + (PTHREAD_MUTEX_INITIALIZER): Modified. + +2020-01-24 Joseph Myers + + COMMIT: 352bb99754ae7c83ff1b974f9c52244e974c9410 + Build raise with -fasynchronous-unwind-tables. + + * signal/Makefile: Modified. + +2020-01-24 Joseph Myers + + COMMIT: ef02e3c476ce76a1205744cdd396ac1eda1013d6 + Fix locale/tst-locale-locpath cross-testing when sshd sets LANG. + + * locale/tst-locale-locpath.sh: Modified. + +2020-01-24 Joseph Myers + + COMMIT: d01fd5f0ce11575b31bb11824ff86d8ba2117486 + Fix elf/tst-rtld-preload cross-testing. + + * elf/Makefile: Modified. + * elf/tst-rtld-preload.sh: Modified. + +2020-01-23 Joseph Myers + + COMMIT: 00167b531da63674d6b9ed686912de86422a5ae5 + Fix cross-testing of tst-ifunc-fault-* tests. + + * elf/Makefile: Modified. + +2020-01-23 Siddhesh Poyarekar + + COMMIT: de077de10f0ac140fdced24781370967f9e5610f + gitlog-to-changelog: Drop scripts in favour of gnulib version + + * scripts/gitlog_to_changelog.py: Delete file. + * scripts/vcs_to_changelog/frontend_c.py: Delete file. + * scripts/vcs_to_changelog/misc_util.py: Delete file. + * scripts/vcs_to_changelog/vcs_git.py: Delete file. + * scripts/vcs_to_changelog/vcstocl_quirks.py: Move to... + * scripts/vcstocl_quirks.py: ... here. + +2020-01-23 Dragan Mladjenovic + Dragan Mladjenovic + Siddhesh Poyarekar + + COMMIT: ba44e5b50873ceea25884af280612e100e151746 + Add NEWS entry about the change in handling of PT_GNU_STACK on MIPS + + * NEWS: Modified. + +2020-01-21 Andreas Schwab + + COMMIT: d93769405996dfc11d216ddbe415946617b5a494 + Fix array overflow in backtrace on PowerPC (bug 25423) + + * debug/tst-backtrace5.c: Modified. + (handle_signal): Modified function. + * sysdeps/powerpc/powerpc32/backtrace.c: Modified. + (__backtrace): Modified function. + * sysdeps/powerpc/powerpc64/backtrace.c: Modified. + (__backtrace): Modified function. + +2020-01-20 Florian Weimer + + COMMIT: 8b222fa38700422b4da6731806835f0bbf40920d + getaddrinfo: Fix resource leak after strdup failure in gethosts [BZ #25425] + + * sysdeps/posix/getaddrinfo.c: Modified. + (gethosts): Modified. + +2020-01-20 Joseph Myers + + COMMIT: 92ce43eef7ac844782d50a8015d977d216fbadec + Run bench-timing-type with newly built libc. + + * benchtests/Makefile: Modified. + +2020-01-20 Stefan Liebler + + COMMIT: aba12794dc0d1835b9652f34df722970b1bd3397 + Get rid of Werror=maybe-uninitialized in res_send.c. + + * resolv/res_send.c: Modified. + (__res_context_send): Modified function. + +2020-01-19 Siddhesh Poyarekar + + COMMIT: 3cb57302ed6acc34409c71cfd99e4f22359d6533 + translations: Update translations + + * po/be.po: Modified. + * po/bg.po: Modified. + * po/ca.po: Modified. + * po/cs.po: Modified. + * po/da.po: Modified. + * po/el.po: Modified. + * po/eo.po: Modified. + * po/es.po: Modified. + * po/fi.po: Modified. + * po/fr.po: Modified. + * po/gl.po: Modified. + * po/hr.po: Modified. + * po/hu.po: Modified. + * po/ia.po: Modified. + * po/id.po: Modified. + * po/it.po: Modified. + * po/ja.po: Modified. + * po/ko.po: Modified. + * po/lt.po: Modified. + * po/nb.po: Modified. + * po/nl.po: Modified. + * po/pl.po: Modified. + * po/pt_BR.po: Modified. + * po/ru.po: Modified. + * po/rw.po: Modified. + * po/sk.po: Modified. + * po/sl.po: Modified. + * po/tr.po: Modified. + * po/uk.po: Modified. + * po/vi.po: Modified. + * po/zh_CN.po: Modified. + * po/zh_TW.po: Modified. + +2020-01-19 Siddhesh Poyarekar + + COMMIT: afbfe2d963a93dca25eba723003a1c8bf4297a36 + translations: Trim po files using msgattrib + + * po/Makefile: Modified. + +2020-01-19 Siddhesh Poyarekar + + COMMIT: 35869b85312137865735785187a2b4214d069e8d + Update translations + + * po/be.po: Modified. + * po/bg.po: Modified. + * po/ca.po: Modified. + * po/cs.po: Modified. + * po/da.po: Modified. + * po/de.po: Modified. + * po/el.po: Modified. + * po/eo.po: Modified. + * po/es.po: Modified. + * po/fi.po: Modified. + * po/fr.po: Modified. + * po/gl.po: Modified. + * po/hr.po: Modified. + * po/hu.po: Modified. + * po/ia.po: Modified. + * po/id.po: Modified. + * po/it.po: Modified. + * po/ja.po: Modified. + * po/ko.po: Modified. + * po/lt.po: Modified. + * po/nb.po: Modified. + * po/nl.po: Modified. + * po/pl.po: Modified. + * po/pt_BR.po: Modified. + * po/ru.po: Modified. + * po/rw.po: Modified. + * po/sk.po: Modified. + * po/sl.po: Modified. + * po/sv.po: Modified. + * po/tr.po: Modified. + * po/uk.po: Modified. + * po/vi.po: Modified. + * po/zh_CN.po: Modified. + * po/zh_TW.po: Modified. + +2020-01-19 Siddhesh Poyarekar + + COMMIT: 63675a927eb65d4990179c12e7e1a4805a98e7c8 + translations: Run msgmerge when downloading translations + + * po/Makefile: Modified. + +2020-01-17 Matheus Castanho + + COMMIT: 9f8b135f76ac7943d1e108b7f6e816f526b2208c + Fix maybe-uninitialized error on powerpc + + * sysdeps/ieee754/dbl-64/mpa.c: Modified. + (__inv): Modified function. + +2020-01-18 Andreas Schwab + + COMMIT: be5c5315b95aaddcef38f1d3f4c526401076bd38 + powerpc32: Fix syntax error in __GLRO macro + + * sysdeps/powerpc/powerpc32/sysdep.h: Modified. + [__ASSEMBLER__][! PIC](__GLRO): Modified. + +2020-01-17 Florian Weimer + + COMMIT: 768c83b7f60d82db6677e19dc51be9f341e0f3fc + Remove incorrect alloc_size attribute from pvalloc [BZ #25401] + + * malloc/Makefile: Modified. + * malloc/malloc.h: Modified. + (__wur): Modified. + * malloc/tst-pvalloc-fortify.c: New file. + +2020-01-17 Lucas A. M. Magalhaes + + COMMIT: 70ba28f7ab2923d4e36ffc9d5d2e32357353b25c + Fix tst-pkey.c pkey_alloc return checks and manual + + * manual/memory.texi: Modified. + * sysdeps/unix/sysv/linux/tst-pkey.c: Modified. + (do_test): Modified function. + +2020-01-17 Tulio Magno Quites Machado Filho + + COMMIT: 18363b4f010da9ba459b13310b113ac0647c2fcc + powerpc: Move cache line size to rtld_global_ro + + * elf/dl-support.c: Modified. + [HAVE_AUX_VECTOR](_dl_aux_init): Modified function. + (dl-auxv.h): Include file. + * elf/dl-sysdep.c: Modified. + (_dl_sysdep_start): Modified function. + (dl-auxv.h): Include file. + * sysdeps/generic/dl-auxv.h: New file. + * sysdeps/powerpc/Makefile: Modified. + * sysdeps/powerpc/dl-procinfo.c: Modified. + [!IS_IN (ldconfig)][!(! PROCINFO_DECL && SHARED)][PROCINFO_DECL][!(! PROCINFO_DECL && SHARED)][PROCINFO_DECL](PROCINFO_DECL): Remove. + [!IS_IN (ldconfig)][!(! PROCINFO_DECL && SHARED)][PROCINFO_DECL][!(! PROCINFO_DECL && SHARED)][PROCINFO_DECL](PROCINFO_CLASS): Remove. + [!IS_IN (ldconfig)][!(! PROCINFO_DECL && SHARED)][PROCINFO_DECL][!(! PROCINFO_DECL && SHARED)][PROCINFO_DECL][!IS_IN (ldconfig)][!(! PROCINFO_DECL && SHARED)][! PROCINFO_DECL](_dl_cache_line_size): New. + [!IS_IN (ldconfig)][!(! PROCINFO_DECL && SHARED)][PROCINFO_DECL][!(! PROCINFO_DECL && SHARED)][PROCINFO_DECL][!IS_IN (ldconfig)][!(! PROCINFO_DECL && SHARED)][PROCINFO_DECL](PROCINFO_DECL): New. + [!IS_IN (ldconfig)][!(! PROCINFO_DECL && SHARED)][PROCINFO_DECL][!(! PROCINFO_DECL && SHARED)][PROCINFO_DECL][!IS_IN (ldconfig)][!(! PROCINFO_DECL && SHARED)][PROCINFO_DECL](PROCINFO_CLASS): New. + * sysdeps/powerpc/mod-cache-ppc.c: New file. + * sysdeps/powerpc/powerpc32/a2/memcpy.S: Modified. + * sysdeps/powerpc/powerpc32/dl-machine.c: Modified. + (__cache_line_size): Remove. + (__elf_machine_runtime_setup): Modified function. + * sysdeps/powerpc/powerpc32/memset.S: Modified. + * sysdeps/powerpc/powerpc32/sysdep.h: Modified. + [__ASSEMBLER__][! PIC](__GLRO): New. + [__ASSEMBLER__][PIC][! SHARED](__GLRO): New. + [__ASSEMBLER__][PIC][SHARED][!(IS_IN (rtld))](__GLRO): New. + [__ASSEMBLER__][PIC][SHARED][IS_IN (rtld)](__GLRO): New. + * sysdeps/powerpc/powerpc64/a2/memcpy.S: Modified. + * sysdeps/powerpc/powerpc64/memset.S: Modified. + * sysdeps/powerpc/powerpc64/sysdep.h: Modified. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][! SHARED][SHARED][!(IS_IN (rtld))][_CALL_ELF != 2][! USE_PPC64_OVERLAPPING_OPD](OPD_ENT): New. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][! SHARED][SHARED][!(IS_IN (rtld))][_CALL_ELF != 2][! USE_PPC64_OVERLAPPING_OPD](ENTRY_1): New. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][! SHARED][SHARED][!(IS_IN (rtld))][_CALL_ELF != 2][! USE_PPC64_OVERLAPPING_OPD](DOT_PREFIX): New. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][! SHARED][SHARED][!(IS_IN (rtld))][_CALL_ELF != 2][! USE_PPC64_OVERLAPPING_OPD](BODY_PREFIX): New. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][! SHARED][SHARED][!(IS_IN (rtld))][_CALL_ELF != 2][! USE_PPC64_OVERLAPPING_OPD](ENTRY_2): New. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][! SHARED][SHARED][!(IS_IN (rtld))][_CALL_ELF != 2][! USE_PPC64_OVERLAPPING_OPD](END_2): New. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][! SHARED][SHARED][!(IS_IN (rtld))][_CALL_ELF != 2][! USE_PPC64_OVERLAPPING_OPD](LOCALENTRY): New. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][! SHARED][SHARED][!(IS_IN (rtld))][_CALL_ELF != 2][USE_PPC64_OVERLAPPING_OPD](OPD_ENT): New. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][! SHARED][SHARED][!(IS_IN (rtld))][_CALL_ELF != 2][USE_PPC64_OVERLAPPING_OPD](PPC64_LOAD_FUNCPTR): New. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][! SHARED][SHARED][!(IS_IN (rtld))][_CALL_ELF != 2][USE_PPC64_OVERLAPPING_OPD](DOT_PREFIX): New. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][! SHARED][SHARED][!(IS_IN (rtld))][_CALL_ELF != 2][USE_PPC64_OVERLAPPING_OPD](BODY_PREFIX): New. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][! SHARED][SHARED][!(IS_IN (rtld))][_CALL_ELF != 2][USE_PPC64_OVERLAPPING_OPD](ENTRY_2): New. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][! SHARED][SHARED][!(IS_IN (rtld))][_CALL_ELF != 2][USE_PPC64_OVERLAPPING_OPD](END_2): New. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][! SHARED][SHARED][!(IS_IN (rtld))][_CALL_ELF != 2][USE_PPC64_OVERLAPPING_OPD](LOCALENTRY): New. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][! SHARED][SHARED][!(IS_IN (rtld))][_CALL_ELF != 2](PPC64_LOAD_FUNCPTR): New. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][! SHARED][SHARED][!(IS_IN (rtld))](__GLRO_DEF): New. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][! SHARED][SHARED][!(IS_IN (rtld))](__GLRO): New. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][! SHARED][SHARED][IS_IN (rtld)](__GLRO_DEF): New. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][! SHARED][SHARED][IS_IN (rtld)](__GLRO_DEF): New. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][! SHARED][SHARED][IS_IN (rtld)](__GLRO): New. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][SHARED][_CALL_ELF != 2][! USE_PPC64_OVERLAPPING_OPD](OPD_ENT): Remove. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][SHARED][_CALL_ELF != 2][! USE_PPC64_OVERLAPPING_OPD](ENTRY_1): Remove. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][SHARED][_CALL_ELF != 2][! USE_PPC64_OVERLAPPING_OPD](DOT_PREFIX): Remove. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][SHARED][_CALL_ELF != 2][! USE_PPC64_OVERLAPPING_OPD](BODY_PREFIX): Remove. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][SHARED][_CALL_ELF != 2][! USE_PPC64_OVERLAPPING_OPD](ENTRY_2): Remove. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][SHARED][_CALL_ELF != 2][! USE_PPC64_OVERLAPPING_OPD](END_2): Remove. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][SHARED][_CALL_ELF != 2][! USE_PPC64_OVERLAPPING_OPD](LOCALENTRY): Remove. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][SHARED][_CALL_ELF != 2][USE_PPC64_OVERLAPPING_OPD](OPD_ENT): Remove. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][SHARED][_CALL_ELF != 2][USE_PPC64_OVERLAPPING_OPD](PPC64_LOAD_FUNCPTR): Remove. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][SHARED][_CALL_ELF != 2][USE_PPC64_OVERLAPPING_OPD](DOT_PREFIX): Remove. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][SHARED][_CALL_ELF != 2][USE_PPC64_OVERLAPPING_OPD](BODY_PREFIX): Remove. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][SHARED][_CALL_ELF != 2][USE_PPC64_OVERLAPPING_OPD](ENTRY_2): Remove. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][SHARED][_CALL_ELF != 2][USE_PPC64_OVERLAPPING_OPD](END_2): Remove. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][SHARED][_CALL_ELF != 2][USE_PPC64_OVERLAPPING_OPD](LOCALENTRY): Remove. + [__ASSEMBLER__][! PROF][_CALL_ELF == 2][SHARED][_CALL_ELF != 2](PPC64_LOAD_FUNCPTR): Remove. + * sysdeps/powerpc/rtld-global-offsets.sym: Modified. + * sysdeps/powerpc/tst-cache-ppc-static-dlopen.c: New file. + * sysdeps/powerpc/tst-cache-ppc-static.c: New file. + * sysdeps/powerpc/tst-cache-ppc.c: New file. + * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c: Move to... + * sysdeps/unix/sysv/linux/powerpc/dl-auxv.h: ... here. + (config.h): Remove include. + (__cache_line_size): Remove. + (DL_PLATFORM_AUXV): Modified. + (sysdeps/unix/sysv/linux/dl-sysdep.c): Remove include. + [IS_IN (libc) && ! SHARED](GLRO): New. + * sysdeps/unix/sysv/linux/powerpc/dl-static.c: Modified. + [SHARED](_dl_var_init): Modified function. + * sysdeps/unix/sysv/linux/powerpc/libc-start.c: Modified. + (__cache_line_size): Remove. + (__libc_start_main): Modified function. + +2020-01-17 Tulio Magno Quites Machado Filho + + COMMIT: c908ae0492cb9c68736306e2bceec7244a940568 + powerpc: Initialize rtld_global_ro for static dlopen [BZ #20802] + + * sysdeps/unix/sysv/linux/powerpc/dl-static.c: Modified. + [SHARED](_dl_var_init): Modified function. + +2020-01-17 Siddhesh Poyarekar + + COMMIT: def9c08c94da60bfb746644d56cffbe7a9de3477 + Revert outdated translations + + * po/da.po: Modified. + * po/el.po: Modified. + * po/eo.po: Modified. + * po/es.po: Modified. + * po/gl.po: Modified. + * po/hu.po: Modified. + * po/ia.po: Modified. + * po/id.po: Modified. + * po/it.po: Modified. + * po/ja.po: Modified. + * po/lt.po: Modified. + * po/nb.po: Modified. + * po/rw.po: Modified. + * po/sk.po: Modified. + * po/sl.po: Modified. + * po/zh_CN.po: Modified. + +2020-01-17 Siddhesh Poyarekar + + COMMIT: a9ed2b274796777442b1f66a661f957daf39bb66 + vcs-to-changelog: Add quirk for __nonnull + + * scripts/vcs_to_changelog/vcstocl_quirks.py: Modified. + +2020-01-16 Florian Weimer + + COMMIT: a332bd1518af518c984fad73eba6f46dc5b2b2d4 + elf: Add elf/tst-dlopenfail-2 [BZ #25396] + + * elf/Makefile: Modified. + * elf/tst-dlopenfail-2.c: New file. + * elf/tst-dlopenfailmod3.c: New file. + +2020-01-16 H.J. Lu + + COMMIT: 5177d85b0c050a2333a0c4165c938dd422013d05 + Clear GL(dl_initfirst) when freeing its link_map memory [BZ# 25396] + + * elf/dl-close.c: Modified. + (_dl_close_worker): Modified function. + +2020-01-16 Siddhesh Poyarekar + + COMMIT: 791a08cf378db8cc99baa8c63746c9d2885e7f9a + Update Translations + + * po/ca.po: Modified. + * po/da.po: Modified. + * po/de.po: Modified. + * po/el.po: Modified. + * po/eo.po: Modified. + * po/es.po: Modified. + * po/fi.po: Modified. + * po/fr.po: Modified. + * po/gl.po: Modified. + * po/hr.po: Modified. + * po/hu.po: Modified. + * po/ia.po: Modified. + * po/id.po: Modified. + * po/it.po: Modified. + * po/ja.po: Modified. + * po/ko.po: Modified. + * po/lt.po: Modified. + * po/nb.po: Modified. + * po/ru.po: Modified. + * po/rw.po: Modified. + * po/sk.po: Modified. + * po/sl.po: Modified. + * po/sv.po: Modified. + * po/tr.po: Modified. + * po/vi.po: Modified. + * po/zh_CN.po: Modified. + * po/zh_TW.po: Modified. + +2020-01-13 Samuel Thibault + + COMMIT: a8f0fc4e5fbad300d524a3339d503c41e3182ed0 + htl: Add internal version of __pthread_mutex_timedlock + + * htl/Versions: Modified. + * sysdeps/htl/pt-mutex-timedlock.c: Modified. + (pthread_mutex_timedlock): Remove function. + (__pthread_mutex_timedlock): New function. + (strong_alias): New. + * sysdeps/htl/pthreadP.h: Modified. + (__pthread_mutex_timedlock): New function. + * sysdeps/mach/hurd/htl/pt-mutex-timedlock.c: Modified. + (pthread_mutex_timedlock): Remove function. + (__pthread_mutex_timedlock): New function. + (strong_alias): New. + +2020-01-13 Samuel Thibault + + COMMIT: 1d62a403734b18367eb0aa47493d0de644edd00b + htl: Avoid crashing when passed invalid pthread_t values + + * htl/pt-internal.h: Modified. + (__pthread_getid): Modified. + (__pthread_max_threads): New. + +2020-01-13 Joseph Myers + + COMMIT: bc487d714191e91789ad420de274e789f710cac3 + Update build-many-glibcs.py for GCC move to git. + + * scripts/build-many-glibcs.py: Modified. + +2020-01-13 Stefan Liebler + + COMMIT: 3c8639b02efcbc5e8087b0f9bc63da8aeb203549 + Fix "elf: Add tst-ldconfig-ld_so_conf-update test" on 32bit. + + * elf/tst-ldconfig-ld_so_conf-update.c: Modified. + (do_test): Modified function. + +2020-01-13 Samuel Thibault + + COMMIT: ae793cc20d80eec6ccffc31612b635b8c1b82e89 + htl: Avoid exposing unixoid functions + + * htl/pt-create.c: Modified. + (__pthread_create_internal): Modified function. + * htl/pt-yield.c: Modified. + (pthread_yield): Modified function. + * sysdeps/htl/pt-destroy-specific.c: Modified. + (__pthread_destroy_specific): Modified function. + * sysdeps/mach/htl/pt-timedblock.c: Modified. + (__pthread_timedblock): Modified function. + * sysdeps/mach/hurd/Versions: Modified. + +2020-01-13 Samuel Thibault + + COMMIT: 196e62cbe4acdab22a95740b618c699863ed460c + htl: Add type sizes in bits/pthreadtypes-arch.h and check them + + * sysdeps/htl/pt-attr-init.c: Modified. + (__pthread_attr_init): Modified function. + * sysdeps/htl/pt-barrier-init.c: Modified. + (pthread_barrier_init): Modified function. + * sysdeps/htl/pt-barrierattr-init.c: Modified. + (pthread_barrierattr_init): Modified function. + * sysdeps/htl/pt-cond-init.c: Modified. + (__pthread_cond_init): Modified function. + * sysdeps/htl/pt-condattr-init.c: Modified. + (__pthread_condattr_init): Modified function. + * sysdeps/htl/pt-mutex-init.c: Modified. + (_pthread_mutex_init): Modified function. + * sysdeps/htl/pt-mutexattr-init.c: Modified. + (__pthread_mutexattr_init): Modified function. + * sysdeps/htl/pt-once.c: Modified. + (__pthread_once): Modified function. + * sysdeps/htl/pt-rwlock-init.c: Modified. + (_pthread_rwlock_init): Modified function. + * sysdeps/htl/pt-rwlockattr-init.c: Modified. + (pthread_rwlockattr_init): Modified function. + * sysdeps/htl/pthreadP.h: Modified. + (ASSERT_TYPE_SIZE): New. + * sysdeps/i386/htl/bits/pthreadtypes-arch.h: Modified. + (__SIZEOF_PTHREAD_MUTEX_T): New. + (__SIZEOF_PTHREAD_ATTR_T): New. + (__SIZEOF_PTHREAD_RWLOCK_T): New. + (__SIZEOF_PTHREAD_BARRIER_T): New. + (__SIZEOF_PTHREAD_MUTEXATTR_T): New. + (__SIZEOF_PTHREAD_COND_T): New. + (__SIZEOF_PTHREAD_CONDATTR_T): New. + (__SIZEOF_PTHREAD_RWLOCKATTR_T): New. + (__SIZEOF_PTHREAD_BARRIERATTR_T): New. + (__SIZEOF_PTHREAD_ONCE_T): New. + (__LOCK_ALIGNMENT): New. + (__ONCE_ALIGNMENT): New. + * sysdeps/mach/hurd/htl/pt-mutex-init.c: Modified. + (_pthread_mutex_init): Modified function. + * sysdeps/mach/hurd/htl/pt-mutexattr-init.c: Modified. + (__pthread_mutexattr_init): Modified function. + +2020-01-13 Samuel Thibault + + COMMIT: e404be33feaa586231fe30e3bdf6d380a79c2679 + htl: Add internal versions of functions used by C11 threads + + * htl/pt-join.c: Modified. + (pthread_join): Remove function. + (__pthread_join): New function. + (strong_alias): New function. + * sysdeps/htl/libc-lockP.h: Modified. + (__pthread_key_delete): New function. + * sysdeps/htl/pt-key-delete.c: Modified. + (pthread_key_delete): Remove function. + (__pthread_key_delete): New function. + (strong_alias): New. + * sysdeps/htl/pthreadP.h: Modified. + (__pthread_join): New function. + +2020-01-09 Paul Eggert + + COMMIT: e1195b207c057ccc61bd5e9334da5c2b361f8b2a + Update timezone/README + + * timezone/README: Modified. + * timezone/version: New file. + +2020-01-09 Alexandra Hájková + + COMMIT: 591236f1a33f11cc65ccf009d997071ba853e186 + elf: Add tst-ldconfig-ld_so_conf-update test + + * elf/Makefile: Modified. + * elf/tst-ldconfig-ld-mod.c: New file. + * elf/tst-ldconfig-ld_so_conf-update.c: New file. + * elf/tst-ldconfig-ld_so_conf-update.root/postclean.req: New file. + * elf/tst-ldconfig-ld_so_conf-update.root/tst-ldconfig-ld_so_conf-update.script: New file. + +2020-01-09 Zack Weinberg + + COMMIT: 521c7fc65f1f9e49dc2994d22d79e71e76a6c0c2 + Revise NEWS description of changes to gettimeofday etc. + + * NEWS: Modified. + +2020-01-09 Siddhesh Poyarekar + + COMMIT: 97ff54d2fcd0857756038d82e02f1a75accbaa66 + Drop dependency of dist target on ChangeLog + + * Makefile: Modified. + * NEWS: Modified. + +2020-01-08 Zack Weinberg + + COMMIT: 4988e26b94a9397d934e43f9116b0d33b3a454b2 + MIPS: Fix circular definition of __LDBL_MANT_DIG__ in ieee754.h + + * sysdeps/mips/ieee754/ieee754.h: Modified. + [! __LDBL_MANT_DIG__](__LDBL_MANT_DIG__): Modified. + +2020-01-08 Rafał Lużyński + + COMMIT: 135540285cb44f820dac41c2b95531db33658f9f + sl_SI locale: Use "." as the thousands separator (bug 25233) + + * localedata/locales/sl_SI: Modified. + +2020-01-07 Siddhesh Poyarekar + + COMMIT: d006e84d5df24c9da1c71fe57790626d44deaeed + Fix formatting of ChangeLog ouput + + * scripts/vcs_to_changelog/vcs_git.py: Modified. + +2020-01-05 Samuel Thibault + + COMMIT: cbce69e70dc4b04fefcc7257e593733b8b03856c + hurd: Fix message reception for timer_thread + + * sysdeps/mach/hurd/setitimer.c: Modified. + (timer_thread): Modified function. + +2020-01-04 Samuel Thibault + + COMMIT: 25c084e0a7b5e8d604d0f86b55f343acadf7af5d + htl: Add __errno_location and __h_errno_location + + * htl/Makefile: Modified. + * htl/Versions: Modified. + * htl/herrno.c: New file. + * sysdeps/htl/Makefile: Modified. + * sysdeps/mach/hurd/i386/libpthread.abilist: Modified. + +2020-01-04 Samuel Thibault + + COMMIT: 50a78baa8e385fac36d54d51800dc5c61ef7f139 + htl: Move pthread_atfork to libc_nonshared.a + + * htl/Makefile: Modified. + * sysdeps/htl/Makeconfig: Modified. + * sysdeps/htl/pt-atfork.c: Modified. + (pthread_atfork): Remove function. + (__pthread_atfork): New function. + (weak_alias): New. + +2020-01-04 Samuel Thibault + + COMMIT: 12e166dd80bd3056f667930719572017d25a79c4 + htl: Drop common tcbhead_t definition + + * htl/pt-internal.h: Modified. + [!(IS_IN (libpthread))](tcbhead_t): Remove. + (tls.h): Include file. + +2020-01-04 Samuel Thibault + + COMMIT: af7be496c9f1a1ca340ccd95152d46e8464490a1 + htl: Use dso_handle.h + + * sysdeps/htl/pt-atfork.c: Modified. + (__visibility__): Remove. + (pthread_atfork): Modified function. + (dso_handle.h): Include file. + +2020-01-03 Adhemerval Zanella + + COMMIT: 92b963699aae2da1e25f47edc7a0408bf3aee4d2 + linux: Optimize fallback 32-bit clock_getres + + * sysdeps/unix/sysv/linux/clock_getres.c: Modified. + (__clock_getres64): Modified function. + +2020-01-03 Adhemerval Zanella + + COMMIT: 0dc1a378b135ec46fcc451d96c4a3a64c08e2ace + linux: Add support for clock_getres64 vDSO + + * sysdeps/unix/sysv/linux/aarch64/sysdep.h: Modified. + [! __ASSEMBLER__](HAVE_CLOCK_GETRES_VSYSCALL): Remove. + [! __ASSEMBLER__](HAVE_CLOCK_GETRES64_VSYSCALL): New. + * sysdeps/unix/sysv/linux/clock_getres.c: Modified. + (__clock_getres64): Modified function. + * sysdeps/unix/sysv/linux/dl-vdso-setup.c: Modified. + [PROCINFO_DECL || ! SHARED][HAVE_CLOCK_GETRES64_VSYSCALL](RELRO): New. + * sysdeps/unix/sysv/linux/dl-vdso-setup.h: Modified. + (setup_vdso_pointers): Modified function. + * sysdeps/unix/sysv/linux/powerpc/sysdep.h: Modified. + [!((__PPC64__) || (__powerpc64__))](HAVE_CLOCK_GETRES_VSYSCALL): New. + [(__PPC64__) || (__powerpc64__)](HAVE_CLOCK_GETRES64_VSYSCALL): New. + (HAVE_CLOCK_GETRES_VSYSCALL): Remove. + * sysdeps/unix/sysv/linux/riscv/sysdep.h: Modified. + [! __ASSEMBLER__](HAVE_CLOCK_GETRES_VSYSCALL): Remove. + [! __ASSEMBLER__](HAVE_CLOCK_GETRES64_VSYSCALL): New. + * sysdeps/unix/sysv/linux/s390/sysdep.h: Modified. + [! __s390x__](HAVE_CLOCK_GETRES_VSYSCALL): New. + [__s390x__](HAVE_CLOCK_GETRES64_VSYSCALL): New. + (HAVE_CLOCK_GETRES_VSYSCALL): Remove. + * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Modified. + [! __ASSEMBLER__](HAVE_CLOCK_GETRES_VSYSCALL): Remove. + [! __ASSEMBLER__](HAVE_CLOCK_GETRES64_VSYSCALL): New. + +2020-01-03 Adhemerval Zanella + + COMMIT: cdae973b6a7eb95b1caf1e1ecfc93de720ac6b44 + linux: Enable vDSO clock_gettime64 for mips + + * sysdeps/unix/sysv/linux/mips/sysdep.h: Modified. + [_MIPS_SIM != _ABI64](HAVE_CLOCK_GETTIME64_VSYSCALL): New. + (sgidefs.h): Include file. + +2020-01-03 Adhemerval Zanella + + COMMIT: 93e4db49b424fefd38db6459baa2cc258f4e89b9 + linux: Enable vDSO clock_gettime64 for arm + + * sysdeps/unix/sysv/linux/arm/sysdep.h: Modified. + [! __ASSEMBLER__](HAVE_CLOCK_GETTIME64_VSYSCALL): New. + +2020-01-03 Adhemerval Zanella + + COMMIT: 2d77a447510c18ec0255546b7016e47677296e00 + linux: Enable vDSO clock_gettime64 for i386 + + * sysdeps/unix/sysv/linux/i386/sysdep.h: Modified. + [! __ASSEMBLER__](HAVE_CLOCK_GETTIME64_VSYSCALL): New. + +2020-01-03 Adhemerval Zanella + + COMMIT: a9091a12444d551977adb6d8b45b2007881f1b8b + linux: Optimize fallback 32-bit clock_gettime + + * sysdeps/unix/sysv/linux/clock_gettime.c: Modified. + (__clock_gettime64): Modified function. + +2020-01-03 Adhemerval Zanella + + COMMIT: ff500a623d1bf9fb24f30fa80451897b534549e1 + linux: Add support for clock_gettime64 vDSO + + * sysdeps/unix/sysv/linux/aarch64/sysdep.h: Modified. + [! __ASSEMBLER__](HAVE_CLOCK_GETTIME_VSYSCALL): Remove. + [! __ASSEMBLER__](HAVE_CLOCK_GETTIME64_VSYSCALL): New. + * sysdeps/unix/sysv/linux/clock_gettime.c: Modified. + (__clock_gettime64): Modified function. + * sysdeps/unix/sysv/linux/dl-vdso-setup.c: Modified. + [PROCINFO_DECL || ! SHARED][HAVE_CLOCK_GETTIME64_VSYSCALL](RELRO): New. + * sysdeps/unix/sysv/linux/dl-vdso-setup.h: Modified. + (setup_vdso_pointers): Modified function. + * sysdeps/unix/sysv/linux/powerpc/sysdep.h: Modified. + [!((__PPC64__) || (__powerpc64__))](HAVE_CLOCK_GETTIME_VSYSCALL): New. + [(__PPC64__) || (__powerpc64__)](HAVE_CLOCK_GETTIME64_VSYSCALL): New. + (HAVE_CLOCK_GETTIME_VSYSCALL): Remove. + * sysdeps/unix/sysv/linux/riscv/sysdep.h: Modified. + [! __ASSEMBLER__](HAVE_CLOCK_GETTIME_VSYSCALL): Remove. + [! __ASSEMBLER__](HAVE_CLOCK_GETTIME64_VSYSCALL): New. + * sysdeps/unix/sysv/linux/s390/sysdep.h: Modified. + (HAVE_CLOCK_GETTIME_VSYSCALL): Remove. + [! __s390x__](HAVE_CLOCK_GETTIME_VSYSCALL): New. + [__s390x__](HAVE_CLOCK_GETTIME64_VSYSCALL): New. + * sysdeps/unix/sysv/linux/sparc/sysdep.h: Modified. + [! __ASSEMBLER__](HAVE_CLOCK_GETTIME_VSYSCALL): Remove. + [! __ASSEMBLER__][! __arch64__](HAVE_CLOCK_GETTIME_VSYSCALL): New. + [! __ASSEMBLER__][__arch64__](HAVE_CLOCK_GETTIME64_VSYSCALL): New. + * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Modified. + [! __ASSEMBLER__](HAVE_CLOCK_GETTIME_VSYSCALL): Remove. + [! __ASSEMBLER__](HAVE_CLOCK_GETTIME64_VSYSCALL): New. + +2020-01-03 Adhemerval Zanella + + COMMIT: 1bdda52fe92fd01b424cd6fbb63e3df96a95015c + elf: Move vDSO setup to rtld (BZ#24967) + + * csu/init-first.c: Modified. + (_init): Modified function. + * elf/dl-support.c: Modified. + [! HAVE_AUX_VECTOR](__rtld_lock_define_initialized_recursive): Modified function. + (__rtld_lock_define_initialized_recursive): Modified function. + (dl-vdso.h): Include file. + (dl-vdso-setup.h): Include file. + (dl-vdso-setup.c): Include file. + * elf/rtld.c: Modified. + (setup-vdso.h): Modified. + (dl_main): Modified function. + (dl-vdso.h): Include file. + (dl-vdso-setup.h): Include file. + * malloc/tst-interpose-aux.c: Modified. + (malloc_internal): Modified function. + (time.h): Include file. + (ts): New. + * sysdeps/generic/dl-vdso-setup.c: New file. + * sysdeps/generic/dl-vdso-setup.h: New file. + * sysdeps/generic/dl-vdso.h: New file. + * sysdeps/generic/ldsodefs.h: Modified. + [SHARED](rtld_global_ro): Modified. + * sysdeps/powerpc/powerpc32/backtrace.c: Modified. + (is_sigtramp_address): Modified function. + (is_sigtramp_address_rt): Modified function. + * sysdeps/powerpc/powerpc64/backtrace.c: Modified. + (is_sigtramp_address): Modified function. + * sysdeps/unix/sysv/linux/aarch64/Makefile: Modified. + * sysdeps/unix/sysv/linux/arm/Makefile: Modified. + * sysdeps/unix/sysv/linux/dl-vdso-setup.c: New file. + * sysdeps/unix/sysv/linux/dl-vdso-setup.h: New file. + * sysdeps/unix/sysv/linux/dl-vdso.c: Delete file. + * sysdeps/unix/sysv/linux/dl-vdso.h: Modified. + (_dl_vdso_vsym): Remove. + (get_vdso_symbol): Remove function. + (get_vdso_mangle_symbol): Remove function. + (dl_vdso_vsym): New function. + * sysdeps/unix/sysv/linux/gettimeofday.c: Modified. + [USE_IFUNC_GETTIMEOFDAY][SHARED](libc-vdso.h): Include file. + * sysdeps/unix/sysv/linux/init-first.c: Delete file. + * sysdeps/unix/sysv/linux/libc-vdso.h: Modified. + [! VDSO_IFUNC_RET](VDSO_IFUNC_RET): Remove. + [HAVE_CLOCK_GETRES_VSYSCALL](int): Remove. + [HAVE_CLOCK_GETTIME64_VSYSCALL](int): Remove. + [HAVE_CLOCK_GETTIME_VSYSCALL](int): Remove. + [HAVE_GETCPU_VSYSCALL](int): Remove. + [HAVE_GETTIMEOFDAY_VSYSCALL](int): Remove. + [HAVE_TIME_VSYSCALL](time_t): Remove. + (VDSO_SYMBOL): Remove. + (VDSO_IFUNC_RET): New. + * sysdeps/unix/sysv/linux/mips/Makefile: Modified. + * sysdeps/unix/sysv/linux/powerpc/Makefile: Modified. + * sysdeps/unix/sysv/linux/powerpc/get_timebase_freq.c: Modified. + (libc-vdso.h): Remove include. + (__get_timebase_freq): Modified function. + (sysdep-vdso.h): Include file. + * sysdeps/unix/sysv/linux/powerpc/init-first.c: Delete file. + * sysdeps/unix/sysv/linux/powerpc/libc-vdso.h: Modified. + [!((__PPC64__) || (__powerpc64__))](VDSO_SYMBOL): Remove. + [!((__PPC64__) || (__powerpc64__))](VDSO_SYMBOL): Remove. + [(__PPC64__) || (__powerpc64__)](VDSO_SYMBOL): Remove. + (_next + + COMMIT: 57013650f7e796428ac2c0b7512757e99327bfc9 + elf: Enable relro for static build + + * elf/dl-support.c: Modified. + [! HAVE_AUX_VECTOR](__rtld_lock_define_initialized_recursive): Modified function. + (__rtld_lock_define_initialized_recursive): Modified function. + +2020-01-03 Adhemerval Zanella + + COMMIT: e760874ee3315ca3a8a2978b5f8e4dba1e336197 + linux: Consolidate time implementation + + * sysdeps/unix/sysv/linux/powerpc/time.c: Modified. + [! SHARED](time): Remove. + [SHARED](dl-vdso.h): Remove. + [SHARED](libc-vdso.h): Remove. + [SHARED](INIT_ARCH): Remove. + [SHARED](libc_ifunc): Remove. + (time.h): Remove include. + (sysdep.h): Remove include. + (sysdep-vdso.h): Remove include. + (time_vsyscall): Remove function. + (USE_IFUNC_TIME): New. + (sysdeps/unix/sysv/linux/time.c): Include file. + * sysdeps/unix/sysv/linux/time.c: New file. + * sysdeps/unix/sysv/linux/x86/time.c: Modified. + [! SHARED](time): Remove. + [SHARED](dl-vdso.h): Remove. + [SHARED](libc-vdso.h): Remove. + [SHARED](INIT_ARCH): Remove. + [SHARED](libc_ifunc): Remove. + (time.h): Remove include. + (sysdep.h): Remove include. + (sysdep-vdso.h): Remove include. + (time_vsyscall): Remove function. + (USE_IFUNC_TIME): New. + (sysdeps/unix/sysv/linux/time.c): Include file. + +2020-01-03 Adhemerval Zanella + + COMMIT: c701bcc6f4b0077e544ac100338343ac6cc4cb8a + linux: Consolidate Linux gettimeofday + + * sysdeps/unix/sysv/linux/aarch64/gettimeofday.c: Modified. + [! SHARED](__gettimeofday): Remove. + [SHARED](dl-vdso.h): Remove. + [SHARED](sysdep-vdso.h): Remove. + [SHARED](INIT_ARCH): Remove. + [SHARED](libc_ifunc): Remove. + (time.h): Remove include. + (sysdep.h): Remove include. + (sysdep-vdso.h): Remove include. + (__gettimeofday_vsyscall): Remove function. + (weak_alias): Remove. + (USE_IFUNC_GETTIMEOFDAY): New. + (sysdeps/unix/sysv/linux/gettimeofday.c): Include file. + * sysdeps/unix/sysv/linux/gettimeofday.c: New file. + * sysdeps/unix/sysv/linux/powerpc/gettimeofday.c: Modified. + [! SHARED](__gettimeofday): Remove. + [SHARED](dl-vdso.h): Remove. + [SHARED](libc-vdso.h): Remove. + [SHARED](INIT_ARCH): Remove. + [SHARED](libc_ifunc): Remove. + (time.h): Remove include. + (sysdep.h): Remove include. + (sysdep-vdso.h): Remove include. + (__gettimeofday_syscall): Remove function. + (weak_alias): Remove. + (USE_IFUNC_GETTIMEOFDAY): New. + (sysdeps/unix/sysv/linux/gettimeofday.c): Include file. + * sysdeps/unix/sysv/linux/x86/gettimeofday.c: Modified. + [! SHARED](__gettimeofday): Remove. + [SHARED](dl-vdso.h): Remove. + [SHARED](libc-vdso.h): Remove. + [SHARED](INIT_ARCH): Remove. + [SHARED](libc_ifunc): Remove. + (time.h): Remove include. + (sysdep.h): Remove include. + (sysdep-vdso.h): Remove include. + (__gettimeofday_syscall): Remove function. + (weak_alias): Remove. + (USE_IFUNC_GETTIMEOFDAY): New. + (sysdeps/unix/sysv/linux/gettimeofday.c): Include file. + +2020-01-03 Adhemerval Zanella + + COMMIT: 7bcaf77574ae654974979c8c6d5f6a170c644a6e + linux: Update mips vDSO symbols + + * sysdeps/unix/sysv/linux/mips/sysdep.h: Modified. + (HAVE_CLOCK_GETRES_VSYSCALL): New. + +2020-01-03 Adhemerval Zanella + + COMMIT: eca6aec6a30f5b21987000ccd0a0ead642592e18 + linux: Update x86 vDSO symbols + + * sysdeps/unix/sysv/linux/i386/sysdep.h: Modified. + [! __ASSEMBLER__](HAVE_TIME_VSYSCALL): New. + [! __ASSEMBLER__](HAVE_CLOCK_GETRES_VSYSCALL): New. + * sysdeps/unix/sysv/linux/x86/time.c: Modified. + (time_vsyscall): Modified function. + * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Modified. + [! __ASSEMBLER__](HAVE_TIME_VSYSCALL): New. + [! __ASSEMBLER__](HAVE_CLOCK_GETRES_VSYSCALL): New. + +2020-01-03 Adhemerval Zanella + + COMMIT: 2822aaf4f7426289a7e29086a4ee430f683e4b55 + Remove vDSO support from make-syscall.sh + + * sysdeps/unix/make-syscalls.sh: Modified. + +2020-01-03 Adhemerval Zanella + + COMMIT: bc36727be9a45d018e9f4bfad6b707eafb009bac + x86: Make x32 use x86 time implementation + + * sysdeps/unix/sysv/linux/x86_64/x32/gettimeofday.c: Delete file. + * sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list: Modified. + +2020-01-03 Adhemerval Zanella + + COMMIT: d0def09ff6bbf1537beec305fdfe96a21174fb31 + linux: Fix vDSO macros build with time64 interfaces + + * sysdeps/unix/sysv/linux/aarch64/gettimeofday.c: Modified. + [HAVE_GETTIMEOFDAY_VSYSCALL](HAVE_VSYSCALL): Remove. + * sysdeps/unix/sysv/linux/clock_getres.c: Modified. + [HAVE_CLOCK_GETRES_VSYSCALL](HAVE_VSYSCALL): Remove. + [__TIMESIZE != 64](__clock_getres): Modified function. + (__clock_getres64): Modified function. + * sysdeps/unix/sysv/linux/clock_gettime.c: Modified. + [HAVE_CLOCK_GETTIME_VSYSCALL](HAVE_VSYSCALL): Remove. + (__clock_gettime64): Modified function. + * sysdeps/unix/sysv/linux/getcpu.c: Modified. + [HAVE_GETCPU_VSYSCALL](HAVE_VSYSCALL): Remove. + (__getcpu): Modified function. + * sysdeps/unix/sysv/linux/powerpc/gettimeofday.c: Modified. + [HAVE_GETTIMEOFDAY_VSYSCALL](HAVE_VSYSCALL): Remove. + * sysdeps/unix/sysv/linux/powerpc/time.c: Modified. + [HAVE_TIME_VSYSCALL](HAVE_VSYSCALL): Remove. + * sysdeps/unix/sysv/linux/sched_getcpu.c: Modified. + [HAVE_GETCPU_VSYSCALL](HAVE_VSYSCALL): Remove. + (sched_getcpu): Modified function. + * sysdeps/unix/sysv/linux/sysdep-vdso.h: Modified. + [! HAVE_VSYSCALL](INLINE_VSYSCALL): Remove. + [! HAVE_VSYSCALL](INTERNAL_VSYSCALL): Remove. + [HAVE_VSYSCALL](libc-vdso.h): Remove. + [HAVE_VSYSCALL](INLINE_VSYSCALL): Remove. + [HAVE_VSYSCALL](INTERNAL_VSYSCALL): Remove. + (libc-vdso.h): Include file. + (INLINE_VSYSCALL): New. + * sysdeps/unix/sysv/linux/x86/gettimeofday.c: Modified. + [HAVE_GETTIMEOFDAY_VSYSCALL](HAVE_VSYSCALL): Remove. + * sysdeps/unix/sysv/linux/x86/time.c: Modified. + [HAVE_TIME_VSYSCALL](HAVE_VSYSCALL): Remove. + (time_vsyscall): Modified function. + +2020-01-03 Adhemerval Zanella + + COMMIT: b03688bfbb072f42970747bc2e6362c24b4b7ee8 + Linux: Fix clock_nanosleep time64 check + + * sysdeps/unix/sysv/linux/clock_nanosleep.c: Modified. + (__clock_nanosleep_time64): Modified function. + +2020-01-03 Wilco Dijkstra + Adhemerval Zanella + + COMMIT: 220622dde5704c95a100c2792a280f18f3deba73 + Add libm_alias_finite for _finite symbols + + * Suppressing diff as too many files differ. + +2020-01-02 Siddhesh Poyarekar + + COMMIT: cf4dfd461725b6dbe6f27fbd16913f2c6c5cf7c5 + Update libc.pot for 2.31 release + + * po/libc.pot: Modified. + +2020-01-02 Rafał Lużyński + + COMMIT: 75ba929987f6950dd008ef0f6270f1b21e9af511 + Multiple locales: Add date_fmt (bug 24054) + + * Suppressing diff as too many files differ. + +2020-01-02 Florian Weimer + + COMMIT: cc47d5c5f53f6d845ac54698ae8929af15662c44 + build-many-glibcs.py: Fix “glibcs i686-gnu --strip” + + * scripts/build-many-glibcs.py: Modified. + +2020-01-02 Florian Weimer + + COMMIT: 0933a4678c7d6afcd21ad1868a6de3a49a065b2e + Linux: Remove pread/pread64, pwrite/pwrite64 kludges from + + * sysdeps/unix/sysv/linux/alpha/sysdep.h: Modified. + [! __NR_pread && __NR_pread64](__NR_pread): Remove. + [! __NR_pwrite && __NR_pwrite64](__NR_pwrite): Remove. + * sysdeps/unix/sysv/linux/ia64/sysdep.h: Modified. + [! __NR_pread && __NR_pread64](__NR_pread): Remove. + [! __NR_pwrite && __NR_pwrite64](__NR_pwrite): Remove. + * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Modified. + [! __NR_pread && __NR_pread64](__NR_pread): Remove. + [! __NR_pwrite && __NR_pwrite64](__NR_pwrite): Remove. + * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Modified. + [! __NR_pread && __NR_pread64](__NR_pread): Remove. + [! __NR_pwrite && __NR_pwrite64](__NR_pwrite): Remove. + +2020-01-02 Florian Weimer + + COMMIT: 07a44d239263beae387e3cb73a5db58c5256d87f + build-many-glibcs.py: Implement update-syscalls command + + * scripts/build-many-glibcs.py: Modified. + +2020-01-02 Florian Weimer + + COMMIT: 857c7d739794981b764471d5b97f8eac16ee011c + build-many-glibcs.py: Introduce glibc build policy classes + + * scripts/build-many-glibcs.py: Modified. + +2020-01-02 Florian Weimer + + COMMIT: 65b6c9b02b49a421648f7fe03e6da49576b5c476 + build-many-glibcs.py: Introduce LinuxHeadersPolicyForBuild + + * scripts/build-many-glibcs.py: Modified. + +2020-01-02 Florian Weimer + + COMMIT: a1bd5f86739926469bbe0054b93305ff5905b070 + Linux: Use system call tables during build + + * NEWS: Modified. + * sysdeps/ia64/start.S: Modified. + * sysdeps/microblaze/backtrace_linux.c: Modified. + (asm/unistd.h): Remove include. + (sys/syscall.h): Include file. + * sysdeps/unix/sysv/linux/alpha/kernel-features.h: Modified. + [! __NR_shmat](__NR_shmat): Remove. + * sysdeps/unix/sysv/linux/alpha/sysdep.h: Modified. + [! __NR_osf_shmat](__NR_osf_shmat): Remove. + [! __NR_semtimedop](__NR_semtimedop): Remove. + (__NR_getpid): Remove. + (__NR_getuid): Remove. + (__NR_getgid): Remove. + (SYS_getpid): Remove. + (SYS_getuid): Remove. + (SYS_getgid): Remove. + (__NR_osf_sigprocmask): Remove. + (__NR_osf_getsysinfo): Remove. + (__NR_osf_setsysinfo): Remove. + * sysdeps/unix/sysv/linux/arm/dl-machine.h: Modified. + [! dl_machine_h](CLEAR_CACHE): Modified. + * sysdeps/unix/sysv/linux/arm/sysdep.h: Modified. + [! __ASSEMBLER__](INTERNAL_SYSCALL_ARM): Remove. + * sysdeps/unix/sysv/linux/arm/tls.h: Modified. + [! __ASSEMBLER__](TLS_INIT_TP): Modified. + * sysdeps/unix/sysv/linux/hppa/clone.S: Modified. + * sysdeps/unix/sysv/linux/ia64/brk.S: Modified. + * sysdeps/unix/sysv/linux/ia64/clone2.S: Modified. + * sysdeps/unix/sysv/linux/ia64/syscall.S: Modified. + * sysdeps/unix/sysv/linux/ia64/sysdep.S: Modified. + * sysdeps/unix/sysv/linux/ia64/sysdep.h: Modified. + [! __ASSEMBLER__][! IA64_USE_NEW_STUB](DO_INLINE_SYSCALL_NCS): Modified. + [__ASSEMBLER__](DO_CALL_VIA_BREAK): Modified. + (asm/break.h): Include file. + * sysdeps/unix/sysv/linux/include/sys/syscall.h: New file. + * sysdeps/unix/sysv/linux/mips/vfork.S: Modified. + * sysdeps/unix/sysv/linux/nios2/sysdep.h: Modified. + (asm/unistd.h): Remove include. + * sysdeps/unix/sysv/linux/riscv/flush-icache.c: Modified. + (sys/syscall.h): Include file. + * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Modified. + * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Modified. + * sysdeps/unix/sysv/linux/sys/syscall.h: Modified. + [! _LIBC](bits/syscall.h): Remove. + (bits/syscall.h): Include file. + +2020-01-02 Florian Weimer + + COMMIT: 4cf0d223052dabb9caed29e1e91e1d61933e14fb + Linux: Add tables with system call numbers + + * sysdeps/unix/sysv/linux/Makefile: Modified. + * sysdeps/unix/sysv/linux/aarch64/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/alpha/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/arm/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/arm/fixup-asm-unistd.h: New file. + * sysdeps/unix/sysv/linux/csky/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/fixup-asm-unistd.h: New file. + * sysdeps/unix/sysv/linux/glibcsyscalls.py: New file. + * sysdeps/unix/sysv/linux/hppa/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/i386/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/ia64/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/m68k/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/microblaze/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/mips/mips32/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/mips/mips64/n32/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/mips/mips64/n64/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/nios2/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/riscv/rv64/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/s390/s390-32/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/s390/s390-64/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/sh/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/sparc/sparc32/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/sparc/sparc64/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/tst-glibcsyscalls.py: New file. + * sysdeps/unix/sysv/linux/tst-mman-consts.py: Modified. + * sysdeps/unix/sysv/linux/update-syscall-lists.py: New file. + * sysdeps/unix/sysv/linux/x86_64/64/arch-syscall.h: New file. + * sysdeps/unix/sysv/linux/x86_64/x32/arch-syscall.h: New file. + +2020-01-01 Joseph Myers + + COMMIT: 5f72f9800b250410cad3abfeeb09469ef12b2438 + Update copyright dates not handled by scripts/update-copyrights. + + * NEWS: Modified. + * catgets/gencat.c: Modified. + (print_version): Modified function. + * csu/version.c: Modified. + (banner): Modified. + * debug/catchsegv.sh: Modified. + * debug/pcprofiledump.c: Modified. + (print_version): Modified function. + * debug/xtrace.sh: Modified. + * elf/ldconfig.c: Modified. + (print_version): Modified function. + * elf/ldd.bash.in: Modified. + * elf/pldd.c: Modified. + (print_version): Modified function. + * elf/sotruss.sh: Modified. + * elf/sprof.c: Modified. + (print_version): Modified function. + * iconv/iconv_prog.c: Modified. + (print_version): Modified function. + * iconv/iconvconfig.c: Modified. + (print_version): Modified function. + * locale/programs/locale.c: Modified. + (print_version): Modified function. + * locale/programs/localedef.c: Modified. + (print_version): Modified function. + * login/programs/pt_chown.c: Modified. + (print_version): Modified function. + * malloc/memusage.sh: Modified. + * malloc/memusagestat.c: Modified. + (print_version): Modified function. + * malloc/mtrace.pl: Modified. + * nptl/version.c: Modified. + (banner): Modified. + * nscd/nscd.c: Modified. + (print_version): Modified function. + * nss/getent.c: Modified. + (print_version): Modified function. + * nss/makedb.c: Modified. + (print_version): Modified function. + * posix/getconf.c: Modified. + (main): Modified function. + * scripts/test-installation.pl: Modified. + * sysdeps/unix/sysv/linux/lddlibc4.c: Modified. + (main): Modified function. + * sysdeps/unix/sysv/linux/powerpc/bits/termios-c_lflag.h: Modified. + +2020-01-01 Joseph Myers + + COMMIT: d614a7539657941a9201c236b2f15afac18e1213 + Update copyright dates with scripts/update-copyrights. + + * Suppressing diff as too many files differ. + +2019-12-30 Adhemerval Zanella + + COMMIT: 09153638cfef9166586b0c21e852ea0d6f15a0fd + alpha: Set wait4 as cancellation entrypoint + + * sysdeps/unix/sysv/linux/alpha/syscalls.list: Modified. + * sysdeps/unix/sysv/linux/alpha/wait4.c: New file. + +2019-12-30 Rafał Lużyński + + COMMIT: d99b500e3da713416ee8bff8f3f9799411c811a2 + lv_LV locale: Correct the time part of d_t_fmt (bug 25324) + + * localedata/locales/lv_LV: Modified. + +2019-12-30 Rafał Lużyński + + COMMIT: 20a740b2b27b6d486985fa9c89011ab301ac16a6 + km_KH locale: Use "%M" instead of "m" in d_t_fmt (bug 25323) + + * localedata/locales/km_KH: Modified. + +2019-12-29 Jeremie Koenig + + COMMIT: 653d74f12abea144219af00400ed1f1ac5dfa79f + hurd: Global signal disposition + + * hurd/Versions: Modified. + * hurd/ctty-input.c: Modified. + (_hurd_ctty_input): Modified function. + * hurd/ctty-output.c: Modified. + (_hurd_ctty_output): Modified function. + * hurd/hurd/signal.h: Modified. + [__USE_EXTERN_INLINES && _LIBC][IS_IN (libc)](_hurd_critical_section_unlock): Modified function. + (_hurd_sigthread): Remove. + (_hurd_global_sigstate): New. + (_hurd_sigstate_set_global_rcv): New function. + (_hurd_sigstate_lock): New function. + (_hurd_sigstate_actions): New function. + (_hurd_sigstate_pending): New function. + (_hurd_sigstate_unlock): New function. + (_hurd_sigstate_delete): New function. + * hurd/hurdexec.c: Modified. + (_hurd_exec_paths): Modified function. + * hurd/hurdmsg.c: Modified. + (get_int): Modified function. + (set_int): Modified function. + * hurd/hurdsig.c: Modified. + (_hurd_sigthread): Remove. + (_hurd_thread_sigstate): Modified function. + (abort_thread): Modified function. + (_hurdsig_abort_rpcs): Modified function. + (post_signal): Modified function. + (pending_signals): Modified function. + (post_pending): Modified function. + (post_all_pending_signals): Modified function. + (_hurd_internal_post_signal): Modified function. + (_S_msg_sig_post): Modified function. + (_S_msg_sig_post_untraced): Modified function. + (_hurdsig_init): Modified function. + (_hurd_global_sigstate): New. + (_hurd_sigstate_delete): New function. + (_hurd_sigstate_set_global_rcv): New function. + (sigstate_is_global_rcv): New function. + (libc_hidden_def): New. + (_hurd_sigstate_lock): New function. + (_hurd_sigstate_unlock): New function. + (libc_hidden_def): New. + (_hurd_sigstate_pending): New function. + (sigstate_clear_pending): New function. + (libc_hidden_def): New. + (libc_hidden_def): New. + (_hurd_sigstate_actions): New function. + (libc_hidden_def): New. + * sysdeps/hurd/include/hurd/signal.h: Modified. + [! _ISOMAC](libc_hidden_proto): New. + [! _ISOMAC](libc_hidden_proto): New. + [! _ISOMAC](libc_hidden_proto): New. + [! _ISOMAC](libc_hidden_proto): New. + [! _ISOMAC](libc_hidden_proto): New. + * sysdeps/mach/hurd/Makefile: Modified. + * sysdeps/mach/hurd/fork.c: Modified. + (__fork): Modified function. + * sysdeps/mach/hurd/htl/pt-sigstate-destroy.c: Modified. + (__pthread_sigstate_destroy): Modified function. + (hurd/signal.h): Include file. + * sysdeps/mach/hurd/htl/pt-sigstate-init.c: Modified. + (__pthread_sigstate_init): Modified function. + * sysdeps/mach/hurd/htl/pt-sigstate.c: Modified. + (__pthread_sigstate): Modified function. + (hurd/msg.h): Include file. + * sysdeps/mach/hurd/i386/sigreturn.c: Modified. + (__sigreturn2): Modified function. + (__sigreturn): Modified function. + * sysdeps/mach/hurd/i386/trampoline.c: Modified. + (_hurd_setup_sighandler): Modified function. + * sysdeps/mach/hurd/sigaction.c: Modified. + (__sigaction): Modified function. + * sysdeps/mach/hurd/sigpending.c: Modified. + (sigpending): Modified function. + * sysdeps/mach/hurd/sigprocmask.c: Modified. + (__sigprocmask): Modified function. + * sysdeps/mach/hurd/sigsuspend.c: Modified. + (__sigsuspend): Modified function. + * sysdeps/mach/hurd/sigwait.c: Modified. + (__sigwait): Modified function. + * sysdeps/mach/hurd/spawni.c: Modified. + (__spawni): Modified function. + +2019-12-29 Samuel Thibault + + COMMIT: eb87a46c5630580d9556907dc8a61b298b462919 + hurd sendmsg: Fix warning on calling CMSG_*HDR + + * sysdeps/mach/hurd/sendmsg.c: Modified. + (__libc_sendmsg): Modified function. + +2019-12-29 Jeremie Koenig + + COMMIT: 4288c548da30c5b70d3b531e425d271cf12c51d3 + hurd: Signal code refactoring + + * hurd/hurdsig.c: Modified. + (_hurd_internal_post_signal): Modified function. + (wake_sigsuspend): New function. + (post_signal): New function. + (pending_signals): New function. + (post_pending): New function. + (post_all_pending_signals): New function. + +2019-12-29 Thomas Schwinge + + COMMIT: a678c13b8f9fa67c6cffe6ecf4ba1d5e53479e1b + hurd: Add getcontext, makecontext, setcontext, swapcontext + + * sysdeps/mach/hurd/i386/Makefile: Modified. + * sysdeps/mach/hurd/i386/getcontext.S: New file. + * sysdeps/mach/hurd/i386/makecontext.S: New file. + * sysdeps/mach/hurd/i386/setcontext.S: New file. + * sysdeps/mach/hurd/i386/swapcontext.S: New file. + * sysdeps/mach/hurd/i386/ucontext_i.sym: New file. + +2019-12-29 Emilio Pozuelo Monfort + + COMMIT: 344e755248ce02c0f8d095d11cc49e340703d926 + hurd: Support sending file descriptors over Unix sockets + + * sysdeps/mach/hurd/recvmsg.c: Modified. + (__libc_recvmsg): Modified function. + * sysdeps/mach/hurd/sendmsg.c: Modified. + (__libc_sendmsg): Modified function. + +2019-12-27 Gabriel F. T. Gomes + + COMMIT: 9ae967bf45aaa190687ae219a589e0c542669a51 + ldbl-128ibm-compat: Do not mix -mabi=*longdouble and -mlong-double-128 + + * sysdeps/ieee754/ldbl-128ibm-compat/Makefile: Modified. + +2019-12-27 Tulio Magno Quites Machado Filho + + COMMIT: 5d73c96f64e66732bcf1598f2832c9837075f13e + ldbl-128ibm-compat: Compiler flags for stdio functions + + * sysdeps/ieee754/ldbl-128ibm-compat/Makefile: Modified. + +2019-12-27 Tulio Magno Quites Machado Filho + Gabriel F. T. Gomes + + COMMIT: 1ef9b6e0bf1268050e74087c4f6bd056263a28c7 + Do not redirect calls to __GI_* symbols, when redirecting to *ieee128 + + * bits/long-double.h: Modified. + (__NO_LONG_DOUBLE_MATH): Remove. + [! __NO_LONG_DOUBLE_MATH](__NO_LONG_DOUBLE_MATH): New. + (__LONG_DOUBLE_USES_FLOAT128): New. + * include/stdio.h: Modified. + [! _ISOMAC][!__GLIBC_USE (DEPRECATED_SCANF)](sscanf): Remove. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Remove. + [! _ISOMAC](libc_hidden_proto): Remove. + [! _ISOMAC](libc_hidden_proto): Remove. + [! _ISOMAC](libc_hidden_proto): Remove. + [! _ISOMAC](libc_hidden_proto): Remove. + [! _ISOMAC](libc_hidden_proto): Remove. + [! _ISOMAC][!__GLIBC_USE (DEPRECATED_SCANF) && __LONG_DOUBLE_USES_FLOAT128 == 0](sscanf): New. + [! _ISOMAC][__LONG_DOUBLE_USES_FLOAT128 == 0](libc_hidden_proto): New. + [! _ISOMAC][__LONG_DOUBLE_USES_FLOAT128 == 0](libc_hidden_proto): New. + [! _ISOMAC][__LONG_DOUBLE_USES_FLOAT128 == 0](libc_hidden_proto): New. + [! _ISOMAC][__LONG_DOUBLE_USES_FLOAT128 == 0](libc_hidden_proto): New. + [! _ISOMAC][__LONG_DOUBLE_USES_FLOAT128 == 0](libc_hidden_proto): New. + [! _ISOMAC][__LONG_DOUBLE_USES_FLOAT128 == 0](libc_hidden_proto): New. + * include/stdlib.h: Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Remove. + [! _ISOMAC][__LONG_DOUBLE_USES_FLOAT128 == 0](libc_hidden_proto): New. + [! _ISOMAC](bits/floatn.h): Include file. + * sysdeps/ieee754/ldbl-128/bits/long-double.h: Modified. + (__LONG_DOUBLE_USES_FLOAT128): New. + * sysdeps/ieee754/ldbl-128ibm-compat/bits/long-double.h: New file. + * sysdeps/ieee754/ldbl-96/bits/long-double.h: Modified. + (__LONG_DOUBLE_USES_FLOAT128): New. + * sysdeps/ieee754/ldbl-opt/bits/long-double.h: Modified. + [! __LONG_DOUBLE_128__](__NO_LONG_DOUBLE_MATH): Remove. + (__LONG_DOUBLE_MATH_OPTIONAL): Remove. + [! __NO_LONG_DOUBLE_MATH][! __LONG_DOUBLE_128__](__NO_LONG_DOUBLE_MATH): New. + [! __NO_LONG_DOUBLE_MATH](__LONG_DOUBLE_MATH_OPTIONAL): New. + (__LONG_DOUBLE_USES_FLOAT128): New. + * sysdeps/mips/ieee754/bits/long-double.h: Modified. + (__LONG_DOUBLE_USES_FLOAT128): New. + * sysdeps/unix/sysv/linux/sparc/sparc32/bits/long-double.h: Modified. + (__LONG_DOUBLE_USES_FLOAT128): New. + * sysdeps/unix/sysv/linux/sparc/sparc64/bits/long-double.h: Modified. + (__LONG_DOUBLE_USES_FLOAT128): New. + +2019-12-27 Xuelei Zhang + + COMMIT: 863d775c481704baaa41855fc93e5a1ca2dc6bf6 + aarch64: add default memcpy version for kunpeng920 + + * sysdeps/aarch64/multiarch/memcpy.c: Modified. + (libc_ifunc): Modified. + +2019-12-27 Xuelei Zhang + + COMMIT: 10df95cdaf049e77fa84a71359e210e74901057d + aarch64: ifunc rename for kunpeng + + * sysdeps/aarch64/multiarch/memset.c: Modified. + * sysdeps/aarch64/multiarch/strlen.c: Modified. + (libc_ifunc): Modified. + * sysdeps/unix/sysv/linux/aarch64/cpu-features.c: Modified. + * sysdeps/unix/sysv/linux/aarch64/cpu-features.h: Modified. + (IS_KUNPENG): Remove. + (IS_KUNPENG920): New. + +2019-12-27 Xuelei Zhang + + COMMIT: 64297d49b37f637a82faedd16bf8860e0ab31606 + aarch64: Modify error-shown comments for strcpy + + * sysdeps/aarch64/strcpy.S: Modified. + +2019-12-27 Adhemerval Zanella + + COMMIT: dc8619947730bbff50fdc3f05761af71c46b641b + linux: Consolidate sigprocmask + + * sysdeps/unix/sysv/linux/alpha/sigprocmask.c: Delete file. + * sysdeps/unix/sysv/linux/ia64/sigprocmask.c: Delete file. + * sysdeps/unix/sysv/linux/s390/s390-64/sigprocmask.c: Delete file. + * sysdeps/unix/sysv/linux/sigprocmask.c: Modified. + (errno.h): Remove include. + (string.h): Remove include. + (unistd.h): Remove include. + (sysdep.h): Remove include. + (sys/syscall.h): Remove include. + (__sigprocmask): Modified function. + * sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c: Delete file. + * sysdeps/unix/sysv/linux/x86_64/sigprocmask.c: Delete file. + +2019-12-27 Adhemerval Zanella + + COMMIT: 58bd592536cbf491ff6f89b73b5c95beb4859e42 + Fix return code for __libc_signal_* functions + + * sysdeps/generic/internal-signals.h: Modified. + (__libc_signal_block_all): Modified function. + (__libc_signal_block_app): Modified function. + (__libc_signal_restore_set): Modified function. + * sysdeps/unix/sysv/linux/internal-signals.h: Modified. + (__libc_signal_block_all): Modified function. + (__libc_signal_block_app): Modified function. + (__libc_signal_restore_set): Modified function. + +2019-12-26 Adhemerval Zanella + + COMMIT: 11519fd0c908df2dad50f36a48eb4d0d12ea83a8 + nptl: Remove duplicate internal __SIZEOF_PTHREAD_MUTEX_T (BZ#25241) + + * sysdeps/x86/nptl/bits/pthreadtypes-arch.h: Modified. + +2019-12-23 Rafał Lużyński + + COMMIT: b8c210bcc74840d24c61d39bde15bea9daf3e271 + mnw_MM, my_MM, and shn_MM locales: Do not use %Op + + * localedata/locales/mnw_MM: Modified. + * localedata/locales/my_MM: Modified. + * localedata/locales/shn_MM: Modified. + +2019-12-23 Gabriel F. T. Gomes + + COMMIT: f8cd1020817fd6b69446b4308b496de999934ef8 + Avoid compat symbols for totalorder in powerpc64le IEEE long double + + * sysdeps/ieee754/ldbl-128/s_totalorderl.c: Modified. + [SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31)](libm_alias_float128_other_r_ldbl): New. + * sysdeps/ieee754/ldbl-128/s_totalordermagl.c: Modified. + [SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31)](libm_alias_float128_other_r_ldbl): New. + +2019-12-23 Gabriel F. T. Gomes + + COMMIT: 3021e781783d6fe12de4697b0d98957bc911cad3 + ldbl-128ibm-compat: Add *cvt functions + + * misc/efgcvt-template.c: Modified. + (__GCVT): Modified function. + [! SPRINTF](SPRINTF): New. + * misc/efgcvt_r-template.c: Modified. + (__FCVT_R): Modified function. + [! SNPRINTF](SNPRINTF): New. + * sysdeps/ieee754/ldbl-128ibm-compat/Makefile: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/Versions: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-qefgcvt.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-qefgcvt_r.c: New file. + +2019-12-23 Gabriel F. T. Gomes + + COMMIT: dce425341171ec5784c87165e23883630971bd97 + Refactor *cvt functions implementation (2/2) + + * misc/efgcvt-template.c: Modified. + (__APPEND): Remove. + (__APPEND2): Remove. + (__APPEND): Remove function. + (__APPEND): Remove function. + (__APPEND): Remove function. + (__FCVT): New function. + (__ECVT): New function. + (__GCVT): New function. + * misc/efgcvt.c: Modified. + [!(LONG_DOUBLE_COMPAT (libc, GLIBC_2_0))](cvt_symbol): Modified. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)](cvt_symbol): Modified. + (cvt_symbol): Modified. + (cvt_symbol): Modified. + (cvt_symbol): Modified. + (ECVT): New. + (FCVT): New. + (GCVT): New. + (__ECVT): New. + (__FCVT): New. + (__GCVT): New. + (__ECVT_R): New. + (__FCVT_R): New. + * misc/efgcvt_r-template.c: Modified. + (__APPEND): Remove. + (__APPEND2): Remove. + (__APPEND): Remove function. + (__APPEND): Remove function. + (__FCVT_R): New function. + (__ECVT_R): New function. + * misc/efgcvt_r.c: Modified. + [!(LONG_DOUBLE_COMPAT (libc, GLIBC_2_0))](cvt_symbol): Modified. + [!(LONG_DOUBLE_COMPAT (libc, GLIBC_2_0))](cvt_symbol_1): Remove. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)](cvt_symbol): Modified. + (cvt_symbol): Modified. + (cvt_symbol): Modified. + (ECVT_R): New. + (FCVT_R): New. + (__ECVT_R): New. + (__FCVT_R): New. + * misc/qefgcvt.c: Modified. + [!(LONG_DOUBLE_COMPAT (libc, GLIBC_2_0))](cvt_symbol): Modified. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)](cvt_symbol): Modified. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)](cvt_symbol_1): Remove. + (cvt_symbol): Modified. + (cvt_symbol): Modified. + (cvt_symbol): Modified. + (ECVT): New. + (FCVT): New. + (GCVT): New. + (__ECVT): New. + (__FCVT): New. + (__GCVT): New. + (__ECVT_R): New. + (__FCVT_R): New. + * misc/qefgcvt_r.c: Modified. + [!(LONG_DOUBLE_COMPAT (libc, GLIBC_2_0))](cvt_symbol): Modified. + [!(LONG_DOUBLE_COMPAT (libc, GLIBC_2_0))](cvt_symbol_1): Remove. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)](cvt_symbol): Modified. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)](cvt_symbol_1): Remove. + (cvt_symbol): Modified. + (cvt_symbol): Modified. + (ECVT_R): New. + (FCVT_R): New. + (__ECVT_R): New. + (__FCVT_R): New. + +2019-12-23 Gabriel F. T. Gomes + + COMMIT: e18a305777adf60c2378ac864a350319269a29fa + Refactor *cvt functions implementation (1/2) + + * misc/efgcvt-dbl-macros.h: New file. + * misc/efgcvt-ldbl-macros.h: New file. + * misc/efgcvt-template.c: New file. + * misc/efgcvt.c: Modified. + [! FLOAT_TYPE][DBL_MANT_DIG != 56](NDIGIT_MAX must be precomputed"): Remove. + [! FLOAT_TYPE][DBL_MANT_DIG != 56](NDIGIT_MAX): Remove. + [! FLOAT_TYPE][DBL_MANT_DIG == 24](NDIGIT_MAX): Remove. + [! FLOAT_TYPE][DBL_MANT_DIG == 53](NDIGIT_MAX): Remove. + [! FLOAT_TYPE][DBL_MANT_DIG == 56](NDIGIT_MAX): Remove. + [! FLOAT_TYPE](FLOAT_TYPE): Remove. + [! FLOAT_TYPE](FUNC_PREFIX): Remove. + [! FLOAT_TYPE](FLOAT_FMT_FLAG): Remove. + [! FLOAT_TYPE](MAXDIG): Remove. + [! FLOAT_TYPE](FCVT_MAXDIG): Remove. + [FLOAT_TYPE](LONG_DOUBLE_CVT): Remove. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)][! LONG_DOUBLE_CVT](cvt_symbol): Remove. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)][! LONG_DOUBLE_CVT](cvt_symbol_1): Remove. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)][LONG_DOUBLE_CVT](cvt_symbol): Remove. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)][LONG_DOUBLE_CVT](cvt_symbol_1): Remove. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)](cvt_symbol): New. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)](cvt_symbol_1): New. + (math.h): Remove include. + (stdio.h): Remove include. + (stdlib.h): Remove include. + (sys/param.h): Remove include. + (float.h): Remove include. + (libc-lock.h): Remove include. + (math_ldbl_opt.h): Remove include. + (APPEND): Remove. + (APPEND2): Remove. + (__APPEND): Remove. + (__APPEND2): Remove. + (FCVT_BUFFER): Remove. + (FCVT_BUFPTR): Remove. + (ECVT_BUFFER): Remove. + (FCVT_BUFFER): Remove. + (ECVT_BUFFER): Remove. + (libc_freeres_ptr): Remove. + (__APPEND): Remove function. + (__APPEND): Remove function. + (__APPEND): Remove function. + (efgcvt-dbl-macros.h): Include file. + (efgcvt-template.c): Include file. + * misc/efgcvt_r-template.c: New file. + * misc/efgcvt_r.c: Modified. + [! FLOAT_TYPE][!(DBL_MIN_10_EXP == -4931)](FLOAT_MIN_10_NORM must be precomputed"): Remove. + [! FLOAT_TYPE][!(DBL_MIN_10_EXP == -4931)](FLOAT_MIN_10_NORM): Remove. + [! FLOAT_TYPE][DBL_MANT_DIG != 56](NDIGIT_MAX must be precomputed"): Remove. + [! FLOAT_TYPE][DBL_MANT_DIG != 56](NDIGIT_MAX): Remove. + [! FLOAT_TYPE][DBL_MANT_DIG == 24](NDIGIT_MAX): Remove. + [! FLOAT_TYPE][DBL_MANT_DIG == 53](NDIGIT_MAX): Remove. + [! FLOAT_TYPE][DBL_MANT_DIG == 56](NDIGIT_MAX): Remove. + [! FLOAT_TYPE][DBL_MIN_10_EXP == -307](FLOAT_MIN_10_NORM): Remove. + [! FLOAT_TYPE][DBL_MIN_10_EXP == -37](FLOAT_MIN_10_NORM): Remove. + [! FLOAT_TYPE][DBL_MIN_10_EXP == -4931](FLOAT_MIN_10_NORM): Remove. + [! FLOAT_TYPE](FLOAT_TYPE): Remove. + [! FLOAT_TYPE](FUNC_PREFIX): Remove. + [! FLOAT_TYPE](FLOAT_FMT_FLAG): Remove. + [! FLOAT_TYPE](FLOAT_NAME_EXT): Remove. + [! FLOAT_TYPE](FLOAT_MIN_10_EXP): Remove. + [FLOAT_TYPE](LONG_DOUBLE_CVT): Remove. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)][! LONG_DOUBLE_CVT](cvt_symbol): Remove. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)][! LONG_DOUBLE_CVT](cvt_symbol_1): Remove. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)][LONG_DOUBLE_CVT](cvt_symbol): Remove. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)][LONG_DOUBLE_CVT](cvt_symbol_1): Remove. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)](cvt_symbol): New. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)](cvt_symbol_1): New. + (errno.h): Remove include. + (float.h): Remove include. + (stdio.h): Remove include. + (string.h): Remove include. + (ctype.h): Remove include. + (math.h): Remove include. + (stdlib.h): Remove include. + (sys/param.h): Remove include. + (math_ldbl_opt.h): Remove include. + (APPEND): Remove. + (APPEND2): Remove. + (__APPEND): Remove. + (__APPEND2): Remove. + (FLOOR): Remove. + (FABS): Remove. + (LOG10): Remove. + (EXP): Remove. + (__APPEND): Remove function. + (__APPEND): Remove function. + (efgcvt-dbl-macros.h): Include file. + (efgcvt_r-template.c): Include file. + * misc/qefgcvt.c: Modified. + [LDBL_MANT_DIG != 56](NDIGIT_MAX must be precomputed"): Remove. + [LDBL_MANT_DIG != 56](NDIGIT_MAX): Remove. + [LDBL_MANT_DIG == 106](NDIGIT_MAX): Remove. + [LDBL_MANT_DIG == 113](NDIGIT_MAX): Remove. + [LDBL_MANT_DIG == 53](NDIGIT_MAX): Remove. + [LDBL_MANT_DIG == 56](NDIGIT_MAX): Remove. + [LDBL_MANT_DIG == 64](NDIGIT_MAX): Remove. + (float.h): Remove include. + (FLOAT_TYPE): Remove. + (FUNC_PREFIX): Remove. + (FLOAT_FMT_FLAG): Remove. + (MAXDIG): Remove. + (FCVT_MAXDIG): Remove. + (efgcvt.c): Remove include. + [!(LONG_DOUBLE_COMPAT (libc, GLIBC_2_0))](cvt_symbol): New. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)](cvt_symbol): New. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)](cvt_symbol_1): New. + (efgcvt-ldbl-macros.h): Include file. + (efgcvt-template.c): Include file. + (cvt_symbol): New function. + (cvt_symbol): New function. + (cvt_symbol): New function. + * misc/qefgcvt_r.c: Modified. + [!(LDBL_MIN_10_EXP == -4931)](FLOAT_MIN_10_NORM must be precomputed"): Remove. + [!(LDBL_MIN_10_EXP == -4931)](FLOAT_MIN_10_NORM): Remove. + [LDBL_MANT_DIG != 56](NDIGIT_MAX must be precomputed"): Remove. + [LDBL_MANT_DIG != 56](NDIGIT_MAX): Remove. + [LDBL_MANT_DIG == 106](NDIGIT_MAX): Remove. + [LDBL_MANT_DIG == 113](NDIGIT_MAX): Remove. + [LDBL_MANT_DIG == 53](NDIGIT_MAX): Remove. + [LDBL_MANT_DIG == 56](NDIGIT_MAX): Remove. + [LDBL_MANT_DIG == 64](NDIGIT_MAX): Remove. + [LDBL_MIN_10_EXP == -291](FLOAT_MIN_10_NORM): Remove. + [LDBL_MIN_10_EXP == -307](FLOAT_MIN_10_NORM): Remove. + [LDBL_MIN_10_EXP == -37](FLOAT_MIN_10_NORM): Remove. + [LDBL_MIN_10_EXP == -4931](FLOAT_MIN_10_NORM): Remove. + (float.h): Remove include. + (FLOAT_TYPE): Remove. + (FUNC_PREFIX): Remove. + (FLOAT_FMT_FLAG): Remove. + (FLOAT_NAME_EXT): Remove. + (FLOAT_MIN_10_EXP): Remove. + (efgcvt_r.c): Remove include. + [!(LONG_DOUBLE_COMPAT (libc, GLIBC_2_0))](cvt_symbol): New. + [!(LONG_DOUBLE_COMPAT (libc, GLIBC_2_0))](cvt_symbol_1): New. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)](cvt_symbol): New. + [LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)](cvt_symbol_1): New. + (efgcvt-ldbl-macros.h): Include file. + (efgcvt_r-template.c): Include file. + (cvt_symbol): New function. + (cvt_symbol): New function. + +2019-12-20 Adhemerval Zanella + + COMMIT: 57e687c6d459edba77efe360014d4adec97d1a5c + Add exception-based flags for wait4 + + * posix/Makefile: Modified. + +2019-12-19 Xuelei Zhang + + COMMIT: 525de033a9d19bc79ce353745d14927a793dd4e8 + aarch64: Optimized memset for Kunpeng processor. + + * sysdeps/aarch64/multiarch/Makefile: Modified. + * sysdeps/aarch64/multiarch/ifunc-impl-list.c: Modified. + (__libc_ifunc_impl_list): Modified function. + * sysdeps/aarch64/multiarch/memset.c: Modified. + (__memset_kunpeng): New. + * sysdeps/aarch64/multiarch/memset_kunpeng.S: New file. + +2019-12-19 Xuelei Zhang + + COMMIT: c2150769d015dca1805334af7743829f1e4c0b6a + aarch64: Optimized strlen for strlen_asimd + + * sysdeps/aarch64/multiarch/strlen.c: Modified. + (libc_ifunc): Modified. + * sysdeps/aarch64/multiarch/strlen_asimd.S: Modified. + +2019-12-19 Xuelei Zhang + + COMMIT: 0db8e7b36665fa90c53161742dedab21d786924c + aarch64: Add Huawei Kunpeng to tunable cpu list + + * manual/tunables.texi: Modified. + * sysdeps/unix/sysv/linux/aarch64/cpu-features.c: Modified. + * sysdeps/unix/sysv/linux/aarch64/cpu-features.h: Modified. + (IS_KUNPENG): New. + +2019-12-19 Xuelei Zhang + + COMMIT: a7611806d5f4163656a2f5d21d349b5e7c4170e0 + aarch64: Optimized implementation of memrchr + + * sysdeps/aarch64/memrchr.S: New file. + +2019-12-19 Xuelei Zhang + + COMMIT: 2911cb68ed3d6c515ad1979237e74e1fefab3674 + aarch64: Optimized implementation of strnlen + + * sysdeps/aarch64/strnlen.S: Modified. + +2019-12-19 Xuelei Zhang + + COMMIT: 0237b61526e716fa9597f521643908a4fda3b46a + aarch64: Optimized implementation of strcpy + + * sysdeps/aarch64/strcpy.S: Modified. + +2019-12-19 Xuelei Zhang + + COMMIT: 233efd433d847e69480fe587c4c29a32fe554174 + aarch64: Optimized implementation of memcmp + + * sysdeps/aarch64/memcmp.S: Modified. + +2019-12-19 Adhemerval Zanella + + COMMIT: 442d9c9c677804287a54b10d5fa5e58a9cdd338d + Consolidate wait3 implementations + + * posix/wait3.c: Modified. + (errno.h): Remove include. + (__wait3): Modified function. + (weak_alias): New. + * sysdeps/posix/wait3.c: Delete file. + * sysdeps/unix/bsd/wait3.c: Delete file. + * sysdeps/unix/sysv/linux/wait3.c: Delete file. + +2019-12-19 Adhemerval Zanella + + COMMIT: 848791557bc4dbf783b03f2b8af77f71c909ed57 + Implement waitpid in terms of wait4 + + * include/sys/wait.h: Modified. + [! _ISOMAC](libc_hidden_proto): New function. + * posix/wait4.c: Modified. + * posix/waitpid.c: Modified. + (sys/types.h): Remove include. + (__waitpid): Modified function. + (stdlib.h): Include file. + * sysdeps/mach/hurd/wait4.c: Modified. + (libc_hidden_def): New. + * sysdeps/unix/bsd/waitpid.c: Delete file. + * sysdeps/unix/sysv/linux/wait4.c: Modified. + (libc_hidden_def): New function. + * sysdeps/unix/sysv/linux/waitpid.c: Delete file. + +2019-12-19 Adhemerval Zanella + Alistair Francis + + COMMIT: 9b2cf9482a9397c4711c9e7f42f8d718b6306bdc + linux: Use waitid on wait4 if __NR_wait4 is not defined + + * sysdeps/unix/sysv/linux/kernel-features.h: Modified. + [__LINUX_KERNEL_VERSION >= 0x050400](__ASSUME_WAITID_PID0_P_PGID): New. + * sysdeps/unix/sysv/linux/syscalls.list: Modified. + * sysdeps/unix/sysv/linux/wait4.c: New file. + +2019-12-19 Adhemerval Zanella + + COMMIT: c5cbdacb8acec54e140c879393c8c7dd658c3488 + Implement wait in terms of waitpid + + * posix/wait.c: Modified. + (errno.h): Remove include. + (__wait): Modified function. + (weak_alias): New. + * sysdeps/posix/wait.c: Delete file. + * sysdeps/unix/bsd/wait.c: Delete file. + * sysdeps/unix/sysv/linux/wait.c: Delete file. + +2019-12-19 Adhemerval Zanella + + COMMIT: b633cdff2cd7259baea4d115cce0a818542f6f98 + nptl: Move waitpid implementation to libc + + * nptl/Makefile: Modified. + * nptl/Versions: Modified. + * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/alpha/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/arm/be/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/arm/le/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/csky/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/hppa/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/i386/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/ia64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/nios2/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sh/be/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sh/le/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist: Modified. + +2019-12-19 Adhemerval Zanella + + COMMIT: c97f9a5979e6c8dd4d005a01e5b1254ae4007362 + nptl: Move wait implementation to libc + + * nptl/Makefile: Modified. + * nptl/Versions: Modified. + * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/alpha/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/arm/be/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/arm/le/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/csky/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/hppa/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/i386/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/ia64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/nios2/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sh/be/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sh/le/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist: Modified. + +2019-12-19 Adhemerval Zanella + + COMMIT: 478f70780f28a270205ddbe8cb6ec29cb41d586e + Remove __waitpid_nocancel + + * libio/iopopen.c: Modified. + (_IO_new_proc_close): Modified function. + * sysdeps/generic/not-cancel.h: Modified. + (__waitpid_nocancel): Remove. + * sysdeps/posix/system.c: Modified. + [(_LIBC_REENTRANT) && (SIGCANCEL)](cancel_handler): Modified function. + * sysdeps/unix/sysv/linux/Makefile: Modified. + * sysdeps/unix/sysv/linux/not-cancel.h: Modified. + [IS_IN (libc) || IS_IN (rtld)](hidden_proto): Modified. + [IS_IN (libc) || IS_IN (rtld)](hidden_proto): Remove. + (__waitpid_nocancel): Remove. + * sysdeps/unix/sysv/linux/waitpid_nocancel.c: Delete file. + +2019-12-19 Florian Weimer + + COMMIT: 6a265e577e8d7c9c950a793139df19b2d050ce5b + Fix test isolation for elf/tst-ifunc-fault-lazy, elf/tst-ifunc-fault-bindnow + + * elf/Makefile: Modified. + +2019-12-19 Adhemerval Zanella + + COMMIT: 1b132d55e2d3a4eb421c0f77f63b67b5022c22e3 + Fix __libc_signal_block_all on sparc64 + + * sysdeps/unix/sysv/linux/internal-signals.h: Modified. + (SIGALL_SET): Remove. + (__libc_signal_block_all): Modified function. + (__libc_signal_block_app): Modified function. + (limits.h): Include file. + (sigall_set): New. + +2019-12-19 Adhemerval Zanella + + COMMIT: 0331bffe1be698d32c3b4a93b6e7f02d1f1b47fb + powerpc: Do not run IFUNC resolvers for LD_DEBUG=unused [BZ #24214] + + * sysdeps/powerpc/powerpc32/dl-machine.c: Modified. + (__process_machine_rela): Modified function. + * sysdeps/powerpc/powerpc32/dl-machine.h: Modified. + [RESOLVE_MAP](__process_machine_rela): Modified. + [RESOLVE_MAP](elf_machine_rela): Modified function. + +2019-12-18 Florian Weimer + + COMMIT: 3dcad8158f43d71d5b8f6f317f82952ddf3468f3 + hurd: Do not make sigprocmask available in ld.so + + * sysdeps/mach/hurd/Versions: Modified. + * sysdeps/mach/hurd/dl-sysdep.c: Modified. + (check_no_hidden): Remove. + (__sigprocmask): Remove function. + * sysdeps/mach/hurd/i386/localplt.data: Modified. + +2019-12-18 Florian Weimer + + COMMIT: 3aec0c3912859bcf0432c700a8fbdcb23b45545f + build-many-glibcs.py: Do not build C++ PCHs by default + + * scripts/build-many-glibcs.py: Modified. + +2019-12-17 James Clarke + + COMMIT: a45244ce127763872ff0b5743fb4ac8299ee9b28 + hurd: Make getrandom honour GRND_NONBLOCK + + * sysdeps/mach/hurd/getrandom.c: Modified. + (__getrandom): Modified function. + +2019-12-16 DJ Delorie + + COMMIT: a059f9505bbef1f22c6f52798a74184632929145 + tunables: report sbrk() failure + + * elf/dl-tunables.c: Modified. + [TUNABLES_FRONTEND == TUNABLES_FRONTEND_valstring](tunables_strdup): Modified function. + +2019-12-16 Dragan Mladjenovic + + COMMIT: a2e487ce1c59d19345d9ecacc58de79febd869e4 + build-many-glibcs.py: Add mipsisa64r6el-linux-gnu target + + * scripts/build-many-glibcs.py: Modified. + +2019-12-16 Dragan Mladjenovic + + COMMIT: 020b2a97bb15f807c0482f0faee2184ed05bcad8 + mips: Do not include hi and lo in __SYSCALL_CLOBBERS for R6 + + * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h: Modified. + [! __ASSEMBLER__](__SYSCALL_CLOBBERS): Remove. + [! __ASSEMBLER__](PTR_MANGLE): Remove. + [! __ASSEMBLER__](PTR_DEMANGLE): Remove. + [! __ASSEMBLER__][!(__mips_isa_rev >= 6)](__SYSCALL_CLOBBERS): New. + [! __ASSEMBLER__][!(__mips_isa_rev >= 6)](PTR_MANGLE): New. + [! __ASSEMBLER__][!(__mips_isa_rev >= 6)](PTR_DEMANGLE): New. + [! __ASSEMBLER__][__mips_isa_rev >= 6](__SYSCALL_CLOBBERS): New. + * sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h: Modified. + [! __ASSEMBLER__](__SYSCALL_CLOBBERS): Remove. + [! __ASSEMBLER__][!(__mips_isa_rev >= 6)](__SYSCALL_CLOBBERS): New. + [! __ASSEMBLER__][__mips_isa_rev >= 6](__SYSCALL_CLOBBERS): New. + * sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h: Modified. + [! __ASSEMBLER__](__SYSCALL_CLOBBERS): Remove. + [! __ASSEMBLER__][!(__mips_isa_rev >= 6)](__SYSCALL_CLOBBERS): New. + [! __ASSEMBLER__][__mips_isa_rev >= 6](__SYSCALL_CLOBBERS): New. + +2019-12-13 Gabriel F. T. Gomes + + COMMIT: f1a0eb5b6762b315517469da47735c51bde6f4ad + ldbl-128ibm-compat: Add ISO C99 versions of scanf functions + + * sysdeps/ieee754/ldbl-128ibm-compat/Makefile: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/Versions: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_fwscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_scanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_sscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_swscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vfwscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vsscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vswscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_vwscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-isoc99_wscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-scanf-ibm128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-scanf-ieee128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-wscanf-ibm128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-isoc99-wscanf-ieee128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat-template.c: Modified. + (CLEAR): Remove. + (CLEAR_VALUE): Modified. + (CHECK): Remove. + (CHECK_VALUE): Modified. + (do_test_call): Modified function. + (do_test): Modified function. + (CLEAR_VARGS): New. + (CHECK_VARGS): New. + * sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.c: Modified. + (L): Modified. + (Lx): New. + * sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wscanf-ldbl-compat.c: Modified. + (L): Modified. + (Lx): New. + +2019-12-13 Gabriel F. T. Gomes + Zack Weinberg + + COMMIT: 348787f06902b971d76dbab3f05d54c0b5c36131 + ldbl-128ibm-compat: Fix selection of GNU and ISO C99 scanf + + * sysdeps/ieee754/ldbl-128ibm-compat/Makefile: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.c: Modified. + (libio/stdio.h): Include file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wscanf-ldbl-compat.c: Modified. + (libio/stdio.h): Include file. + +2019-12-13 Samuel Thibault + + COMMIT: 8eaf34eda256ba3647ed6e7ed5c7c9aa19955d17 + hurd: Fix local PLT + + * include/sys/random.h: Modified. + [! _ISOMAC](__wur): New. + [! _ISOMAC](libc_hidden_proto): New. + * stdlib/getrandom.c: Modified. + (getrandom): Remove function. + (__getrandom): New function. + * sysdeps/mach/hurd/getentropy.c: Modified. + (getentropy): Modified function. + * sysdeps/mach/hurd/getrandom.c: Modified. + (getrandom): Remove function. + (__getrandom): New function. + (libc_hidden_def): New. + (weak_alias): New. + * sysdeps/unix/sysv/linux/getrandom.c: Modified. + [! __NR_getrandom](getrandom): Remove function. + [! __NR_getrandom](__getrandom): New function. + [__NR_getrandom](getrandom): Remove function. + [__NR_getrandom](__getrandom): New function. + (libc_hidden_def): New. + (weak_alias): New. + +2019-12-13 Florian Weimer + + COMMIT: f7649d5780aa4682393b9daedd653e4d9c12784c + dlopen: Do not block signals + + * elf/dl-open.c: Modified. + (internal-signals.h): Remove include. + (dl_open_args): Modified. + (dl_open_worker): Modified function. + (_dl_open): Modified function. + +2019-12-13 Florian Weimer + + COMMIT: f8ed116aa574435c6e28260f21963233682d3b57 + dlopen: Rework handling of pending NODELETE status + + * elf/dl-close.c: Modified. + (_dl_close_worker): Modified function. + (_dl_close): Modified function. + * elf/dl-lookup.c: Modified. + (do_lookup_unique): Modified function. + (add_dependency): Modified function. + (mark_nodelete): New function. + (is_nodelete): New function. + * elf/dl-open.c: Modified. + (activate_nodelete): Modified function. + (dl_open_worker): Modified function. + * elf/get-dynamic-info.h: Modified. + [! RESOLVE_MAP](elf_get_dynamic_info): Modified function. + [RESOLVE_MAP](elf_get_dynamic_info): Modified function. + * include/link.h: Modified. + [! _ISOMAC](link_map_nodelete): Remove. + [! _ISOMAC](link_map): Modified. + +2019-12-13 Florian Weimer + + COMMIT: 365624e2d2a342cdb693b4cc35d2312169959e28 + dlopen: Fix issues related to NODELETE handling and relocations + + * elf/Makefile: Modified. + * elf/dl-lookup.c: Modified. + (do_lookup_unique): Modified function. + * elf/dl-open.c: Modified. + (activate_nodelete): Modified function. + (dl_open_worker): Modified function. + * elf/tst-dlopen-nodelete-reloc-mod1.c: New file. + * elf/tst-dlopen-nodelete-reloc-mod10.c: New file. + * elf/tst-dlopen-nodelete-reloc-mod11.cc: New file. + * elf/tst-dlopen-nodelete-reloc-mod12.cc: New file. + * elf/tst-dlopen-nodelete-reloc-mod13.cc: New file. + * elf/tst-dlopen-nodelete-reloc-mod13.h: New file. + * elf/tst-dlopen-nodelete-reloc-mod14.cc: New file. + * elf/tst-dlopen-nodelete-reloc-mod15.cc: New file. + * elf/tst-dlopen-nodelete-reloc-mod16.c: New file. + * elf/tst-dlopen-nodelete-reloc-mod17.c: New file. + * elf/tst-dlopen-nodelete-reloc-mod2.c: New file. + * elf/tst-dlopen-nodelete-reloc-mod3.c: New file. + * elf/tst-dlopen-nodelete-reloc-mod4.c: New file. + * elf/tst-dlopen-nodelete-reloc-mod5.c: New file. + * elf/tst-dlopen-nodelete-reloc-mod6.cc: New file. + * elf/tst-dlopen-nodelete-reloc-mod7.cc: New file. + * elf/tst-dlopen-nodelete-reloc-mod8.c: New file. + * elf/tst-dlopen-nodelete-reloc-mod9.cc: New file. + * elf/tst-dlopen-nodelete-reloc.c: New file. + * elf/tst-dlopen-nodelete-reloc.h: New file. + +2019-12-13 Samuel Thibault + + COMMIT: 186e119bbd4a10895429ffe405ae96dc5c5634b8 + hurd: Fix __close_nocancel_nostatus availability + + * sysdeps/mach/hurd/Makefile: Modified. + * sysdeps/mach/hurd/Versions: Modified. + * sysdeps/mach/hurd/close_nocancel_nostatus.c: New file. + * sysdeps/mach/hurd/not-cancel.h: Modified. + (__close_nocancel_nostatus): Remove function. + [IS_IN (libc) || IS_IN (rtld)](hidden_proto): New. + (__close_nocancel_nostatus): New function. + +2019-12-13 Andrew Eggenberger + + COMMIT: fe75ee0ca65536352fcdaebfbf39aac9bee271f0 + hurd: add getrandom and getentropy implementations + + * sysdeps/mach/hurd/getentropy.c: New file. + * sysdeps/mach/hurd/getrandom.c: New file. + +2019-12-13 Samuel Thibault + + COMMIT: c1f25758c353fcb16076512aba62746bff2e0d2d + hurd: Implement __close_nocancel_nostatus + + * sysdeps/mach/hurd/not-cancel.h: New file. + +2019-12-11 Paul Eggert + + COMMIT: ef4e158c736d067304164c3daa763e4f425af248 + manual: clarify fopen with the x flag + + * manual/stdio.texi: Modified. + +2019-12-11 Stefan Liebler + + COMMIT: fcee34cc373daee6aa5320a6e1897cdf2005ab53 + S390: Use sysdeps/ieee754/dbl-64/wordsize-64 on s390x. + + * sysdeps/s390/s390-64/Implies: Modified. + +2019-12-11 Stefan Liebler + + COMMIT: 2763d3145a326aa9afa613fe9e1b444cf912a883 + S390: Implement roundtoint and converttoint and define TOINT_INTRINSICS. + + * sysdeps/s390/fpu/math_private.h: New file. + +2019-12-11 Stefan Liebler + + COMMIT: 433a2ba68cd91842546e0f0d43d65835634d570d + S390: Implement math-barriers math_opt_barrier and math_force_eval. + + * sysdeps/s390/fpu/math-barriers.h: New file. + +2019-12-11 Stefan Liebler + + COMMIT: 238adf59db85646ebae47876819bd896dae597bc + S390: Use libc_fe* macros in fe* functions. + + * sysdeps/s390/fpu/fegetround.c: Modified. + (fenv_libc.h): Remove include. + (fpu_control.h): Remove include. + (__fegetround): Modified function. + (get-rounding-mode.h): Include file. + * sysdeps/s390/fpu/feholdexcpt.c: Modified. + (fenv_libc.h): Remove include. + (fpu_control.h): Remove include. + (__feholdexcept): Modified function. + (fenv_private.h): Include file. + * sysdeps/s390/fpu/fesetenv.c: Modified. + (fenv_libc.h): Remove include. + (fpu_control.h): Remove include. + (stddef.h): Remove include. + (unistd.h): Remove include. + (__fesetenv): Modified function. + (fenv_private.h): Include file. + * sysdeps/s390/fpu/fesetround.c: Modified. + (fenv_libc.h): Remove include. + (fpu_control.h): Remove include. + (__fesetround): Modified function. + (fenv_private.h): Include file. + * sysdeps/s390/fpu/fetestexceptflag.c: Delete file. + * sysdeps/s390/fpu/feupdateenv.c: Modified. + (fenv_libc.h): Remove include. + (fpu_control.h): Remove include. + (__feupdateenv): Modified function. + (fenv_private.h): Include file. + * sysdeps/s390/fpu/fgetexcptflg.c: Modified. + (fenv_libc.h): Remove include. + (fpu_control.h): Remove include. + (fegetexceptflag): Modified function. + (fenv_private.h): Include file. + * sysdeps/s390/fpu/fsetexcptflg.c: Modified. + (fesetexceptflag): Modified function. + * sysdeps/s390/fpu/ftestexcept.c: Modified. + (fenv_libc.h): Remove include. + (fpu_control.h): Remove include. + (fetestexcept): Modified function. + (fenv_private.h): Include file. + +2019-12-11 Stefan Liebler + + COMMIT: 7c94d036c17dfd352d11e9bf98e5d84122c1f95e + S390: Implement libc_fe* macros. + + * sysdeps/s390/fpu/fenv_private.h: New file. + +2019-12-11 Stefan Liebler + + COMMIT: 7d42d614fdc2c9d9f6ad46111bd6130501d50460 + S390: Use convert-to-fixed instruction for llround functions. + + * sysdeps/s390/fpu/s_llround.c: New file. + * sysdeps/s390/fpu/s_llroundf.c: New file. + * sysdeps/s390/fpu/s_llroundl.c: New file. + +2019-12-11 Stefan Liebler + + COMMIT: 9d9f3527daf65fdca0eb46eaa324b81b8f94d88c + S390: Use convert-to-fixed instruction for lround functions. + + * sysdeps/s390/fpu/s_lround.c: New file. + * sysdeps/s390/fpu/s_lroundf.c: New file. + * sysdeps/s390/fpu/s_lroundl.c: New file. + +2019-12-11 Stefan Liebler + + COMMIT: f10c1654fe13d797d2fd347dc47f72f93c58cf62 + S390: Use convert-to-fixed instruction for llrint functions. + + * sysdeps/s390/fpu/s_llrint.c: New file. + * sysdeps/s390/fpu/s_llrintf.c: New file. + * sysdeps/s390/fpu/s_llrintl.c: New file. + +2019-12-11 Stefan Liebler + + COMMIT: e3f07622209c1b4436ef364b134dfd2cd4ca9976 + S390: Use convert-to-fixed instruction for lrint functions. + + * sysdeps/s390/fpu/s_lrint.c: New file. + * sysdeps/s390/fpu/s_lrintf.c: New file. + * sysdeps/s390/fpu/s_lrintl.c: New file. + +2019-12-11 Stefan Liebler + + COMMIT: 4399b163376b331773e43917dcf56ce68e43e6a0 + S390: Use load-fp-integer instruction for roundeven functions. + + * sysdeps/s390/fpu/s_roundeven.c: New file. + * sysdeps/s390/fpu/s_roundevenf.c: New file. + * sysdeps/s390/fpu/s_roundevenl.c: New file. + +2019-12-11 Stefan Liebler + + COMMIT: 1902d5d5ff04771f16b67648789c75a18af06222 + Adjust s_copysignl.c regarding code style. + + * sysdeps/ieee754/ldbl-128/s_copysignl.c: Modified. + (__copysignl): Modified function. + +2019-12-11 Stefan Liebler + + COMMIT: 171d23d7cbce7b6f175a6690e625ccf80b647d23 + Adjust s_ceilf.c and s_ceill.c regarding code style. + + * sysdeps/ieee754/flt-32/s_ceilf.c: Modified. + (__ceilf): Modified function. + * sysdeps/ieee754/ldbl-128/s_ceill.c: Modified. + (__ceill): Modified function. + +2019-12-11 Stefan Liebler + + COMMIT: d3a0409ab615e133ff3ea27b492de75a607cff4a + Adjust s_floorf.c and s_floorl.c regarding code style. + + * sysdeps/ieee754/flt-32/s_floorf.c: Modified. + (__floorf): Modified function. + * sysdeps/ieee754/ldbl-128/s_floorl.c: Modified. + (__floorl): Modified function. + +2019-12-11 Stefan Liebler + + COMMIT: 99b39a83e72f4b58e2f284fd844622df26b3b5fe + Adjust s_rintf.c and s_rintl.c regarding code style. + + * sysdeps/ieee754/flt-32/s_rintf.c: Modified. + (__rintf): Modified function. + * sysdeps/ieee754/ldbl-128/s_rintl.c: Modified. + (__rintl): Modified function. + +2019-12-11 Stefan Liebler + + COMMIT: 6a3866dae98cccc8cd7a0a4c1fb409dba9192a83 + Adjust s_nearbyintf.c and s_nearbyintl.c regarding code style. + + * sysdeps/ieee754/flt-32/s_nearbyintf.c: Modified. + (__nearbyintf): Modified function. + * sysdeps/ieee754/ldbl-128/s_nearbyintl.c: Modified. + (__nearbyintl): Modified function. + +2019-12-11 Stefan Liebler + + COMMIT: f818afdd3b29d7eef2010448457c9f5c16e684cd + Use GCC builtins for copysign functions if desired. + + * sysdeps/generic/math-use-builtins.h: Modified. + [!(__GNUC_PREREQ (7, 0))](USE_COPYSIGNF128_BUILTIN): New. + [__GNUC_PREREQ (7, 0)](USE_COPYSIGNF128_BUILTIN): New. + (features.h): Include file. + (USE_COPYSIGNL_BUILTIN): New. + * sysdeps/ieee754/dbl-64/s_copysign.c: Modified. + (math_private.h): Remove include. + (__copysign): Modified function. + * sysdeps/ieee754/float128/float128_private.h: Modified. + (USE_COPYSIGNL_BUILTIN): New. + * sysdeps/ieee754/flt-32/s_copysignf.c: Modified. + (math_private.h): Remove include. + (__copysignf): Modified function. + * sysdeps/ieee754/ldbl-128/s_copysignl.c: Modified. + (__copysignl): Modified function. + (math-use-builtins.h): Include file. + * sysdeps/s390/fpu/math-use-builtins.h: Modified. + [!(__GNUC_PREREQ (7, 0))](USE_COPYSIGNF128_BUILTIN): New. + [__GNUC_PREREQ (7, 0)](USE_COPYSIGNF128_BUILTIN): New. + (USE_COPYSIGNL_BUILTIN): New. + +2019-12-11 Stefan Liebler + + COMMIT: f82996f8159981619ac7ed8a4c1838c2ad72ab61 + Use GCC builtins for round functions if desired. + + * sysdeps/generic/math-use-builtins.h: Modified. + (USE_ROUND_BUILTIN): New. + (USE_ROUNDF_BUILTIN): New. + (USE_ROUNDL_BUILTIN): New. + (USE_ROUNDF128_BUILTIN): New. + * sysdeps/ieee754/dbl-64/s_round.c: Modified. + (__round): Modified function. + (math-use-builtins.h): Include file. + * sysdeps/ieee754/float128/float128_private.h: Modified. + (USE_ROUNDL_BUILTIN): New. + (__builtin_roundl): New. + * sysdeps/ieee754/flt-32/s_roundf.c: Modified. + (__roundf): Modified function. + (math-use-builtins.h): Include file. + * sysdeps/ieee754/ldbl-128/s_roundl.c: Modified. + (__roundl): Modified function. + (math-use-builtins.h): Include file. + * sysdeps/s390/fpu/math-use-builtins.h: Modified. + [! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_ROUND_BUILTIN): New. + [! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_ROUNDF_BUILTIN): New. + [! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_ROUNDL_BUILTIN): New. + [! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_ROUNDF128_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT][!(__GNUC_PREREQ (8, 0))](USE_ROUNDF128_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT][__GNUC_PREREQ (8, 0)](USE_ROUNDF128_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_ROUND_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_ROUNDF_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_ROUNDL_BUILTIN): New. + +2019-12-11 Stefan Liebler + + COMMIT: 1ac9c1cf87216bf9f8ac4f7c9754d025d9f2c4ae + Use GCC builtins for trunc functions if desired. + + * sysdeps/generic/math-use-builtins.h: Modified. + (USE_TRUNC_BUILTIN): New. + (USE_TRUNCF_BUILTIN): New. + (USE_TRUNCL_BUILTIN): New. + (USE_TRUNCF128_BUILTIN): New. + * sysdeps/ieee754/dbl-64/s_trunc.c: Modified. + (__trunc): Modified function. + (math-use-builtins.h): Include file. + * sysdeps/ieee754/float128/float128_private.h: Modified. + (USE_TRUNCL_BUILTIN): New. + (__builtin_truncl): New. + * sysdeps/ieee754/flt-32/s_truncf.c: Modified. + (__truncf): Modified function. + (math-use-builtins.h): Include file. + * sysdeps/ieee754/ldbl-128/s_truncl.c: Modified. + (__truncl): Modified function. + (math-use-builtins.h): Include file. + * sysdeps/s390/fpu/math-use-builtins.h: Modified. + [! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_TRUNC_BUILTIN): New. + [! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_TRUNCF_BUILTIN): New. + [! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_TRUNCL_BUILTIN): New. + [! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_TRUNCF128_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT][!(__GNUC_PREREQ (8, 0))](USE_TRUNCF128_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT][__GNUC_PREREQ (8, 0)](USE_TRUNCF128_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_TRUNC_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_TRUNCF_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_TRUNCL_BUILTIN): New. + +2019-12-11 Stefan Liebler + + COMMIT: 62560ee84095274bab1050817f42e782df226a17 + Use GCC builtins for ceil functions if desired. + + * sysdeps/generic/math-use-builtins.h: Modified. + (USE_CEIL_BUILTIN): New. + (USE_CEILF_BUILTIN): New. + (USE_CEILL_BUILTIN): New. + (USE_CEILF128_BUILTIN): New. + * sysdeps/ieee754/dbl-64/s_ceil.c: Modified. + (__ceil): Modified function. + (math-use-builtins.h): Include file. + * sysdeps/ieee754/float128/float128_private.h: Modified. + (USE_CEILL_BUILTIN): New. + (__builtin_ceill): New. + * sysdeps/ieee754/flt-32/s_ceilf.c: Modified. + (__ceilf): Modified function. + (math-use-builtins.h): Include file. + * sysdeps/ieee754/ldbl-128/s_ceill.c: Modified. + (__ceill): Modified function. + (math-use-builtins.h): Include file. + * sysdeps/s390/fpu/math-use-builtins.h: Modified. + [! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_CEIL_BUILTIN): New. + [! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_CEILF_BUILTIN): New. + [! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_CEILL_BUILTIN): New. + [! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_CEILF128_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT][!(__GNUC_PREREQ (8, 0))](USE_CEILF128_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT][__GNUC_PREREQ (8, 0)](USE_CEILF128_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_CEIL_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_CEILF_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_CEILL_BUILTIN): New. + +2019-12-11 Stefan Liebler + + COMMIT: 6c1b6a5e8cd91e0e1965509ad91e627e60eb00a3 + Use GCC builtins for floor functions if desired. + + * sysdeps/generic/math-use-builtins.h: Modified. + (USE_FLOOR_BUILTIN): New. + (USE_FLOORF_BUILTIN): New. + (USE_FLOORL_BUILTIN): New. + (USE_FLOORF128_BUILTIN): New. + * sysdeps/ieee754/dbl-64/s_floor.c: Modified. + (__floor): Modified function. + (math-use-builtins.h): Include file. + * sysdeps/ieee754/float128/float128_private.h: Modified. + (USE_FLOORL_BUILTIN): New. + (__builtin_floorl): New. + * sysdeps/ieee754/flt-32/s_floorf.c: Modified. + (__floorf): Modified function. + (math-use-builtins.h): Include file. + * sysdeps/ieee754/ldbl-128/s_floorl.c: Modified. + (__floorl): Modified function. + (math-use-builtins.h): Include file. + * sysdeps/s390/fpu/math-use-builtins.h: Modified. + [! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_FLOOR_BUILTIN): New. + [! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_FLOORF_BUILTIN): New. + [! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_FLOORL_BUILTIN): New. + [! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_FLOORF128_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT][!(__GNUC_PREREQ (8, 0))](USE_FLOORF128_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT][__GNUC_PREREQ (8, 0)](USE_FLOORF128_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_FLOOR_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_FLOORF_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_FLOORL_BUILTIN): New. + +2019-12-11 Stefan Liebler + + COMMIT: a2a9b004297b777758420c952cb6eea5985d37fe + Use GCC builtins for rint functions if desired. + + * sysdeps/generic/math-use-builtins.h: Modified. + (USE_RINT_BUILTIN): New. + (USE_RINTF_BUILTIN): New. + (USE_RINTL_BUILTIN): New. + (USE_RINTF128_BUILTIN): New. + * sysdeps/ieee754/dbl-64/s_rint.c: Modified. + (TWO52): Remove. + (__rint): Modified function. + (math-use-builtins.h): Include file. + * sysdeps/ieee754/float128/float128_private.h: Modified. + (USE_RINTL_BUILTIN): New. + (__builtin_rintl): New. + * sysdeps/ieee754/flt-32/s_rintf.c: Modified. + (TWO23): Remove. + (__rintf): Modified function. + (math-use-builtins.h): Include file. + * sysdeps/ieee754/ldbl-128/s_rintl.c: Modified. + (TWO112): Remove. + (__rintl): Modified function. + (math-use-builtins.h): Include file. + * sysdeps/s390/fpu/math-use-builtins.h: Modified. + [! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_RINT_BUILTIN): New. + [! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_RINTF_BUILTIN): New. + [! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_RINTL_BUILTIN): New. + [! HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_RINTF128_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT][!(__GNUC_PREREQ (8, 0))](USE_RINTF128_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT][__GNUC_PREREQ (8, 0)](USE_RINTF128_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_RINT_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_RINTF_BUILTIN): New. + [HAVE_S390_MIN_Z196_ZARCH_ASM_SUPPORT](USE_RINTL_BUILTIN): New. + +2019-12-11 Stefan Liebler + + COMMIT: ae3577f607b50bf3ce9b0877e43ad2508c9da61b + Use GCC builtins for nearbyint functions if desired. + + * sysdeps/generic/math-use-builtins.h: New file. + * sysdeps/ieee754/dbl-64/s_nearbyint.c: Modified. + (TWO52): Remove. + (__nearbyint): Modified function. + (math-use-builtins.h): Include file. + * sysdeps/ieee754/float128/float128_private.h: Modified. + (math-use-builtins.h): Include file. + (USE_NEARBYINTL_BUILTIN): New. + (__builtin_nearbyintl): New. + * sysdeps/ieee754/flt-32/s_nearbyintf.c: Modified. + (TWO23): Remove. + (__nearbyintf): Modified function. + (math-use-builtins.h): Include file. + * sysdeps/ieee754/ldbl-128/s_nearbyintl.c: Modified. + (TWO112): Remove. + (__nearbyintl): Modified function. + (math-use-builtins.h): Include file. + * sysdeps/s390/fpu/math-use-builtins.h: New file. + +2019-12-11 Stefan Liebler + + COMMIT: 36e9acbd5cb2c330c0d53195db4a0ee31f2c3097 + Always use wordsize-64 version of s_round.c. + + * sysdeps/ieee754/dbl-64/s_round.c: Modified. + (__round): Modified function. + (stdint.h): Include file. + * sysdeps/ieee754/dbl-64/wordsize-64/s_round.c: Delete file. + +2019-12-11 Stefan Liebler + + COMMIT: 1c94bf0f0a50ce66c808e2ea9b7e417785798b73 + Always use wordsize-64 version of s_trunc.c. + + * sysdeps/ieee754/dbl-64/s_trunc.c: Modified. + (__trunc): Modified function. + * sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c: Delete file. + * sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-generic.c: Modified. + (sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c): Remove include. + (sysdeps/ieee754/dbl-64/s_trunc.c): Include file. + * sysdeps/sparc/sparc64/fpu/multiarch/s_trunc-vis3.c: Modified. + (sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c): Remove include. + (sysdeps/ieee754/dbl-64/s_trunc.c): Include file. + * sysdeps/x86_64/fpu/multiarch/s_trunc-c.c: Modified. + (sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c): Remove include. + (sysdeps/ieee754/dbl-64/s_trunc.c): Include file. + +2019-12-11 Stefan Liebler + + COMMIT: 9f234eafe8698fd9a441ca2309a299d0bd771156 + Always use wordsize-64 version of s_ceil.c. + + * sysdeps/ieee754/dbl-64/s_ceil.c: Modified. + (__ceil): Modified function. + * sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c: Delete file. + * sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-generic.c: Modified. + (sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c): Remove include. + (sysdeps/ieee754/dbl-64/s_ceil.c): Include file. + * sysdeps/sparc/sparc64/fpu/multiarch/s_ceil-vis3.c: Modified. + (sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c): Remove include. + (sysdeps/ieee754/dbl-64/s_ceil.c): Include file. + * sysdeps/x86_64/fpu/multiarch/s_ceil-c.c: Modified. + (sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c): Remove include. + (sysdeps/ieee754/dbl-64/s_ceil.c): Include file. + +2019-12-11 Stefan Liebler + + COMMIT: 95b0c2c431510013eb2f7385fc078ee2498f83bf + Always use wordsize-64 version of s_floor.c. + + * sysdeps/ieee754/dbl-64/s_floor.c: Modified. + (__floor): Modified function. + (stdint.h): Include file. + * sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c: Delete file. + * sysdeps/sparc/sparc64/fpu/multiarch/s_floor-generic.c: Modified. + (sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c): Remove include. + (sysdeps/ieee754/dbl-64/s_floor.c): Include file. + * sysdeps/sparc/sparc64/fpu/multiarch/s_floor-vis3.c: Modified. + (sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c): Remove include. + (sysdeps/ieee754/dbl-64/s_floor.c): Include file. + * sysdeps/x86_64/fpu/multiarch/s_floor-c.c: Modified. + (sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c): Remove include. + (sysdeps/ieee754/dbl-64/s_floor.c): Include file. + +2019-12-11 Stefan Liebler + + COMMIT: ab48bdd098a675dddb360faafc497a61c4bd4334 + Always use wordsize-64 version of s_rint.c. + + * sysdeps/ieee754/dbl-64/s_rint.c: Modified. + (__rint): Modified function. + * sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c: Delete file. + * sysdeps/x86_64/fpu/multiarch/s_rint-c.c: Modified. + (sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c): Remove include. + (sysdeps/ieee754/dbl-64/s_rint.c): Include file. + +2019-12-11 Stefan Liebler + + COMMIT: af123aa95091d3d2d1b4ff027cf806ca1721d29d + Always use wordsize-64 version of s_nearbyint.c. + + * sysdeps/ieee754/dbl-64/s_nearbyint.c: Modified. + [(LIBM_SCCS) && ! lint](rcsid): Remove. + (__nearbyint): Modified function. + * sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c: Delete file. + * sysdeps/x86_64/fpu/multiarch/s_nearbyint-c.c: Modified. + (sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c): Remove include. + (sysdeps/ieee754/dbl-64/s_nearbyint.c): Include file. + +2019-12-11 Florian Weimer + + COMMIT: b5a1271c76ad03a2e0ee044ecb46af03d771e40a + ldconfig: Do not print a warning for a missing ld.so.conf file + + * elf/ldconfig.c: Modified. + (parse_conf): Modified function. + +2019-12-11 Samuel Thibault + + COMMIT: e46efff89550a8e693a3362976f85070762c5cb8 + hurd: Fix using altstack while in an RPC call to be aborted + + * sysdeps/mach/hurd/i386/trampoline.c: Modified. + (_hurd_setup_sighandler): Modified function. + +2019-12-10 Carlos O'Donell + + COMMIT: 83fe078130f62c35fcceab7133fa4b1512925951 + Fix failure when CFLAGS contains -DNDEBUG (Bug 25251) + + * assert/tst-assert-c++.cc: Modified. + +2019-12-09 Adhemerval Zanella + + COMMIT: 0487ebed2278b20971af4cabf186fd3681adccf0 + nptl: Add more missing placeholder abi symbol from nanosleep move + + * include/shlib-compat.h: Modified. + [! SHARED](compat_symbol_unique): New. + [SHARED](__compat_symbol_unique_concat): New. + [SHARED](_compat_symbol_unique_concat): New. + [SHARED](_compat_symbol_unique_alias): New. + [SHARED](_compat_symbol_unique): New. + [SHARED](compat_symbol_unique): New. + * nptl/libpthread-compat.c: Modified. + [(SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_2_6))](__libpthread_version_placeholder): Remove. + [(SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_2_6))](compat_symbol): Remove. + [(SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_2))](compat_symbol_unique): New. + [(SHLIB_COMPAT (libpthread, GLIBC_2_2_6, GLIBC_2_3))](compat_symbol_unique): New. + [SHARED](__libpthread_version_placeholder): New. + (sys/cdefs.h): Include file. + * sysdeps/unix/sysv/linux/alpha/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/hppa/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/i386/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/ia64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sh/be/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sh/le/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist: Modified. + +2019-12-09 Andreas Schwab + + COMMIT: 7badf7b06fe796b3f549663d0d65d3012a7e0457 + sysdeps/riscv/start.S: rename .Lload_gp to load_gp (bug 24376) + + * sysdeps/riscv/start.S: Modified. + +2019-12-05 Lukasz Majewski + + COMMIT: cae1635a70aff76117e3b4d6cead86606662b0fc + y2038: linux: Provide __timer_settime64 implementation + + * include/time.h: Modified. + [! _ISOMAC][__TIMESIZE != 64](__timer_settime64): New function. + [! _ISOMAC][__TIMESIZE != 64](libc_hidden_proto): New function. + [! _ISOMAC][__TIMESIZE == 64](__timer_settime64): New. + * sysdeps/unix/sysv/linux/timer_settime.c: Modified. + (timer_settime): Remove function. + [__TIMESIZE != 64](__timer_settime): New. + (kernel-features.h): Include file. + (__timer_settime64): New function. + (weak_alias): New. + (libc_hidden_def): New. + +2019-12-05 Lukasz Majewski + + COMMIT: 562cdc19c761b6749ae31845156366d4b319e200 + y2038: linux: Provide __timer_gettime64 implementation + + * include/time.h: Modified. + [! _ISOMAC][__TIMESIZE != 64](__timer_gettime64): New function. + [! _ISOMAC][__TIMESIZE != 64](libc_hidden_proto): New function. + [! _ISOMAC][__TIMESIZE == 64](__timer_gettime64): New. + * sysdeps/unix/sysv/linux/timer_gettime.c: Modified. + (timer_gettime): Remove function. + [__TIMESIZE != 64](__timer_gettime): New. + (kernel-features.h): Include file. + (__timer_gettime64): New function. + (weak_alias): New. + (libc_hidden_def): New. + +2019-12-05 Lukasz Majewski + + COMMIT: ab65136e7233183a1f35c7d36867b5937844b368 + timer: Decouple x86_64 specific timer_settime from generic Linux implementation + + * sysdeps/unix/sysv/linux/timer_settime.c: Modified. + [timer_settime_alias](timer_settime): Remove. + (timer_settime): Modified function. + * sysdeps/unix/sysv/linux/x86_64/timer_settime.c: Modified. + (timer_settime_alias): Remove. + (sysdeps/unix/sysv/linux/timer_settime.c): Remove include. + (timer_settime): Remove. + (sysdep.h): Include file. + (kernel-posix-timers.h): Include file. + (__timer_settime_new): New function. + +2019-12-05 Lukasz Majewski + + COMMIT: 115959290f01f6c0674e16e0de5d8a16f79d19de + timer: Decouple x86_64 specific timer_gettime from generic Linux implementation + + * sysdeps/unix/sysv/linux/timer_gettime.c: Modified. + [timer_gettime_alias](timer_gettime): Remove. + (timer_gettime): Modified function. + * sysdeps/unix/sysv/linux/x86_64/timer_gettime.c: Modified. + (timer_gettime_alias): Remove. + (sysdeps/unix/sysv/linux/timer_gettime.c): Remove include. + (timer_gettime): Remove. + (sysdep.h): Include file. + (kernel-posix-timers.h): Include file. + (__timer_gettime_new): New function. + +2019-12-05 Lukasz Majewski + + COMMIT: 4b135425d889cb18b0fb3c3d166e115927042dda + time: Introduce glibc's internal struct __itimerspec64 + + * include/time.h: Modified. + [! _ISOMAC][__TIMESIZE != 64](__itimerspec64): New. + [! _ISOMAC][__TIMESIZE == 64](__itimerspec64): New. + +2019-12-05 DJ Delorie + + COMMIT: 16554464bcd9d77b07c6ff419dc54f00e394fa50 + Correct range checking in mallopt/mxfast/tcache [BZ #25194] + + * malloc/malloc.c: Modified. + [USE_TCACHE](do_set_tcache_max): Modified function. + [USE_TCACHE](do_set_tcache_count): Modified function. + (do_set_mxfast): Modified function. + (__libc_mallopt): Modified function. + +2019-12-05 Florian Weimer + + COMMIT: 1f7525d924b608a3e43b10fcfb3d46b8a6e9e4f9 + misc/test-errno-linux: Handle EINVAL from quotactl + + * sysdeps/unix/sysv/linux/test-errno-linux.c: Modified. + (do_test): Modified function. + +2019-12-05 Kamlesh Kumar + + COMMIT: 953ceff17a4a15b10cfdd5edc3c8cae4884c8ec3 + : Define __CORRECT_ISO_CPP_STRING_H_PROTO for Clang [BZ #25232] + + * string/string.h: Modified. + [__cplusplus && __GNUC_PREREQ (4, 4)](__CORRECT_ISO_CPP_STRING_H_PROTO): Remove. + [__cplusplus && (__GNUC_PREREQ (4, 4) || __glibc_clang_prereq (3, 5))](__CORRECT_ISO_CPP_STRING_H_PROTO): New. + +2019-12-05 Adhemerval Zanella + + COMMIT: 066d80a7cdfa5ab7b2dd66cb51e8abeed60227e5 + build-many-glibcs.py: Move sparcv8 to extra_glibcs + + * scripts/build-many-glibcs.py: Modified. + +2019-12-04 Alistair Francis + + COMMIT: ec138c67cbda8b5826a0a2a7ba456408117996dc + sysdeps/clock_gettime: Use clock_gettime64 if avaliable + + * include/time.h: Modified. + [! _ISOMAC][__TIMESIZE != 64](__clock_gettime64): New function. + [! _ISOMAC][__TIMESIZE != 64](libc_hidden_proto): New. + [! _ISOMAC][__TIMESIZE == 64](__clock_gettime64): New. + * sysdeps/unix/sysv/linux/clock_gettime.c: Modified. + (__clock_gettime): Remove function. + [__TIMESIZE != 64](__clock_gettime): New. + (kernel-features.h): Include file. + (__clock_gettime64): New function. + +2019-12-04 Alistair Francis + + COMMIT: f6fbce7dd72145ed9272ac8ef3ea6123c390a72b + sysdeps: Add clock_gettime64 vDSO + + * sysdeps/unix/sysv/linux/init-first.c: Modified. + (__libc_vdso_platform_setup): Modified function. + [HAVE_CLOCK_GETTIME64_VSYSCALL](int): New. + * sysdeps/unix/sysv/linux/libc-vdso.h: Modified. + [HAVE_CLOCK_GETTIME64_VSYSCALL](int): New. + +2019-12-04 Gabriel F. T. Gomes + + COMMIT: d0bc5b725dac852764b98b9b3e0560c003bd000a + Do not use ld.so to open statically linked programs in debugglibc.sh + + * Makefile: Modified. + +2019-12-04 Gabriel F. T. Gomes + + COMMIT: 6ef1bab699eb82ad24d52a4a045bceb4f7533a5b + Attach to test in container from debugglibc.sh + + * Makefile: Modified. + +2019-12-03 Florian Weimer + + COMMIT: 8b196ac4b8d1be6021a3974f28bba5e947b37db8 + Expand $(as-needed) and $(no-as-needed) throughout the build system + + * Makeconfig: Modified. + * Makerules: Modified. + * elf/Makefile: Modified. + * nptl/Makefile: Modified. + * stdlib/Makefile: Modified. + * sysdeps/powerpc/powerpc64/le/Makefile: Modified. + +2019-12-03 Florian Weimer + + COMMIT: 9fb8139079ef0bb1aa33a4ae418cbb113b9b9da7 + x86: Assume --enable-cet if GCC defaults to CET [BZ #25225] + + * configure: Modified. + * configure.ac: Modified. + +2019-12-03 Gabriel F. T. Gomes + Rajalakshmi Srinivasaraghavan + + COMMIT: 39c977b23e3e547e70d199a679b37bdf9c3223f6 + ldbl-128ibm-compat: Add tests for strfroml, strtold, and wcstold + + * sysdeps/ieee754/ldbl-128ibm-compat/Makefile: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ibm128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ieee128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-strfrom-ldbl-compat.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ibm128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ieee128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wcstold-ldbl-compat.c: New file. + +2019-12-03 Gabriel F. T. Gomes + + COMMIT: 80a19b003e2836abda4ad96721a40c6f7a32ab4c + ldbl-128ibm-compat: Add tests for strfmon and strfmon_l + + * sysdeps/ieee754/ldbl-128ibm-compat/Makefile: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ibm128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ieee128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-strfmon-ldbl-compat.c: New file. + +2019-12-03 Rajalakshmi Srinivasaraghavan + + COMMIT: 66fa30828a1eb3d96cb92c080fa0b7376bda9b11 + ldbl-128ibm-compat: Add strfmon_l with IEEE long double format + + * include/monetary.h: Modified. + [! _ISOMAC](STRFMON_LDBL_USES_FLOAT128): New. + * stdlib/strfmon_l.c: Modified. + (__vstrfmon_l_internal): Modified function. + (bits/floatn.h): Include file. + * sysdeps/ieee754/ldbl-128ibm-compat/Makefile: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/Versions: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-strfmon_l.c: New file. + +2019-12-03 Gabriel F. T. Gomes + + COMMIT: 5d39f37b260a98cfcc5ac312817ce8de534c00b1 + ldbl-128ibm-compat: Replace http with https in new files + + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-argp-help.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf_chk.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf_chk.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-err.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-error.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf_chk.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fscanf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf_chk.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwscanf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obprintf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obstack_chk.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_chk.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-scanf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf_chk.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf_chk.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sscanf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf_chk.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swscanf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-syslog.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf_chk.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf_chk.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf_chk.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfscanf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf_chk.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwscanf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vobstack_chk.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf_chk.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vscanf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf_chk.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf_chk.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsscanf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf_chk.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswscanf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf_chk.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwscanf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf_chk.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wscanf.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ldbl-compat-template.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat-template.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ldbl-compat-template.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ldbl-compat.c: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ldbl-compat.c: Modified. + +2019-12-02 Florian Weimer + + COMMIT: 4db71d2f9897c6ca7a9d0cadc1fc4067557a4eb3 + elf: Do not run IFUNC resolvers for LD_DEBUG=unused [BZ #24214] + + * elf/Makefile: Modified. + * elf/tst-ifunc-fault-bindnow.c: New file. + * elf/tst-ifunc-fault-lazy.c: New file. + * sysdeps/aarch64/dl-machine.h: Modified. + [RESOLVE_MAP](elf_machine_rela): Modified function. + * sysdeps/arm/dl-machine.h: Modified. + [RESOLVE_MAP][! RTLD_BOOTSTRAP](elf_machine_rela): Modified function. + [RESOLVE_MAP](elf_machine_rel): Modified function. + * sysdeps/i386/dl-machine.h: Modified. + [RESOLVE_MAP][! RTLD_BOOTSTRAP](elf_machine_rela): Modified function. + [RESOLVE_MAP](elf_machine_rel): Modified function. + * sysdeps/sparc/sparc32/dl-machine.h: Modified. + [RESOLVE_MAP](elf_machine_rela): Modified function. + * sysdeps/sparc/sparc64/dl-machine.h: Modified. + [RESOLVE_MAP](elf_machine_rela): Modified function. + * sysdeps/x86_64/dl-machine.h: Modified. + [RESOLVE_MAP](elf_machine_rela): Modified function. + +2019-12-02 Florian Weimer + + COMMIT: 61a7c9df71ee4e6f94b56c20f0d37c6e17d5f284 + elf/tst-dlopenfail: Disable --no-as-needed for tst-dlopenfailmod1.so + + * elf/Makefile: Modified. + +2019-12-01 Samuel Thibault + + COMMIT: dd67928700bc9b5954c93b29a6e0b0c4b279d454 + hurd: Fix ld.so __access override from libc + + * include/unistd.h: Modified. + [! _ISOMAC](__access): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): New. + * io/access.c: Modified. + (libc_hidden_def): New. + * sysdeps/mach/hurd/Versions: Modified. + * sysdeps/mach/hurd/access.c: Modified. + (libc_hidden_def): New. + * sysdeps/mach/hurd/i386/localplt.data: Modified. + * sysdeps/unix/sysv/linux/access.c: Modified. + (libc_hidden_def): New. + +2019-12-01 Samuel Thibault + + COMMIT: db25266c9202a1235ce2e2f8a4f84cfb86254196 + hurd: Fix ld.so __getcwd override from libc + + * include/unistd.h: Modified. + [! _ISOMAC](__getcwd): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): New. + * io/getcwd.c: Modified. + (libc_hidden_def): New. + * sysdeps/mach/hurd/Versions: Modified. + * sysdeps/mach/hurd/getcwd.c: Modified. + (libc_hidden_def): New. + * sysdeps/mach/hurd/i386/localplt.data: Modified. + * sysdeps/posix/getcwd.c: Modified. + [_LIBC && ! __getcwd](libc_hidden_def): New. + * sysdeps/unix/sysv/linux/getcwd.c: Modified. + (libc_hidden_def): New. + +2019-12-01 Samuel Thibault + + COMMIT: 892badc9bbcd4a6f8c2eb6c8a99be3aa22517532 + hurd: Make __sigprocmask GLIBC_PRIVATE + + * sysdeps/mach/hurd/Versions: Modified. + * sysdeps/mach/hurd/i386/ld.abilist: Modified. + * sysdeps/mach/hurd/i386/libc.abilist: Modified. + +2019-12-01 Samuel Thibault + + COMMIT: d51ca7d6ad1ab41ee8c86680cc82a3b75cbb6fd3 + hurd: Fix renameat2 error + + * sysdeps/mach/hurd/renameat2.c: Modified. + (__renameat2): Modified function. + +2019-12-01 Samuel Thibault + + COMMIT: 563202976e5786ecef491d45e6c0fada2b8d0fdb + hurd: make strerror(0) coherent with other ports + + * mach/err_kern.sub: Modified. + +2019-12-01 Samuel Thibault + + COMMIT: d5ed9ba29a3c818b3433a1784862494968abda45 + hurd: Fix ld.so link + + * sysdeps/mach/hurd/Versions: Modified. + * sysdeps/mach/hurd/dl-sysdep.c: Modified. + (check_no_hidden): New function. + (__sigprocmask): New function. + * sysdeps/mach/hurd/i386/ld.abilist: Modified. + * sysdeps/mach/hurd/i386/libc.abilist: Modified. + * sysdeps/mach/hurd/i386/localplt.data: Modified. + +2019-11-29 Joseph Myers + + COMMIT: 26e14efdb88e512b36fe4a8310dc95da521477e3 + Update kernel version to 5.4 in tst-mman-consts.py. + + * sysdeps/unix/sysv/linux/tst-mman-consts.py: Modified. + +2019-11-29 Joseph Myers + + COMMIT: 96958e2700f5b4f4d1183a0606b2b9848a53ea44 + Update SOMAXCONN value from Linux 5.4. + + * sysdeps/unix/sysv/linux/bits/socket.h: Modified. + (SOMAXCONN): Modified. + +2019-11-28 Joseph Myers + + COMMIT: a331150af65477fc3fa72ab341eed5e0b2daf7f3 + Update syscall-names.list for Linux 5.4. + + * sysdeps/unix/sysv/linux/syscall-names.list: Modified. + +2019-11-28 Joseph Myers + + COMMIT: cdf203668eedb50db09f66cff494d44178d37131 + Fix syntax error in build-many-glibcs.py. + + * scripts/build-many-glibcs.py: Modified. + +2019-11-28 Joseph Myers + + COMMIT: aa9452a3b19e414678062c65ff7a2133482d62c3 + Define MADV_COLD and MADV_PAGEOUT from Linux 5.4. + + * sysdeps/unix/sysv/linux/bits/mman-linux.h: Modified. + [__USE_MISC](MADV_COLD): New. + [__USE_MISC](MADV_PAGEOUT): New. + +2019-11-27 Florian Weimer + + COMMIT: e37c2cf299b61ce18f62852f6c5624c27829b610 + Move _dl_open_check to its original place in dl_open_worker + + * elf/dl-open.c: Modified. + (dl_open_worker): Modified function. + +2019-11-27 Florian Weimer + + COMMIT: a2e8aa0d9ea648068d8be52dd7b15f1b6a008e23 + Block signals during the initial part of dlopen + + * elf/dl-open.c: Modified. + (dl_open_args): Modified. + (dl_open_worker): Modified function. + (_dl_open): Modified function. + (internal-signals.h): Include file. + +2019-11-27 Florian Weimer + + COMMIT: f63b73814f74032c0e5d0a83300e3d864ef905e5 + Remove all loaded objects if dlopen fails, ignoring NODELETE [BZ #20839] + + * elf/Makefile: Modified. + * elf/dl-close.c: Modified. + (_dl_close_worker): Modified function. + (_dl_close): Modified function. + * elf/dl-lookup.c: Modified. + (do_lookup_unique): Modified function. + (do_lookup_x): Modified function. + (add_dependency): Modified function. + * elf/dl-open.c: Modified. + (dl_open_worker): Modified function. + (activate_nodelete): New function. + * elf/get-dynamic-info.h: Modified. + [! RESOLVE_MAP](elf_get_dynamic_info): Modified function. + [RESOLVE_MAP](elf_get_dynamic_info): Modified function. + * elf/tst-dlopenfail.c: New file. + * elf/tst-dlopenfaillinkmod.c: New file. + * elf/tst-dlopenfailmod1.c: New file. + * elf/tst-dlopenfailmod2.c: New file. + * include/link.h: Modified. + [! _ISOMAC](link_map): Modified. + [! _ISOMAC](link_map_nodelete): New. + +2019-11-27 Florian Weimer + + COMMIT: a509eb117fac1d764b15eba64993f4bdb63d7f3c + Avoid late dlopen failure due to scope, TLS slotinfo updates [BZ #25112] + + * elf/dl-open.c: Modified. + (dl_open_worker): Modified function. + (array_length.h): Include file. + (scope_has_map): New function. + (scope_size): New function. + (resize_scopes): New function. + (update_scopes): New function. + (resize_tls_slotinfo): New function. + (update_tls_slotinfo): New function. + * elf/dl-tls.c: Modified. + (_dl_add_to_slotinfo): Modified function. + * elf/rtld.c: Modified. + (dl_main): Modified function. + * sysdeps/generic/ldsodefs.h: Modified. + [IS_IN (rtld)](_dl_add_to_slotinfo): Modified. + +2019-11-27 Florian Weimer + + COMMIT: 440b7f8653e4ed8f6e1425145208050b795e9a6c + Avoid late failure in dlopen in global scope update [BZ #25112] + + * elf/dl-open.c: Modified. + (dl_open_args): Modified. + (add_to_global): Remove function. + (dl_open_worker): Modified function. + (_dl_open): Modified function. + (add_to_global_resize_failure): New function. + (add_to_global_resize): New function. + (add_to_global_update): New function. + * sysdeps/generic/ldsodefs.h: Modified. + [SHARED](rtld_global): Modified. + +2019-11-27 Florian Weimer + + COMMIT: 79e0cd7b3c997e211fad44a81fd839dc5b2546e8 + Lazy binding failures during dlopen/dlclose must be fatal [BZ #24304] + + * NEWS: Modified. + * elf/Makefile: Modified. + * elf/dl-close.c: Modified. + (_dl_close_worker): Modified function. + (call_destructors): New function. + * elf/dl-open.c: Modified. + (dl_open_worker): Modified function. + (dl_init_args): New. + (call_dl_init): New function. + * elf/tst-finilazyfailmod.c: New file. + * elf/tst-initfinilazyfail.c: New file. + * elf/tst-initlazyfailmod.c: New file. + +2019-11-27 Florian Weimer + + COMMIT: 446997ff1433d33452b81dfa9e626b8dccf101a4 + resolv: Implement trust-ad option for /etc/resolv.conf [BZ #20358] + + * NEWS: Modified. + * resolv/Makefile: Modified. + * resolv/res_debug.c: Modified. + [SHLIB_COMPAT (libresolv, GLIBC_2_0, GLIBC_2_26)](p_option): Modified function. + * resolv/res_init.c: Modified. + (res_setoptions): Modified function. + * resolv/res_mkquery.c: Modified. + (__res_context_mkquery): Modified function. + * resolv/res_send.c: Modified. + (__res_context_send): Modified function. + (mask_ad_bit): New function. + * resolv/resolv.h: Modified. + (RES_TRUSTAD): New. + * resolv/tst-resolv-res_init-skeleton.c: Modified. + (print_resp): Modified function. + (test_file_contents): Modified function. + (name): New. + (conf): New. + * resolv/tst-resolv-trustad.c: New file. + * support/resolv_test.c: Modified. + (resolv_response_init): Modified function. + * support/resolv_test.h: Modified. + (resolv_response_flags): Modified. + +2019-11-27 Florian Weimer + + COMMIT: 4a2ab5843a5cc4a5db1b3b79916a520ea8b115dc + dlsym: Do not determine caller link map if not needed + + * elf/dl-sym.c: Modified. + (do_sym): Modified function. + (find_caller_link_map): New function. + +2019-11-27 Florian Weimer + + COMMIT: cb61630ed712d033f54295f776967532d3f4b46a + libio: Disable vtable validation for pre-2.1 interposed handles [BZ #25203] + + * libio/oldstdfiles.c: Modified. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)][__GNUC__ && __GNUC__ >= 2](_IO_check_libio): Modified function. + +2019-11-27 Gabriel F. T. Gomes + + COMMIT: 381b76d7a3511e152675018457bd432fa2657928 + ldbl-128ibm-compat: Add syslog functions + + * sysdeps/ieee754/ldbl-128ibm-compat/Makefile: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/Versions: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-syslog.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-chk-ibm128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-chk-ieee128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-chk-ldbl-compat.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ibm128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ieee128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ldbl-compat-template.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-syslog-ldbl-compat.c: New file. + +2019-11-27 Gabriel F. T. Gomes + + COMMIT: 590ef889bc7afe42d4feec94e1c4fbd4ddd65226 + ldbl-128ibm-compat: Add obstack printing functions + + * sysdeps/ieee754/ldbl-128ibm-compat/Makefile: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/Versions: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obprintf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-obstack_chk.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vobstack_chk.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-chk-ibm128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-chk-ieee128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-chk-ldbl-compat.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ibm128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ieee128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ldbl-compat-template.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-obstack-ldbl-compat.c: New file. + +2019-11-27 Gabriel F. T. Gomes + + COMMIT: ff3cb5accb80471df69fac2c0dded9cab794220a + ldbl-128ibm-compat: Reuse tests for err.h and error.h functions + + * sysdeps/ieee754/ldbl-128ibm-compat/Makefile: Modified. + +2019-11-27 Gabriel F. T. Gomes + + COMMIT: 9f25935dda6973292e989302752d11e720e23c0c + ldbl-128ibm-compat: Add error.h functions + + * sysdeps/ieee754/ldbl-128ibm-compat/Makefile: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/Versions: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-error.c: New file. + +2019-11-27 Gabriel F. T. Gomes + + COMMIT: a23ed314630aeb762dad274d2b446a39e26a8c0d + ldbl-128ibm-compat: Add err.h functions + + * sysdeps/ieee754/ldbl-128ibm-compat/Makefile: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/Versions: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-err.c: New file. + +2019-11-27 Gabriel F. T. Gomes + + COMMIT: 77607e7d44e255f83e4df55d55ecb52867a86f03 + ldbl-128ibm-compat: Add argp_error and argp_failure + + * sysdeps/ieee754/ldbl-128ibm-compat/Makefile: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/Versions: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-argp-help.c: New file. + +2019-11-27 Adhemerval Zanella + + COMMIT: 3b5ebe85aabfa44583a18a7ef51bc4d387e362c1 + sparc: Use atomic compiler builtins on sparc + + * sysdeps/sparc/Makefile: Modified. + * sysdeps/sparc/atomic-machine.h: New file. + * sysdeps/sparc/sparc64/cpu_relax.c: Move to... + * sysdeps/sparc/cpu_relax.c: ... here. + (__cpu_relax_generic): Remove function. + (__cpu_relax_pause): Remove function. + [__sparc_v9__](__cpu_relax_generic): New. + [__sparc_v9__](__cpu_relax_pause): New. + * sysdeps/sparc/sparc32/atomic-machine.h: Delete file. + * sysdeps/sparc/sparc32/configure: Modified. + * sysdeps/sparc/sparc32/configure.ac: Modified. + * sysdeps/sparc/sparc32/lowlevellock.c: Delete file. + * sysdeps/sparc/sparc32/pthread_barrier_wait.c: Delete file. + * sysdeps/sparc/sparc32/sem_post.c: Delete file. + * sysdeps/sparc/sparc32/sem_waitcommon.c: Delete file. + * sysdeps/sparc/sparc32/sparcv9/Makefile: Modified. + * sysdeps/sparc/sparc32/sparcv9/atomic-machine.h: Delete file. + * sysdeps/sparc/sparc32/sparcv9/cpu_relax.c: Delete file. + * sysdeps/sparc/sparc64/Makefile: Modified. + * sysdeps/sparc/sparc64/atomic-machine.h: Delete file. + * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Delete file. + +2019-11-27 Adhemerval Zanella + + COMMIT: 5d9b7b9fa734c5381e0295c85c0e40520d9f6063 + Remove 32 bit sparc v7 support + + * NEWS: Modified. + * scripts/build-many-glibcs.py: Modified. + * sysdeps/sparc/preconfigure: Modified. + * sysdeps/sparc/sparc32/Makefile: Modified. + * sysdeps/sparc/sparc32/addmul_1.S: Modified. + * sysdeps/sparc/sparc32/configure: New file. + * sysdeps/sparc/sparc32/configure.ac: New file. + * sysdeps/sparc/sparc32/divrem.m4: Delete file. + * sysdeps/sparc/sparc32/dotmul.S: Modified. + * sysdeps/sparc/sparc32/mul_1.S: Modified. + * sysdeps/sparc/sparc32/rem.S: Modified. + * sysdeps/sparc/sparc32/sdiv.S: Modified. + * sysdeps/sparc/sparc32/sparcv8/Makefile: Delete file. + * sysdeps/sparc/sparc32/sparcv8/addmul_1.S: Delete file. + * sysdeps/sparc/sparc32/sparcv8/dotmul.S: Delete file. + * sysdeps/sparc/sparc32/sparcv8/mul_1.S: Delete file. + * sysdeps/sparc/sparc32/sparcv8/rem.S: Delete file. + * sysdeps/sparc/sparc32/sparcv8/sdiv.S: Delete file. + * sysdeps/sparc/sparc32/sparcv8/submul_1.S: Delete file. + * sysdeps/sparc/sparc32/sparcv8/udiv.S: Delete file. + * sysdeps/sparc/sparc32/sparcv8/umul.S: Delete file. + * sysdeps/sparc/sparc32/sparcv8/urem.S: Delete file. + * sysdeps/sparc/sparc32/submul_1.S: Modified. + * sysdeps/sparc/sparc32/udiv.S: Modified. + * sysdeps/sparc/sparc32/umul.S: Modified. + * sysdeps/sparc/sparc32/urem.S: Modified. + +2019-11-27 Stefan Liebler + + COMMIT: bfdb731438206b0f70fe7afa890681155c30b419 + S390: Fix handling of needles crossing a page in strstr z15 ifunc-variant. [BZ #25226] + + * string/test-strstr.c: Modified. + (check2): Modified function. + * sysdeps/s390/strstr-arch13.S: Modified. + +2019-11-26 Adhemerval Zanella + + COMMIT: acfe409119f5db9429a2a2235fd2ad1242940cac + nptl: Fix __PTHREAD_MUTEX_INITIALIZER for !__PTHREAD_MUTEX_HAVE_PREV + + * sysdeps/nptl/bits/struct_mutex.h: Modified. + [__PTHREAD_MUTEX_HAVE_PREV != 1](__PTHREAD_MUTEX_INITIALIZER): Modified. + +2019-11-26 Sandra Loosemore + + COMMIT: c72e5cd87dcb075782f9b6beea024b984f2e1130 + Compile elf/rtld.c with -fno-tree-loop-distribute-patterns. + + * elf/Makefile: Modified. + +2019-11-26 Adhemerval Zanella + + COMMIT: cc0e0b097c3e2176b51c32c09a76766e890cd2d4 + hppa: Remove unrequired nptl headers + + * sysdeps/unix/sysv/linux/hppa/pthread.h: Delete file. + +2019-11-26 Adhemerval Zanella + + COMMIT: 7ddac7f265d3db6888c68b04b86e265d15859ce5 + nptl: Add default pthread-offsets.h + + * sysdeps/aarch64/nptl/pthread-offsets.h: Delete file. + * sysdeps/alpha/nptl/pthread-offsets.h: Delete file. + * sysdeps/arm/nptl/pthread-offsets.h: Delete file. + * sysdeps/csky/nptl/pthread-offsets.h: Delete file. + * sysdeps/ia64/nptl/pthread-offsets.h: Delete file. + * sysdeps/m68k/nptl/pthread-offsets.h: Delete file. + * sysdeps/microblaze/nptl/pthread-offsets.h: Delete file. + * sysdeps/nios2/nptl/pthread-offsets.h: Delete file. + * sysdeps/nptl/pthread-offsets.h: New file. + * sysdeps/riscv/nptl/pthread-offsets.h: Delete file. + * sysdeps/sh/nptl/pthread-offsets.h: Delete file. + * sysdeps/sparc/nptl/pthread-offsets.h: Delete file. + +2019-11-26 Adhemerval Zanella + + COMMIT: 94a62cc55a3175fd375081d9b4366479371ed2ab + nptl: Add default pthreadtypes-arch.h + + * sysdeps/alpha/nptl/bits/pthreadtypes-arch.h: Delete file. + * sysdeps/arm/nptl/bits/pthreadtypes-arch.h: Delete file. + * sysdeps/csky/nptl/bits/pthreadtypes-arch.h: Delete file. + * sysdeps/ia64/nptl/bits/pthreadtypes-arch.h: Delete file. + * sysdeps/microblaze/nptl/bits/pthreadtypes-arch.h: Delete file. + * sysdeps/s390/nptl/bits/pthreadtypes-arch.h: Move to... + * sysdeps/nptl/bits/pthreadtypes-arch.h: ... here. + * sysdeps/powerpc/nptl/bits/pthreadtypes-arch.h: Delete file. + * sysdeps/sh/nptl/bits/pthreadtypes-arch.h: Delete file. + * sysdeps/sparc/nptl/bits/pthreadtypes-arch.h: Delete file. + +2019-11-26 Adhemerval Zanella + + COMMIT: 7df8af43ad1cd8ce527444de50bee6f35eebe071 + nptl: Add struct_rwlock.h + + * nptl/Makefile: Modified. + * sysdeps/aarch64/nptl/bits/pthreadtypes-arch.h: Modified. + (__pthread_rwlock_arch_t): Remove. + * sysdeps/aarch64/nptl/bits/struct_rwlock.h: New file. + * sysdeps/alpha/nptl/bits/pthreadtypes-arch.h: Modified. + (__pthread_rwlock_arch_t): Remove. + * sysdeps/alpha/nptl/bits/struct_rwlock.h: New file. + * sysdeps/arm/nptl/bits/pthreadtypes-arch.h: Modified. + (__pthread_rwlock_arch_t): Remove. + * sysdeps/csky/nptl/bits/pthreadtypes-arch.h: Modified. + (__pthread_rwlock_arch_t): Remove. + * sysdeps/hppa/nptl/bits/pthreadtypes-arch.h: Modified. + (__pthread_rwlock_arch_t): Remove. + * sysdeps/hppa/nptl/bits/struct_rwlock.h: New file. + * sysdeps/ia64/nptl/bits/pthreadtypes-arch.h: Modified. + (__pthread_rwlock_arch_t): Remove. + * sysdeps/ia64/nptl/bits/struct_rwlock.h: New file. + * sysdeps/m68k/nptl/bits/pthreadtypes-arch.h: Modified. + (__pthread_rwlock_arch_t): Remove. + * sysdeps/microblaze/nptl/bits/pthreadtypes-arch.h: Modified. + (__pthread_rwlock_arch_t): Remove. + * sysdeps/mips/nptl/bits/pthreadtypes-arch.h: Modified. + (__pthread_rwlock_arch_t): Remove. + * sysdeps/mips/nptl/bits/struct_rwlock.h: New file. + * sysdeps/nios2/nptl/bits/pthreadtypes-arch.h: Modified. + (__pthread_rwlock_arch_t): Remove. + * sysdeps/nptl/bits/struct_rwlock.h: New file. + * sysdeps/nptl/bits/thread-shared-types.h: Modified. + (bits/struct_rwlock.h): Include file. + * sysdeps/nptl/pthread.h: Modified. + [__USE_UNIX98 || __USE_XOPEN2K][! __PTHREAD_RWLOCK_INT_FLAGS_SHARED][__WORDSIZE == 64](__PTHREAD_RWLOCK_INT_FLAGS_SHARED): Remove. + [__USE_UNIX98 || __USE_XOPEN2K][__USE_GNU][! __PTHREAD_RWLOCK_INT_FLAGS_SHARED][__BYTE_ORDER != __LITTLE_ENDIAN](PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Remove. + [__USE_UNIX98 || __USE_XOPEN2K][__USE_GNU][! __PTHREAD_RWLOCK_INT_FLAGS_SHARED][__BYTE_ORDER == __LITTLE_ENDIAN](PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Remove. + [__USE_UNIX98 || __USE_XOPEN2K][__USE_GNU][__PTHREAD_RWLOCK_INT_FLAGS_SHARED](PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Remove. + [__USE_UNIX98 || __USE_XOPEN2K][__USE_GNU](PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): New. + [__USE_UNIX98 || __USE_XOPEN2K](PTHREAD_RWLOCK_INITIALIZER): Modified. + * sysdeps/powerpc/nptl/bits/pthreadtypes-arch.h: Modified. + (__pthread_rwlock_arch_t): Remove. + * sysdeps/powerpc/nptl/bits/struct_rwlock.h: New file. + * sysdeps/riscv/nptl/bits/pthreadtypes-arch.h: Modified. + (__pthread_rwlock_arch_t): Remove. + * sysdeps/riscv/nptl/bits/struct_rwlock.h: New file. + * sysdeps/s390/nptl/bits/pthreadtypes-arch.h: Modified. + (__pthread_rwlock_arch_t): Remove. + * sysdeps/s390/nptl/bits/struct_rwlock.h: New file. + * sysdeps/sh/nptl/bits/pthreadtypes-arch.h: Modified. + (__pthread_rwlock_arch_t): Remove. + * sysdeps/sparc/nptl/bits/pthreadtypes-arch.h: Modified. + (__pthread_rwlock_arch_t): Remove. + * sysdeps/sparc/nptl/bits/struct_rwlock.h: New file. + * sysdeps/unix/sysv/linux/hppa/pthread.h: Modified. + [__USE_UNIX98 || __USE_XOPEN2K][! __PTHREAD_RWLOCK_INT_FLAGS_SHARED][__WORDSIZE == 64](__PTHREAD_RWLOCK_INT_FLAGS_SHARED): Remove. + [__USE_UNIX98 || __USE_XOPEN2K][__USE_GNU](PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Modified. + [__USE_UNIX98 || __USE_XOPEN2K](PTHREAD_RWLOCK_INITIALIZER): Modified. + * sysdeps/x86/nptl/bits/pthreadtypes-arch.h: Modified. + (__pthread_rwlock_arch_t): Remove. + * sysdeps/x86/nptl/bits/struct_rwlock.h: New file. + +2019-11-26 Adhemerval Zanella + + COMMIT: 1c3f9acf1f1f75faa7a28bf39af64afda93839ac + nptl: Add struct_mutex.h + + * nptl/Makefile: Modified. + * sysdeps/aarch64/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_COMPAT_PADDING_MID): Remove. + (__PTHREAD_COMPAT_PADDING_END): Remove. + (__PTHREAD_MUTEX_LOCK_ELISION): Remove. + (__PTHREAD_MUTEX_NUSERS_AFTER_KIND): Remove. + (__PTHREAD_MUTEX_USE_UNION): Remove. + * sysdeps/alpha/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_COMPAT_PADDING_MID): Remove. + (__PTHREAD_COMPAT_PADDING_END): Remove. + (__PTHREAD_MUTEX_LOCK_ELISION): Remove. + (__PTHREAD_MUTEX_NUSERS_AFTER_KIND): Remove. + (__PTHREAD_MUTEX_USE_UNION): Remove. + * sysdeps/arm/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_COMPAT_PADDING_MID): Remove. + (__PTHREAD_COMPAT_PADDING_END): Remove. + (__PTHREAD_MUTEX_LOCK_ELISION): Remove. + (__PTHREAD_MUTEX_NUSERS_AFTER_KIND): Remove. + (__PTHREAD_MUTEX_USE_UNION): Remove. + * sysdeps/csky/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_COMPAT_PADDING_MID): Remove. + (__PTHREAD_COMPAT_PADDING_END): Remove. + (__PTHREAD_MUTEX_LOCK_ELISION): Remove. + (__PTHREAD_MUTEX_NUSERS_AFTER_KIND): Remove. + (__PTHREAD_MUTEX_USE_UNION): Remove. + * sysdeps/hppa/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_COMPAT_PADDING_MID): Remove. + (__PTHREAD_COMPAT_PADDING_END): Remove. + (__PTHREAD_MUTEX_LOCK_ELISION): Remove. + (__PTHREAD_MUTEX_NUSERS_AFTER_KIND): Remove. + (__PTHREAD_MUTEX_USE_UNION): Remove. + * sysdeps/hppa/nptl/bits/struct_mutex.h: New file. + * sysdeps/ia64/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_COMPAT_PADDING_MID): Remove. + (__PTHREAD_COMPAT_PADDING_END): Remove. + (__PTHREAD_MUTEX_LOCK_ELISION): Remove. + (__PTHREAD_MUTEX_NUSERS_AFTER_KIND): Remove. + (__PTHREAD_MUTEX_USE_UNION): Remove. + * sysdeps/m68k/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_COMPAT_PADDING_MID): Remove. + (__PTHREAD_COMPAT_PADDING_END): Remove. + (__PTHREAD_MUTEX_LOCK_ELISION): Remove. + (__PTHREAD_MUTEX_NUSERS_AFTER_KIND): Remove. + (__PTHREAD_MUTEX_USE_UNION): Remove. + * sysdeps/microblaze/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_COMPAT_PADDING_MID): Remove. + (__PTHREAD_COMPAT_PADDING_END): Remove. + (__PTHREAD_MUTEX_LOCK_ELISION): Remove. + (__PTHREAD_MUTEX_NUSERS_AFTER_KIND): Remove. + (__PTHREAD_MUTEX_USE_UNION): Remove. + * sysdeps/mips/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_COMPAT_PADDING_MID): Remove. + (__PTHREAD_COMPAT_PADDING_END): Remove. + (__PTHREAD_MUTEX_LOCK_ELISION): Remove. + (__PTHREAD_MUTEX_NUSERS_AFTER_KIND): Remove. + (__PTHREAD_MUTEX_USE_UNION): Remove. + * sysdeps/mips/nptl/bits/struct_mutex.h: New file. + * sysdeps/nios2/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_COMPAT_PADDING_MID): Remove. + (__PTHREAD_COMPAT_PADDING_END): Remove. + (__PTHREAD_MUTEX_LOCK_ELISION): Remove. + (__PTHREAD_MUTEX_NUSERS_AFTER_KIND): Remove. + (__PTHREAD_MUTEX_USE_UNION): Remove. + * sysdeps/nptl/bits/struct_mutex.h: New file. + * sysdeps/nptl/bits/thread-shared-types.h: Modified. + [! __PTHREAD_MUTEX_LOCK_ELISION](__PTHREAD_SPINS_DATA): Remove. + [! __PTHREAD_MUTEX_LOCK_ELISION](__PTHREAD_SPINS): Remove. + [!__PTHREAD_MUTEX_USE_UNION](__pthread_internal_list): Remove. + [__PTHREAD_MUTEX_LOCK_ELISION][!__PTHREAD_MUTEX_USE_UNION](__PTHREAD_SPINS_DATA): Remove. + [__PTHREAD_MUTEX_LOCK_ELISION][!__PTHREAD_MUTEX_USE_UNION](__PTHREAD_SPINS): Remove. + [__PTHREAD_MUTEX_LOCK_ELISION][__PTHREAD_MUTEX_USE_UNION](__PTHREAD_SPINS_DATA): Remove. + [__PTHREAD_MUTEX_LOCK_ELISION][__PTHREAD_MUTEX_USE_UNION](__PTHREAD_SPINS): Remove. + [__PTHREAD_MUTEX_LOCK_ELISION][__PTHREAD_MUTEX_USE_UNION](__spins): Remove. + [__PTHREAD_MUTEX_LOCK_ELISION][__PTHREAD_MUTEX_USE_UNION](__elision): Remove. + [__PTHREAD_MUTEX_USE_UNION](__pthread_internal_slist): Remove. + (__pthread_mutex_s): Remove. + (__pthread_internal_list): New. + (__pthread_internal_slist): New. + (bits/struct_mutex.h): Include file. + * sysdeps/nptl/pthread.h: Modified. + [! __PTHREAD_MUTEX_HAVE_PREV][__USE_GNU](PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): Remove. + [! __PTHREAD_MUTEX_HAVE_PREV][__USE_GNU](PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Remove. + [! __PTHREAD_MUTEX_HAVE_PREV][__USE_GNU](PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Remove. + [! __PTHREAD_MUTEX_HAVE_PREV](PTHREAD_MUTEX_INITIALIZER): Remove. + [__PTHREAD_MUTEX_HAVE_PREV][__USE_GNU](PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): Remove. + [__PTHREAD_MUTEX_HAVE_PREV][__USE_GNU](PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Remove. + [__PTHREAD_MUTEX_HAVE_PREV][__USE_GNU](PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Remove. + [__PTHREAD_MUTEX_HAVE_PREV](PTHREAD_MUTEX_INITIALIZER): Remove. + [__USE_GNU](PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): New. + [__USE_GNU](PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): New. + [__USE_GNU](PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): New. + (PTHREAD_MUTEX_INITIALIZER): New. + * sysdeps/powerpc/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_COMPAT_PADDING_MID): Remove. + (__PTHREAD_COMPAT_PADDING_END): Remove. + (__PTHREAD_MUTEX_LOCK_ELISION): Remove. + (__PTHREAD_MUTEX_NUSERS_AFTER_KIND): Remove. + (__PTHREAD_MUTEX_USE_UNION): Remove. + * sysdeps/powerpc/nptl/bits/struct_mutex.h: New file. + * sysdeps/riscv/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_COMPAT_PADDING_MID): Remove. + (__PTHREAD_COMPAT_PADDING_END): Remove. + (__PTHREAD_MUTEX_LOCK_ELISION): Remove. + (__PTHREAD_MUTEX_USE_UNION): Remove. + (__PTHREAD_MUTEX_NUSERS_AFTER_KIND): Remove. + * sysdeps/s390/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_COMPAT_PADDING_MID): Remove. + (__PTHREAD_COMPAT_PADDING_END): Remove. + (__PTHREAD_MUTEX_LOCK_ELISION): Remove. + (__PTHREAD_MUTEX_NUSERS_AFTER_KIND): Remove. + (__PTHREAD_MUTEX_USE_UNION): Remove. + * sysdeps/s390/nptl/bits/struct_mutex.h: New file. + * sysdeps/sh/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_COMPAT_PADDING_MID): Remove. + (__PTHREAD_COMPAT_PADDING_END): Remove. + (__PTHREAD_MUTEX_LOCK_ELISION): Remove. + (__PTHREAD_MUTEX_NUSERS_AFTER_KIND): Remove. + (__PTHREAD_MUTEX_USE_UNION): Remove. + * sysdeps/sparc/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_COMPAT_PADDING_MID): Remove. + (__PTHREAD_COMPAT_PADDING_END): Remove. + (__PTHREAD_MUTEX_LOCK_ELISION): Remove. + (__PTHREAD_MUTEX_NUSERS_AFTER_KIND): Remove. + (__PTHREAD_MUTEX_USE_UNION): Remove. + * sysdeps/unix/sysv/linux/hppa/pthread.h: Modified. + [__USE_GNU](PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): Modified. + [__USE_GNU](PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Modified. + [__USE_GNU](PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Modified. + (PTHREAD_MUTEX_INITIALIZER): Modified. + * sysdeps/x86/nptl/bits/pthreadtypes-arch.h: Modified. + [! __x86_64__](__PTHREAD_MUTEX_NUSERS_AFTER_KIND): Remove. + [! __x86_64__](__PTHREAD_MUTEX_USE_UNION): Remove. + [__x86_64__](__PTHREAD_MUTEX_NUSERS_AFTER_KIND): Remove. + [__x86_64__](__PTHREAD_MUTEX_USE_UNION): Remove. + (__PTHREAD_COMPAT_PADDING_MID): Remove. + (__PTHREAD_COMPAT_PADDING_END): Remove. + (__PTHREAD_MUTEX_LOCK_ELISION): Remove. + * sysdeps/x86/nptl/bits/struct_mutex.h: New file. + +2019-11-26 Adhemerval Zanella + + COMMIT: 0377a7fde6dfcc078dda29a1225d7720a0931357 + nptl: Remove rwlock elision definitions + + * sysdeps/aarch64/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_RWLOCK_ELISION_EXTRA): Remove. + * sysdeps/alpha/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_RWLOCK_ELISION_EXTRA): Remove. + * sysdeps/arm/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_RWLOCK_ELISION_EXTRA): Remove. + * sysdeps/csky/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_RWLOCK_ELISION_EXTRA): Remove. + * sysdeps/hppa/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_RWLOCK_ELISION_EXTRA): Remove. + * sysdeps/ia64/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_RWLOCK_ELISION_EXTRA): Remove. + * sysdeps/m68k/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_RWLOCK_ELISION_EXTRA): Remove. + * sysdeps/microblaze/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_RWLOCK_ELISION_EXTRA): Remove. + * sysdeps/mips/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_RWLOCK_ELISION_EXTRA): Remove. + * sysdeps/nios2/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_RWLOCK_ELISION_EXTRA): Remove. + * sysdeps/nptl/pthread.h: Modified. + [__USE_UNIX98 || __USE_XOPEN2K][__USE_GNU][! __PTHREAD_RWLOCK_INT_FLAGS_SHARED][__BYTE_ORDER == __LITTLE_ENDIAN](PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Modified. + [__USE_UNIX98 || __USE_XOPEN2K][__USE_GNU][__PTHREAD_RWLOCK_INT_FLAGS_SHARED](PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Modified. + [__USE_UNIX98 || __USE_XOPEN2K](PTHREAD_RWLOCK_INITIALIZER): Modified. + * sysdeps/powerpc/nptl/bits/pthreadtypes-arch.h: Modified. + (__pthread_rwlock_arch_t): Modified. + * sysdeps/riscv/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_RWLOCK_ELISION_EXTRA): Remove. + * sysdeps/s390/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_RWLOCK_ELISION_EXTRA): Remove. + * sysdeps/sh/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_RWLOCK_ELISION_EXTRA): Remove. + * sysdeps/sparc/nptl/bits/pthreadtypes-arch.h: Modified. + (__PTHREAD_RWLOCK_ELISION_EXTRA): Remove. + * sysdeps/x86/nptl/bits/pthreadtypes-arch.h: Modified. + (__pthread_rwlock_arch_t): Modified. + +2019-11-26 Adhemerval Zanella + + COMMIT: 48dbce60cfdd328b671aaa9ee0c54ded3246ece9 + nptl: Add tests for internal pthread_rwlock_t offsets + + * nptl/pthread_rwlock_init.c: Modified. + (__pthread_rwlock_init): Modified function. + (pthread-offsets.h): Include file. + * sysdeps/aarch64/nptl/pthread-offsets.h: Modified. + (__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + * sysdeps/alpha/nptl/pthread-offsets.h: Modified. + (__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + * sysdeps/arm/nptl/pthread-offsets.h: Modified. + [__BYTE_ORDER != __BIG_ENDIAN](__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + [__BYTE_ORDER == __BIG_ENDIAN](__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + * sysdeps/csky/nptl/pthread-offsets.h: Modified. + (__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + * sysdeps/hppa/nptl/pthread-offsets.h: Modified. + (__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + * sysdeps/i386/nptl/pthread-offsets.h: Modified. + (__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + * sysdeps/ia64/nptl/pthread-offsets.h: Modified. + (__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + * sysdeps/m68k/nptl/pthread-offsets.h: Modified. + (__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + * sysdeps/microblaze/nptl/pthread-offsets.h: Modified. + [__BYTE_ORDER != __BIG_ENDIAN](__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + [__BYTE_ORDER == __BIG_ENDIAN](__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + * sysdeps/mips/nptl/pthread-offsets.h: Modified. + [_MIPS_SIM != _ABI64][__BYTE_ORDER != __BIG_ENDIAN](__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + [_MIPS_SIM != _ABI64][__BYTE_ORDER == __BIG_ENDIAN](__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + [_MIPS_SIM == _ABI64](__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + * sysdeps/nios2/nptl/pthread-offsets.h: Modified. + (__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + * sysdeps/powerpc/nptl/pthread-offsets.h: Modified. + [__WORDSIZE != 64](__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + [__WORDSIZE == 64](__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + * sysdeps/riscv/nptl/pthread-offsets.h: Modified. + (__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + * sysdeps/s390/nptl/pthread-offsets.h: Modified. + [__WORDSIZE != 64](__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + [__WORDSIZE == 64](__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + * sysdeps/sh/nptl/pthread-offsets.h: Modified. + [__BYTE_ORDER != __BIG_ENDIAN](__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + [__BYTE_ORDER == __BIG_ENDIAN](__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + * sysdeps/sparc/nptl/pthread-offsets.h: Modified. + [__WORDSIZE != 64](__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + [__WORDSIZE == 64](__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + * sysdeps/x86_64/nptl/pthread-offsets.h: Modified. + [! __ILP32__](__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + [__ILP32__](__PTHREAD_RWLOCK_FLAGS_OFFSET): New. + +2019-11-26 Adhemerval Zanella + + COMMIT: 71d260c1077ce7ab1530809fc826756bdcd032b0 + nptl: Cleanup mutex internal offset tests + + * nptl/pthreadP.h: Modified. + (ASSERT_PTHREAD_INTERNAL_MEMBER_SIZE): New. + * nptl/pthread_mutex_init.c: Modified. + (__pthread_mutex_init): Modified function. + * sysdeps/aarch64/nptl/pthread-offsets.h: Modified. + (__PTHREAD_MUTEX_NUSERS_OFFSET): Remove. + (__PTHREAD_MUTEX_SPINS_OFFSET): Remove. + (__PTHREAD_MUTEX_ELISION_OFFSET): Remove. + (__PTHREAD_MUTEX_LIST_OFFSET): Remove. + * sysdeps/alpha/nptl/pthread-offsets.h: Modified. + (__PTHREAD_MUTEX_NUSERS_OFFSET): Remove. + (__PTHREAD_MUTEX_SPINS_OFFSET): Remove. + (__PTHREAD_MUTEX_ELISION_OFFSET): Remove. + (__PTHREAD_MUTEX_LIST_OFFSET): Remove. + * sysdeps/arm/nptl/pthread-offsets.h: Modified. + (__PTHREAD_MUTEX_NUSERS_OFFSET): Remove. + (__PTHREAD_MUTEX_SPINS_OFFSET): Remove. + (__PTHREAD_MUTEX_ELISION_OFFSET): Remove. + (__PTHREAD_MUTEX_LIST_OFFSET): Remove. + * sysdeps/csky/nptl/pthread-offsets.h: Modified. + (__PTHREAD_MUTEX_NUSERS_OFFSET): Remove. + (__PTHREAD_MUTEX_SPINS_OFFSET): Remove. + (__PTHREAD_MUTEX_ELISION_OFFSET): Remove. + (__PTHREAD_MUTEX_LIST_OFFSET): Remove. + * sysdeps/hppa/nptl/pthread-offsets.h: Modified. + (__PTHREAD_MUTEX_NUSERS_OFFSET): Remove. + (__PTHREAD_MUTEX_SPINS_OFFSET): Remove. + (__PTHREAD_MUTEX_ELISION_OFFSET): Remove. + (__PTHREAD_MUTEX_LIST_OFFSET): Remove. + * sysdeps/i386/nptl/pthread-offsets.h: Modified. + (__PTHREAD_MUTEX_NUSERS_OFFSET): Remove. + (__PTHREAD_MUTEX_SPINS_OFFSET): Remove. + (__PTHREAD_MUTEX_ELISION_OFFSET): Remove. + (__PTHREAD_MUTEX_LIST_OFFSET): Remove. + * sysdeps/ia64/nptl/pthread-offsets.h: Modified. + (__PTHREAD_MUTEX_NUSERS_OFFSET): Remove. + (__PTHREAD_MUTEX_SPINS_OFFSET): Remove. + (__PTHREAD_MUTEX_ELISION_OFFSET): Remove. + (__PTHREAD_MUTEX_LIST_OFFSET): Remove. + * sysdeps/m68k/nptl/pthread-offsets.h: Modified. + (__PTHREAD_MUTEX_NUSERS_OFFSET): Remove. + (__PTHREAD_MUTEX_SPINS_OFFSET): Remove. + (__PTHREAD_MUTEX_ELISION_OFFSET): Remove. + (__PTHREAD_MUTEX_LIST_OFFSET): Remove. + * sysdeps/microblaze/nptl/pthread-offsets.h: Modified. + (__PTHREAD_MUTEX_NUSERS_OFFSET): Remove. + (__PTHREAD_MUTEX_SPINS_OFFSET): Remove. + (__PTHREAD_MUTEX_ELISION_OFFSET): Remove. + (__PTHREAD_MUTEX_LIST_OFFSET): Remove. + * sysdeps/mips/nptl/pthread-offsets.h: Modified. + [_MIPS_SIM != _ABI64](__PTHREAD_MUTEX_NUSERS_OFFSET): Remove. + [_MIPS_SIM != _ABI64](__PTHREAD_MUTEX_SPINS_OFFSET): Remove. + [_MIPS_SIM != _ABI64](__PTHREAD_MUTEX_ELISION_OFFSET): Remove. + [_MIPS_SIM != _ABI64](__PTHREAD_MUTEX_LIST_OFFSET): Remove. + [_MIPS_SIM == _ABI64](__PTHREAD_MUTEX_NUSERS_OFFSET): Remove. + [_MIPS_SIM == _ABI64](__PTHREAD_MUTEX_SPINS_OFFSET): Remove. + [_MIPS_SIM == _ABI64](__PTHREAD_MUTEX_ELISION_OFFSET): Remove. + [_MIPS_SIM == _ABI64](__PTHREAD_MUTEX_LIST_OFFSET): Remove. + * sysdeps/nios2/nptl/pthread-offsets.h: Modified. + (__PTHREAD_MUTEX_NUSERS_OFFSET): Remove. + (__PTHREAD_MUTEX_SPINS_OFFSET): Remove. + (__PTHREAD_MUTEX_ELISION_OFFSET): Remove. + (__PTHREAD_MUTEX_LIST_OFFSET): Remove. + * sysdeps/powerpc/nptl/pthread-offsets.h: Modified. + [__WORDSIZE != 64](__PTHREAD_MUTEX_NUSERS_OFFSET): Remove. + [__WORDSIZE != 64](__PTHREAD_MUTEX_SPINS_OFFSET): Remove. + [__WORDSIZE != 64](__PTHREAD_MUTEX_ELISION_OFFSET): Remove. + [__WORDSIZE != 64](__PTHREAD_MUTEX_LIST_OFFSET): Remove. + [__WORDSIZE == 64](__PTHREAD_MUTEX_NUSERS_OFFSET): Remove. + [__WORDSIZE == 64](__PTHREAD_MUTEX_SPINS_OFFSET): Remove. + [__WORDSIZE == 64](__PTHREAD_MUTEX_ELISION_OFFSET): Remove. + [__WORDSIZE == 64](__PTHREAD_MUTEX_LIST_OFFSET): Remove. + * sysdeps/riscv/nptl/pthread-offsets.h: Modified. + (__PTHREAD_MUTEX_NUSERS_OFFSET): Remove. + (__PTHREAD_MUTEX_SPINS_OFFSET): Remove. + (__PTHREAD_MUTEX_ELISION_OFFSET): Remove. + (__PTHREAD_MUTEX_LIST_OFFSET): Remove. + * sysdeps/s390/nptl/pthread-offsets.h: Modified. + [__WORDSIZE != 64](__PTHREAD_MUTEX_NUSERS_OFFSET): Remove. + [__WORDSIZE != 64](__PTHREAD_MUTEX_SPINS_OFFSET): Remove. + [__WORDSIZE != 64](__PTHREAD_MUTEX_ELISION_OFFSET): Remove. + [__WORDSIZE != 64](__PTHREAD_MUTEX_LIST_OFFSET): Remove. + [__WORDSIZE == 64](__PTHREAD_MUTEX_NUSERS_OFFSET): Remove. + [__WORDSIZE == 64](__PTHREAD_MUTEX_SPINS_OFFSET): Remove. + [__WORDSIZE == 64](__PTHREAD_MUTEX_ELISION_OFFSET): Remove. + [__WORDSIZE == 64](__PTHREAD_MUTEX_LIST_OFFSET): Remove. + * sysdeps/sh/nptl/pthread-offsets.h: Modified. + (__PTHREAD_MUTEX_NUSERS_OFFSET): Remove. + (__PTHREAD_MUTEX_SPINS_OFFSET): Remove. + (__PTHREAD_MUTEX_ELISION_OFFSET): Remove. + (__PTHREAD_MUTEX_LIST_OFFSET): Remove. + * sysdeps/sparc/nptl/pthread-offsets.h: Modified. + [__WORDSIZE != 64](__PTHREAD_MUTEX_NUSERS_OFFSET): Remove. + [__WORDSIZE != 64](__PTHREAD_MUTEX_SPINS_OFFSET): Remove. + [__WORDSIZE != 64](__PTHREAD_MUTEX_ELISION_OFFSET): Remove. + [__WORDSIZE != 64](__PTHREAD_MUTEX_LIST_OFFSET): Remove. + [__WORDSIZE == 64](__PTHREAD_MUTEX_NUSERS_OFFSET): Remove. + [__WORDSIZE == 64](__PTHREAD_MUTEX_SPINS_OFFSET): Remove. + [__WORDSIZE == 64](__PTHREAD_MUTEX_ELISION_OFFSET): Remove. + [__WORDSIZE == 64](__PTHREAD_MUTEX_LIST_OFFSET): Remove. + * sysdeps/x86_64/nptl/pthread-offsets.h: Modified. + (__PTHREAD_MUTEX_NUSERS_OFFSET): Remove. + (__PTHREAD_MUTEX_SPINS_OFFSET): Remove. + (__PTHREAD_MUTEX_ELISION_OFFSET): Remove. + (__PTHREAD_MUTEX_LIST_OFFSET): Remove. + +2019-11-26 Egor Kobylkin + + COMMIT: 7fc8c286e31a336caa008a8bcfb00aac1e47cdc8 + locale: Greek -> ASCII transliteration table [BZ #12031] + + * locale/C-translit.h.in: Modified. + +2019-11-26 Rafał Lużyński + + COMMIT: c372d2e863075cbc4b24141743026954b6e2457e + ru_UA locale: use copy "ru_RU" in LC_TIME (bug 25044) + + * localedata/locales/ru_UA: Modified. + +2019-11-26 Tim Rühsen + + COMMIT: c1de872c8cdfadb077b4c0a04b1a4bd8c18f3894 + sysdeps/posix/getaddrinfo: Return early on invalid address family + + * sysdeps/posix/getaddrinfo.c: Modified. + (getaddrinfo): Modified function. + +2019-11-26 Tim Rühsen + + COMMIT: cceb038ac0ea552d5eb81759572a358179fa0fc1 + sysdeps/posix: Simplify if expression in getaddrinfo + + * sysdeps/posix/getaddrinfo.c: Modified. + (getaddrinfo): Modified function. + +2019-11-26 Joseph Myers + + COMMIT: 17832eefeeafbd448c9e721819a7490f33b0f009 + Use Linux 5.4 in build-many-glibcs.py. + + * scripts/build-many-glibcs.py: Modified. + +2019-11-25 Adhemerval Zanella + + COMMIT: d9202f1883e86f12b7a371035867be455da09907 + arm: Fix armv7 selection after 'Split BE/LE abilist' + + * sysdeps/arm/be/armv7/multiarch/Implies: New file. + * sysdeps/arm/le/armv6/Implies: New file. + * sysdeps/arm/le/armv6t2/Implies: New file. + * sysdeps/arm/le/armv7/Implies: New file. + * sysdeps/arm/le/armv7/multiarch/Implies: New file. + +2019-11-22 Gabriel F. T. Gomes + + COMMIT: b370c5f014031b2d06bc54a6436e31b46ed0bf43 + ldbl-128ibm-compat: Add wide character scanning functions + + * sysdeps/ieee754/ldbl-128ibm-compat/Makefile: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/Versions: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wscanf-ibm128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wscanf-ieee128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wscanf-ldbl-compat.c: New file. + +2019-11-22 Gabriel F. T. Gomes + + COMMIT: a5b15bdec8015bac998f727d97667acfb17e90c0 + ldbl-128ibm-compat: Add regular character scanning functions + + * sysdeps/ieee754/ldbl-128ibm-compat/Makefile: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/Versions: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-scanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsscanf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ibm128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ieee128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat-template.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-scanf-ldbl-compat.sh: New file. + +2019-11-22 Gabriel F. T. Gomes + + COMMIT: c2f959ed5f244dd4130bcbaab53e0f3ffc49831e + ldbl-128ibm-compat: Test positional arguments + + * sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c: Modified. + (do_test_call): Modified function. + (do_test): Modified function. + * sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c: Modified. + (do_test_call): Modified function. + (do_test): Modified function. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ldbl-compat.c: Modified. + (do_test_call): Modified function. + (do_test): Modified function. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ldbl-compat.c: Modified. + (do_test_call): Modified function. + (do_test): Modified function. + +2019-11-22 Gabriel F. T. Gomes + + COMMIT: 5bbbd5ae057c8f862e65d9a230bccb2364f48f96 + ldbl-128ibm-compat: Test double values + + * sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c: Modified. + (do_test_call_rarg): Modified function. + (do_test_call): Modified function. + (do_test): Modified function. + * sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c: Modified. + (do_test_call_rarg): Modified function. + (do_test_call): Modified function. + (do_test): Modified function. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ldbl-compat.c: Modified. + (do_test_call_rarg): Modified function. + (do_test_call): Modified function. + (do_test): Modified function. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ldbl-compat.c: Modified. + (do_test_call_rarg): Modified function. + (do_test_call): Modified function. + (do_test): Modified function. + +2019-11-22 Gabriel F. T. Gomes + + COMMIT: 329037cead5f7930c6081d130b22e03b0ff5e3a8 + ldbl-128ibm-compat: Add wide character, fortified printing functions + + * sysdeps/ieee754/ldbl-128ibm-compat/Makefile: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/Versions: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf_chk.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf_chk.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf_chk.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf_chk.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf_chk.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf_chk.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ibm128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ieee128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-ldbl-compat.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-redir-ibm128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-chk-redir-ieee128.c: New file. + +2019-11-22 Gabriel F. T. Gomes + + COMMIT: 5aa64dbc298c3ba0dfbeae984bc0915e41464e00 + ldbl-128ibm-compat: Add regular character, fortified printing functions + + * sysdeps/ieee754/ldbl-128ibm-compat/Makefile: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/Versions: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf_chk.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf_chk.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf_chk.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf_chk.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf_chk.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf_chk.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf_chk.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf_chk.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf_chk.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf_chk.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf_chk.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf_chk.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ibm128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ieee128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-redir-ibm128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-redir-ieee128.c: New file. + +2019-11-22 Gabriel F. T. Gomes + + COMMIT: 1771a5cf0eb58b44adcd3d3fba12c4781a5015af + ldbl-128ibm-compat: Add wide character printing functions + + * sysdeps/ieee754/ldbl-128ibm-compat/Makefile: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/Versions: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fwprintf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-swprintf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfwprintf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vswprintf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vwprintf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-wprintf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ibm128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ieee128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-wprintf-ldbl-compat.c: New file. + +2019-11-22 Gabriel F. T. Gomes + + COMMIT: 421a1d34bffab52263706b6332333e45fc10ab2f + ldbl-128ibm-compat: Add regular character printing functions + + * sysdeps/ieee754/ldbl-128ibm-compat/Makefile: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/Versions: Modified. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-asprintf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-dprintf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-fprintf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-printf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-snprintf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-sprintf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vasprintf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vdprintf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vfprintf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vprintf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsnprintf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vsprintf.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ibm128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ieee128.c: New file. + * sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c: New file. + +2019-11-22 Gabriel F. T. Gomes + Zack Weinberg + + COMMIT: 93486ba583ecef1ba17357cfeb658ce3bea583bd + Use DEPRECATED_SCANF macro for remaining C99-compliant scanf functions + + * include/wchar.h: Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](__vswscanf): Remove. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Remove. + [! _ISOMAC](libc_hidden_proto): Remove. + * libio/iovswscanf.c: Modified. + (libc_hidden_def): Remove. + * wcsmbs/wchar.h: Modified. + [__USE_ISOC99][! __USE_GNU && (! __LDBL_COMPAT || ! __REDIRECT) && ( __STRICT_ANSI__ || __USE_XOPEN2K)][! __REDIRECT](__isoc99_vfwscanf): Remove. + [__USE_ISOC99][! __USE_GNU && (! __LDBL_COMPAT || ! __REDIRECT) && ( __STRICT_ANSI__ || __USE_XOPEN2K)][! __REDIRECT](__isoc99_vwscanf): Remove. + [__USE_ISOC99][! __USE_GNU && (! __LDBL_COMPAT || ! __REDIRECT) && ( __STRICT_ANSI__ || __USE_XOPEN2K)][! __REDIRECT](__isoc99_vswscanf): Remove. + [__USE_ISOC99][! __USE_GNU && (! __LDBL_COMPAT || ! __REDIRECT) && ( __STRICT_ANSI__ || __USE_XOPEN2K)][! __REDIRECT](vfwscanf): Remove. + [__USE_ISOC99][! __USE_GNU && (! __LDBL_COMPAT || ! __REDIRECT) && ( __STRICT_ANSI__ || __USE_XOPEN2K)][! __REDIRECT](vwscanf): Remove. + [__USE_ISOC99][! __USE_GNU && (! __LDBL_COMPAT || ! __REDIRECT) && ( __STRICT_ANSI__ || __USE_XOPEN2K)][! __REDIRECT](vswscanf): Remove. + [__USE_ISOC99][! __USE_GNU && (! __LDBL_COMPAT || ! __REDIRECT) && ( __STRICT_ANSI__ || __USE_XOPEN2K)][__REDIRECT](__REDIRECT): Remove. + [__USE_ISOC99][! __USE_GNU && (! __LDBL_COMPAT || ! __REDIRECT) && ( __STRICT_ANSI__ || __USE_XOPEN2K)][__REDIRECT](__REDIRECT): Remove. + [__USE_ISOC99][! __USE_GNU && (! __LDBL_COMPAT || ! __REDIRECT) && ( __STRICT_ANSI__ || __USE_XOPEN2K)][__REDIRECT](__REDIRECT_NTH): Remove. + [__USE_ISOC99][!__GLIBC_USE (DEPRECATED_SCANF) && (! __LDBL_COMPAT || ! __REDIRECT) && ( __STRICT_ANSI__ || __USE_XOPEN2K)][! __REDIRECT](__isoc99_vfwscanf): New. + [__USE_ISOC99][!__GLIBC_USE (DEPRECATED_SCANF) && (! __LDBL_COMPAT || ! __REDIRECT) && ( __STRICT_ANSI__ || __USE_XOPEN2K)][! __REDIRECT](__isoc99_vwscanf): New. + [__USE_ISOC99][!__GLIBC_USE (DEPRECATED_SCANF) && (! __LDBL_COMPAT || ! __REDIRECT) && ( __STRICT_ANSI__ || __USE_XOPEN2K)][! __REDIRECT](__isoc99_vswscanf): New. + [__USE_ISOC99][!__GLIBC_USE (DEPRECATED_SCANF) && (! __LDBL_COMPAT || ! __REDIRECT) && ( __STRICT_ANSI__ || __USE_XOPEN2K)][! __REDIRECT](vfwscanf): New. + [__USE_ISOC99][!__GLIBC_USE (DEPRECATED_SCANF) && (! __LDBL_COMPAT || ! __REDIRECT) && ( __STRICT_ANSI__ || __USE_XOPEN2K)][! __REDIRECT](vwscanf): New. + [__USE_ISOC99][!__GLIBC_USE (DEPRECATED_SCANF) && (! __LDBL_COMPAT || ! __REDIRECT) && ( __STRICT_ANSI__ || __USE_XOPEN2K)][! __REDIRECT](vswscanf): New. + [__USE_ISOC99][!__GLIBC_USE (DEPRECATED_SCANF) && (! __LDBL_COMPAT || ! __REDIRECT) && ( __STRICT_ANSI__ || __USE_XOPEN2K)][__REDIRECT](__REDIRECT): New. + [__USE_ISOC99][!__GLIBC_USE (DEPRECATED_SCANF) && (! __LDBL_COMPAT || ! __REDIRECT) && ( __STRICT_ANSI__ || __USE_XOPEN2K)][__REDIRECT](__REDIRECT): New. + [__USE_ISOC99][!__GLIBC_USE (DEPRECATED_SCANF) && (! __LDBL_COMPAT || ! __REDIRECT) && ( __STRICT_ANSI__ || __USE_XOPEN2K)][__REDIRECT](__REDIRECT_NTH): New. + +2019-11-22 Adhemerval Zanella + + COMMIT: 8781c1301d55db0a95398eb24c11b99205706bae + misc: Set generic pselect as ENOSYS + + * misc/pselect.c: Modified. + [! __pselect](weak_alias): Remove. + (signal.h): Remove include. + (stddef.h): Remove include. + (sys/time.h): Remove include. + (sysdep-cancel.h): Remove include. + (__pselect): Modified function. + (weak_alias): New. + * sysdeps/unix/sysv/linux/microblaze/pselect.c: New file. + * sysdeps/unix/sysv/linux/pselect.c: Modified. + [! __ASSUME_PSELECT](misc/pselect.c): Remove. + [__NR_pselect6][! __ASSUME_PSELECT](__generic_pselect): Remove. + [__NR_pselect6][! __ASSUME_PSELECT](__pselect): Remove. + [__NR_pselect6](__pselect): Remove. + [__NR_pselect6](weak_alias): Remove. + (errno.h): Remove include. + (signal.h): Remove include. + (time.h): Remove include. + (sys/poll.h): Remove include. + (kernel-features.h): Remove include. + [! __pselect](weak_alias): New. + (sys/select.h): Include file. + (__pselect): New function. + +2019-11-22 Paul A. Clarke + + COMMIT: 102b5b0cafaf09758a62f62a53fafb6db2f71136 + Remove duplicate inline implementation of issignalingf + + * sysdeps/ieee754/flt-32/e_powf.c: Modified. + (__powf): Modified function. + * sysdeps/ieee754/flt-32/math_config.h: Modified. + (issignalingf_inline): Remove function. + +2019-11-21 Emilio Cobos Álvarez + + COMMIT: bfa864e1645e140da2e1aae3cf0d0ba0674f6eb5 + Don't use a custom wrapper macro around __has_include (bug 25189). + + * misc/sys/cdefs.h: Modified. + [! __has_include](__glibc_has_include): Remove. + [__has_include](__glibc_has_include): Remove. + * sysdeps/unix/sysv/linux/bits/statx.h: Modified. + [__glibc_has_include ("linux/stat.h")][STATX_TYPE](__statx_timestamp_defined): Remove. + [__glibc_has_include ("linux/stat.h")][STATX_TYPE](__statx_defined): Remove. + [__glibc_has_include ("linux/stat.h")](linux/stat.h): Remove. + [__has_include][__has_include ("linux/stat.h")][STATX_TYPE](__statx_timestamp_defined): New. + [__has_include][__has_include ("linux/stat.h")][STATX_TYPE](__statx_defined): New. + [__has_include][__has_include ("linux/stat.h")](linux/stat.h): New. + +2019-11-21 Paul A. Clarke + + COMMIT: 854e91bf6b4221f424ffa13b9ef50f35623b7b74 + Enable inlining issignalingf within glibc + + * include/math.h: Modified. + [! _ISOMAC][! GET_FLOAT_WORD](GET_FLOAT_WORD): New. + [! _ISOMAC][! SET_FLOAT_WORD](SET_FLOAT_WORD): New. + [! _ISOMAC](stdint.h): Include file. + [! _ISOMAC](nan-high-order-bit.h): Include file. + [! _ISOMAC](ieee_float_shape_type): New. + [! _ISOMAC](__issignalingf): New function. + * sysdeps/generic/math_private.h: Modified. + [! GET_FLOAT_WORD](GET_FLOAT_WORD): Remove. + [! SET_FLOAT_WORD](SET_FLOAT_WORD): Remove. + (ieee_float_shape_type): Remove. + +2019-11-21 Florian Weimer + + COMMIT: fcb04b9aed26a737159ef7be9c5a6ad0994437dc + Introduce DL_LOOKUP_FOR_RELOCATE flag for _dl_lookup_symbol_x + + * elf/dl-reloc.c: Modified. + (_dl_relocate_object): Modified function. + * sysdeps/generic/ldsodefs.h: Modified. + [IS_IN (rtld)](): Modified. + +2019-11-21 Marcin Kościelnicki + + COMMIT: d5dfad4326fc683c813df1e37bbf5cf920591c8e + rtld: Check __libc_enable_secure before honoring LD_PREFER_MAP_32BIT_EXEC (CVE-2019-19126) [BZ #25204] + + * NEWS: Modified. + * sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h: Modified. + (EXTRA_LD_ENVVARS): Modified. + +2019-11-16 Florian Weimer + + COMMIT: 2a764c6ee848dfe92cb2921ed3b14085f15d9e79 + Enhance _dl_catch_exception to allow disabling exception handling + + * elf/dl-error-skeleton.c: Modified. + (_dl_catch_exception): Modified function. + * sysdeps/generic/ldsodefs.h: Modified. + +2019-11-16 Florian Weimer + + COMMIT: 84df7a4637be8ecb545df3501cc724f3a4d53c46 + hurd: Suppress GCC 10 -Warray-bounds warning in init-first.c [BZ #25097] + + * sysdeps/mach/hurd/i386/init-first.c: Modified. + (init): Modified function. + (libc-diag.h): Include file. + +2019-11-15 Florian Weimer + + COMMIT: 9e3e27c4e32c02e93d9779e41356adfb357957e3 + linux: Add comment on affinity set sizes to tst-skeleton-affinity.c + + * sysdeps/unix/sysv/linux/tst-skeleton-affinity.c: Modified. + +2019-11-15 Florian Weimer + + COMMIT: e21a7867713c87d0b0698254685d414d811d72b2 + Avoid zero-length array at the end of struct link_map [BZ #25097] + + * include/link.h: Modified. + [! _ISOMAC](link_map): Modified. + [! _ISOMAC](auditstate): New. + * sysdeps/generic/ldsodefs.h: Modified. + [IS_IN (rtld)][SHARED](link_map_audit_state): Modified function. + [SHARED](rtld_global): Modified. + +2019-11-15 Florian Weimer + + COMMIT: e1d559f337de2c8ab68a6749dfe873477c883807 + Introduce link_map_audit_state accessor function + + * csu/libc-start.c: Modified. + [! LIBC_START_MAIN_AUXVEC_ARG](LIBC_START_MAIN): Modified function. + [LIBC_START_MAIN_AUXVEC_ARG](LIBC_START_MAIN): Modified function. + * elf/dl-close.c: Modified. + (_dl_close_worker): Modified function. + * elf/dl-fini.c: Modified. + (_dl_fini): Modified function. + * elf/dl-load.c: Modified. + [! EXTERNAL_MAP_FROM_FD](_dl_map_object_from_fd): Modified function. + (open_verify): Modified function. + (_dl_map_object): Modified function. + * elf/dl-object.c: Modified. + (_dl_new_object): Modified function. + * elf/dl-open.c: Modified. + (dl_open_worker): Modified function. + * elf/dl-runtime.c: Modified. + [! PROF][! ELF_MACHINE_RUNTIME_FIXUP_ARGS](_dl_fixup): Modified function. + [! PROF][ELF_MACHINE_RUNTIME_FIXUP_ARGS](_dl_fixup): Modified function. + [PROF](_dl_fixup): Modified function. + * elf/dl-sym.c: Modified. + (do_sym): Modified function. + * elf/rtld.c: Modified. + (load_audit_module): Modified function. + (notify_audit_modules_of_loaded_object): Modified function. + (dl_main): Modified function. + * sysdeps/generic/ldsodefs.h: Modified. + [IS_IN (rtld)][SHARED](link_map_audit_state): New function. + +2019-11-15 Florian Weimer + + COMMIT: c7bf5ceab6ec776ac7350d3b0190776bf532ac54 + Properly initialize audit cookie for the dynamic loader [BZ #25157] + + * elf/Makefile: Modified. + * elf/rtld.c: Modified. + (load_audit_module): Modified function. + * elf/tst-auditmany.c: New file. + * elf/tst-auditmanymod.h: New file. + * elf/tst-auditmanymod1.c: New file. + * elf/tst-auditmanymod2.c: New file. + * elf/tst-auditmanymod3.c: New file. + * elf/tst-auditmanymod4.c: New file. + * elf/tst-auditmanymod5.c: New file. + * elf/tst-auditmanymod6.c: New file. + * elf/tst-auditmanymod7.c: New file. + * elf/tst-auditmanymod8.c: New file. + * elf/tst-auditmanymod9.c: New file. + +2019-11-14 Florian Weimer + + COMMIT: c9bf28d625ad1533935d40ae94b15453d0c98508 + nios2: Work around backend bug triggered by csu/libc-tls.c (GCC PR 92499) + + * sysdeps/unix/sysv/linux/nios2/Makefile: Modified. + +2019-11-13 Florian Weimer + + COMMIT: 70c6e15654928c603c6d24bd01cf62e7a8e2ce9b + Redefine _IO_iconv_t to store a single gconv step pointer [BZ #25097] + + * libio/fileops.c: Modified. + (_IO_new_file_fopen): Modified function. + * libio/iofclose.c: Modified. + (_IO_new_fclose): Modified function. + * libio/iofwide.c: Modified. + (_IO_fwide): Modified function. + (__libio_codecvt_out): Modified function. + (__libio_codecvt_in): Modified function. + (__libio_codecvt_encoding): Modified function. + (__libio_codecvt_length): Modified function. + * libio/libio.h: Modified. + (_IO_iconv_t): Modified. + +2019-11-13 Krzysztof Koch + + COMMIT: 15740788d79447d863b88a5434f09d488d4088d3 + Add new script for plotting string benchmark JSON output + + * benchtests/scripts/plot_strings.py: New file. + +2019-11-13 Florian Weimer + + COMMIT: 02132c0f4c78f77d4a8cdbdea8f02956347e29ab + support: Fix support_set_small_thread_stack_size to build on Hurd + + * support/support_set_small_thread_stack_size.c: Modified. + (sys/param.h): Remove include. + (support_set_small_thread_stack_size): Modified function. + (limits.h): Include file. + +2019-11-12 Florian Weimer + + COMMIT: d4625a19fe64f664119a541b317fb83de01bb273 + login: Use pread64 in utmp implementation + + * login/utmp_file.c: Modified. + (__libc_getutent_r): Modified function. + (internal_getut_nolock): Modified function. + (__libc_getutid_r): Modified function. + (__libc_getutline_r): Modified function. + (__libc_pututline): Modified function. + (read_last_entry): New function. + +2019-11-12 Florian Weimer + + COMMIT: ca136bb0a36d0a7056c926bfe5126873566efe40 + Clarify purpose of assert in _dl_lookup_symbol_x + + * elf/dl-lookup.c: Modified. + (_dl_lookup_symbol_x): Modified function. + +2019-11-12 Krzysztof Koch + + COMMIT: b9f145df85145506f8e61bac38b792584a38d88f + aarch64: Increase small and medium cases for __memcpy_generic + + * sysdeps/aarch64/memcpy.S: Modified. + +2019-11-12 Florian Weimer + + COMMIT: 76a7c103eb9060f9e3ba01d073ae4621a17d8b46 + login: Introduce matches_last_entry to utmp processing + + * login/utmp_file.c: Modified. + (__libc_setutent): Modified function. + (internal_getut_nolock): Modified function. + (__libc_pututline): Modified function. + (matches_last_entry): New function. + +2019-11-12 Florian Weimer + + COMMIT: cba932a5a9e91cffd7f4172d7e91f9b2efb1f84b + slotinfo in struct dtv_slotinfo_list should be flexible array [BZ #25097] + + * csu/libc-tls.c: Modified. + (): Remove. + (init_slotinfo): Modified function. + (__libc_setup_tls): Modified function. + (array_length.h): Include file. + (static_slotinfo): New. + (slotinfo): New. + * nptl_db/db-symbols.h: Modified. + (DB_STRUCT_FLEXIBLE_ARRAY): New. + (DB_STRUCT_FIELD): New. + (DB_STRUCT_FLEXIBLE_ARRAY): New. + * nptl_db/db_info.c: Modified. + [TLS_DTV_AT_TP](DB_STRUCT_FLEXIBLE_ARRAY): New. + (FLEXIBLE_ARRAY_DESC): New. + * nptl_db/structs.def: Modified. + * nptl_db/thread_dbP.h: Modified. + (): Modified. + (td_thragent): Modified. + * sysdeps/generic/ldsodefs.h: Modified. + [SHARED](rtld_global): Modified. + +2019-11-11 Adhemerval Zanella + + COMMIT: 42b926d303e571d5f9a4e97ffdb8e05d1eabae66 + Fix clock_nanosleep when interrupted by a signal + + * sysdeps/unix/sysv/linux/clock_nanosleep.c: Modified. + [__TIMESIZE != 64](__clock_nanosleep): Modified function. + (__clock_nanosleep_time64): Modified function. + +2019-11-11 Arjun Shankar + + COMMIT: f0f0d79ac3a2ed7b4e2b99ff993027172068446e + libio/tst-fopenloc: Use xsetlocale, xfopen, and xfclose + + * libio/tst-fopenloc.c: Modified. + (do_test): Remove. + (TEST_FUNCTION): Remove. + (../test-skeleton.c): Remove include. + (do_test): Modified function. + (support/support.h): Include file. + (support/xstdio.h): Include file. + (support/test-driver.c): Include file. + +2019-11-11 Arjun Shankar + + COMMIT: cce35a50c1de0cec5cd1f6c18979ff6ee3ea1dd1 + support: Add xsetlocale function + + * support/Makefile: Modified. + * support/support.h: Modified. + (xsetlocale): New function. + * support/xsetlocale.c: New file. + +2019-11-11 Joseph Myers + + COMMIT: 80a5f8b1569bdecd8d517ae312a98e3c8f224f4b + Declare asctime_r, ctime_r, gmtime_r, localtime_r for C2X. + + * time/time.h: Modified. + [__USE_POSIX](gmtime_r): Remove. + [__USE_POSIX](localtime_r): Remove. + [__USE_POSIX](asctime_r): Remove. + [__USE_POSIX](ctime_r): Remove. + [__USE_POSIX || __GLIBC_USE (ISOC2X)](gmtime_r): New. + [__USE_POSIX || __GLIBC_USE (ISOC2X)](localtime_r): New. + [__USE_POSIX || __GLIBC_USE (ISOC2X)](asctime_r): New. + [__USE_POSIX || __GLIBC_USE (ISOC2X)](ctime_r): New. + +2019-11-11 Lukasz Majewski + + COMMIT: 258c242128a35e7fc17aff34c9dc23cd7576e88f + y2038: linux: Provide __ppoll64 implementation + + * include/sys/poll.h: Modified. + [! _ISOMAC][__TIMESIZE != 64](time.h): New. + [! _ISOMAC][__TIMESIZE != 64](signal.h): New. + [! _ISOMAC][__TIMESIZE != 64](__ppoll64): New. + [! _ISOMAC][__TIMESIZE != 64](libc_hidden_proto): New. + [! _ISOMAC][__TIMESIZE == 64](__ppoll64): New. + * sysdeps/unix/sysv/linux/ppoll.c: Modified. + (ppoll): Remove function. + [__TIMESIZE != 64](__ppoll): New. + (kernel-features.h): Include file. + (__ppoll64): New function. + (strong_alias): New. + +2019-11-11 Florian Weimer + + COMMIT: 10cf7f52c60209f34199d216ef6710568d6297bf + linux: Reduce stack size for nptl/tst-thread-affinity-pthread + + * sysdeps/unix/sysv/linux/tst-skeleton-thread-affinity.c: Modified. + (early_test): Modified function. + (support/xthread.h): Include file. + +2019-11-11 Florian Weimer + + COMMIT: 36ada9ee2cd3b686df6952446b92816584eacbb8 + support: Add support_set_small_thread_stack_size + + * support/Makefile: Modified. + * support/support_set_small_thread_stack_size.c: New file. + * support/support_small_stack_thread_attribute.c: New file. + * support/xthread.h: Modified. + (support_set_small_thread_stack_size): New function. + (support_small_stack_thread_attribute): New function. + +2019-11-11 Andreas Schwab + + COMMIT: fc141ea78ee3d87c67b18488827fe2d89c9343e7 + Fix array bounds violation in regex matcher (bug 25149) + + * posix/regexec.c: Modified. + (proceed_next_node): Modified function. + +2019-11-08 Alistair Francis + + COMMIT: 2e44b10b42d68d9887ccab17b76db5d7bbae4fb6 + sysdeps/clock_nanosleep: Use clock_nanosleep_time64 if avaliable + + * include/time.h: Modified. + [! _ISOMAC][__TIMESIZE != 64](__clock_nanosleep_time64): New function. + [! _ISOMAC][__TIMESIZE != 64](libc_hidden_proto): New. + [! _ISOMAC][__TIMESIZE == 64](__clock_nanosleep_time64): New. + * sysdeps/unix/sysv/linux/clock_nanosleep.c: Modified. + (__clock_nanosleep): Remove function. + [__TIMESIZE != 64](__clock_nanosleep): New. + (kernel-features.h): Include file. + (__clock_nanosleep_time64): New function. + +2019-11-08 Adhemerval Zanella + + COMMIT: 31f000a8a65932bb34f8995f54297486c91648c3 + Remove hppa pthreadP.h + + * sysdeps/unix/sysv/linux/hppa/pthreadP.h: Delete file. + +2019-11-07 Florian Weimer + + COMMIT: be6b16d975683e6cca57852cd4cfe715b2a9d8b1 + login: Acquire write lock early in pututline [BZ #24882] + + * login/Makefile: Modified. + * login/tst-pututxline-cache.c: New file. + * login/utmp_file.c: Modified. + (internal_getut_r): Modified function. + (__libc_pututline): Modified function. + (internal_getut_nolock): New function. + +2019-11-07 Adhemerval Zanella + + COMMIT: 4f4bb489e0ddd2f24b2a5d352bb39f8dcdb38050 + nptl: Add missing placeholder abi symbol from nanosleep move + + * sysdeps/unix/sysv/linux/hppa/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/ia64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sh/be/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sh/le/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist: Modified. + +2019-11-07 Florian Weimer + + COMMIT: b0a83ae71b2588bd2a9e6b40f95191602940e01e + login: Remove double-assignment of fl.l_whence in try_file_lock + + * login/utmp_file.c: Modified. + (try_file_lock): Modified function. + +2019-11-07 Florian Weimer + + COMMIT: a673c07af3bcfa24432c3fd8a1dea12f931ee903 + hurd: Use __clock_gettime in _hurd_select + + * hurd/hurdselect.c: Modified. + (_hurd_select): Modified function. + +2019-11-07 Florian Weimer + + COMMIT: 50471a8613dc487dce8b7cabc35a01b4b5b242ea + hurd: Remove lingering references to the time function + + * sysdeps/mach/sleep.c: Modified. + (__sleep): Modified function. + +2019-11-07 liqingqing + + COMMIT: dae7bf38978294f7d1aeece7f31c738281a3ba04 + math: enhance the endloop condition of function handle_input_flag + + * math/gen-auto-libm-tests.c: Modified. + (handle_input_flag): Modified function. + +2019-11-06 Adhemerval Zanella + + COMMIT: 807edded258e888dbfa0d19ca967d6e42882d069 + nptl: Refactor thrd_sleep in terms of clock_nanosleep + + * nptl/thrd_sleep.c: Modified. + (thrd_sleep): Modified function. + +2019-11-06 Adhemerval Zanella + + COMMIT: 3537ecb49cf7177274607004c562d6f9ecc99474 + Refactor nanosleep in terms of clock_nanosleep + + * include/time.h: Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](__clock_nanosleep): New. + [! _ISOMAC](libc_hidden_proto): New function. + * posix/nanosleep.c: Modified. + (__nanosleep): Modified function. + (libc_hidden_def): New. + (weak_alias): New. + * sysdeps/unix/clock_nanosleep.c: Move to... + * sysdeps/mach/clock_nanosleep.c: ... here. + (assert.h): Remove include. + (sysdep-cancel.h): Remove include. + (__clock_nanosleep): Modified function. + (mach.h): Include file. + (unistd.h): Include file. + (posix-timer.h): Include file. + (nanosleep_call): New function. + (libc_hidden_def): New. + * sysdeps/mach/nanosleep.c: Delete file. + * sysdeps/unix/sysv/linux/clock_nanosleep.c: Modified. + (libc_hidden_def): New. + * sysdeps/unix/sysv/linux/nanosleep.c: Delete file. + * time/clock_nanosleep.c: Modified. + (libc_hidden_def): New. + +2019-11-06 Adhemerval Zanella + + COMMIT: 79a547b162657b3fa34d31917cc29f0e7af19e4c + nptl: Move nanosleep implementation to libc + + * nptl/Makefile: Modified. + * nptl/Versions: Modified. + * nptl/libpthread-compat.c: Modified. + [(SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_2))](__libpthread_version_placeholder): Remove. + [(SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_2))](compat_symbol): Remove. + [(SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_2_6))](__libpthread_version_placeholder): New. + [(SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_2_6))](compat_symbol): New. + * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/alpha/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/arm/be/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/arm/le/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/csky/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/hppa/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/i386/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/ia64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/nios2/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sh/be/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sh/le/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist: Modified. + * time/Makefile: Modified. + +2019-11-06 Adhemerval Zanella + + COMMIT: 2a0356e1191804d57005e1cfe2a72f019b7a8cce + posix: Sync regex with gnulib + + * include/verify.h: Modified. + (assume): New. + * posix/regcomp.c: Modified. + [_REGEX_RE_COMP || _LIBC][! _LIBC][! _LIBC](parse_bracket_exp): Modified function. + [_REGEX_RE_COMP || _LIBC][! _LIBC][_LIBC](parse_bracket_exp): Modified function. + [_REGEX_RE_COMP || _LIBC][! _LIBC](build_charclass_op): Modified function. + [_REGEX_RE_COMP || _LIBC][! _LIBC](create_tree): Modified function. + [_REGEX_RE_COMP || _LIBC](link_nfa_nodes): Modified function. + [_REGEX_RE_COMP || _LIBC](calc_eclosure): Modified function. + [_REGEX_RE_COMP || _LIBC](parse_expression): Modified function. + * posix/regex_internal.c: Modified. + [RE_ENABLE_I18N](build_wcs_buffer): Modified function. + [RE_ENABLE_I18N](build_wcs_upper_buffer): Modified function. + (re_string_reconstruct): Modified function. + (re_string_context_at): Modified function. + * posix/regex_internal.h: Modified. + [GNULIB_LOCK && ! USE_UNLOCKED_IO][! USE_WINDOWS_THREADS](lock_define): Remove. + [GNULIB_LOCK && ! USE_UNLOCKED_IO][(( __GNUC__ && ! __STRICT_ANSI__) || ( __STDC_VERSION__ && 199901L <= __STDC_VERSION__))](lock_define): Remove. + [GNULIB_LOCK && ! USE_UNLOCKED_IO][USE_POSIX_THREADS](lock_define): Remove. + [GNULIB_LOCK && ! USE_UNLOCKED_IO][USE_PTH_THREADS](lock_define): Remove. + [GNULIB_LOCK && ! USE_UNLOCKED_IO][USE_SOLARIS_THREADS](lock_define): Remove. + [GNULIB_LOCK && ! USE_UNLOCKED_IO][USE_WINDOWS_THREADS](lock_define): Remove. + [GNULIB_LOCK && ! USE_UNLOCKED_IO](lock_define): New. + (assert.h): Remove include. + (re_match_context_t): Modified. + [!(DEBUG && DEBUG != 0)](DEBUG_ASSERT): New. + [DEBUG && DEBUG != 0](assert.h): New. + [DEBUG && DEBUG != 0](DEBUG_ASSERT): New. + (verify.h): Include file. + * posix/regexec.c: Modified. + [RE_ENABLE_I18N](transit_state_mb): Modified function. + [_REGEX_RE_COMP || _LIBC](re_search_internal): Modified function. + (re_search_stub): Modified function. + (re_copy_regs): Modified function. + (prune_impossible_nodes): Modified function. + (check_matching): Modified function. + (check_halt_state_context): Modified function. + (pop_fail_stack): Modified function. + (set_regs): Modified function. + (sift_states_backward): Modified function. + (build_sifted_states): Modified function. + (transit_state_bkref): Modified function. + (check_arrival_add_next_nodes): Modified function. + (check_arrival_expand_ecl): Modified function. + (group_nodes_into_DFAstates): Modified function. + (match_ctx_add_subtop): Modified function. + +2019-11-06 Mike FABIAN + + COMMIT: 4ecd584908109db3ac9bf4aca307ddd44e029275 + Add mnw language code [BZ #25139] + + * locale/iso-639.def: Modified. + +2019-11-06 Talachan Mon + + COMMIT: c5fbd7c3ea4d3f8863e8d195feda64c4a8c29e8a + Add new locale: mnw_MM (Mon language spoken in Myanmar) [BZ #25139] + + * NEWS: Modified. + * localedata/SUPPORTED: Modified. + * localedata/locales/mnw_MM: New file. + +2019-11-06 Stefan Liebler + + COMMIT: 64bca76f42a82e6a9ea2b0166deab7aa2b7efbea + S390: Fp comparison are now raising FE_INVALID with gcc 10. + + * sysdeps/s390/fpu/fix-fp-int-compare-invalid.h: Modified. + (FIX_COMPARE_INVALID): Remove. + [!(__GNUC_PREREQ (10, 0))](FIX_COMPARE_INVALID): New. + [__GNUC_PREREQ (10, 0)](FIX_COMPARE_INVALID): New. + +2019-11-05 Lukasz Majewski + + COMMIT: f2e30cc0f89f348a154c5c09d21a1de561c7b2f8 + linux: pselect: Remove CALL_PSELECT6 macro + + * sysdeps/unix/sysv/linux/pselect.c: Modified. + [__NR_pselect6](__pselect): Modified function. + +2019-11-05 Arjun Shankar + + COMMIT: 81a1fa6cbfef5ca33e7eeb11f8f9a528f4dc0117 + Fix run-one-test so that it runs elf tests + + * Makefile: Modified. + +2019-11-04 Mike Crowe + + COMMIT: 3ef5e118f2684bdc3f8e5776269557038705cefb + nptl: Fix niggles with pthread_clockjoin_np + + * NEWS: Modified. + * manual/threads.texi: Modified. + * sysdeps/nptl/pthread.h: Modified. + [__USE_GNU](pthread_clockjoin_np): Modified. + * sysdeps/unix/sysv/linux/hppa/pthread.h: Modified. + [__USE_GNU](pthread_clockjoin_np): New function. + +2019-11-03 John David Anglin + + COMMIT: e4c23a029a54c8c7788eff9ca771a01cccaaa0ce + hppa: Align __clone stack argument to 8 bytes (Bug 25066) + + * sysdeps/unix/sysv/linux/hppa/clone.S: Modified. + +2019-11-02 Lukasz Majewski + + COMMIT: 42893aa38fd6041d349ea0427c4d5ccbacd9a2be + y2038: linux: Provide __futimens64 implementation + + * include/time.h: Modified. + [! _ISOMAC][__TIMESIZE != 64](__futimens64): New function. + [! _ISOMAC][__TIMESIZE != 64](libc_hidden_proto): New function. + [! _ISOMAC][__TIMESIZE == 64](__futimens64): New. + * sysdeps/unix/sysv/linux/futimens.c: Modified. + (futimens): Remove function. + [__TIMESIZE != 64](__futimens): New. + (__futimens64): New function. + (weak_alias): New. + +2019-11-02 Lukasz Majewski + + COMMIT: f5b6fd258b6dd520403a20024e58cb491aca4cbd + y2038: linux: Provide __utimensat64 implementation + + * include/time.h: Modified. + [! _ISOMAC][__TIMESIZE != 64](__utimensat64): New function. + [! _ISOMAC][__TIMESIZE != 64](libc_hidden_proto): New function. + [! _ISOMAC][__TIMESIZE == 64](__utimensat64): New. + [! _ISOMAC](__utimensat64_helper): New function. + [! _ISOMAC](libc_hidden_proto): New function. + * sysdeps/unix/sysv/linux/utimensat.c: Modified. + (utimensat): Remove function. + [__TIMESIZE != 64](__utimensat): New. + (time.h): Include file. + (kernel-features.h): Include file. + (__utimensat64_helper): New function. + (libc_hidden_def): New. + (__utimensat64): New function. + (weak_alias): New. + +2019-11-01 Mike Crowe + + COMMIT: 7aeab82edb38390c2a02519d312e098f4049e867 + nptl: Add pthread_timedjoin_np, pthread_clockjoin_np NULL timeout test + + * nptl/Makefile: Modified. + * nptl/tst-join14.c: New file. + +2019-11-01 Mike Crowe + + COMMIT: 69ca4b54c151cec42ccca5e05790efc1a8206b47 + nptl: Add pthread_clockjoin_np + + * NEWS: Modified. + * manual/threads.texi: Modified. + * nptl/Makefile: Modified. + * nptl/Versions: Modified. + * nptl/pthreadP.h: Modified. + [IS_IN (libpthread)](hidden_proto): Remove. + (__pthread_timedjoin_ex): Remove. + (__pthread_clockjoin_ex): New function. + * nptl/pthread_clockjoin.c: New file. + * nptl/pthread_join.c: Modified. + (__pthread_join): Modified function. + * nptl/pthread_join_common.c: Modified. + (timedwait_tid): Remove function. + (__pthread_timedjoin_ex): Remove function. + (hidden_def): Remove. + (clockwait_tid): New function. + (__pthread_clockjoin_ex): New function. + * nptl/pthread_timedjoin.c: Modified. + (__pthread_timedjoin_np): Modified function. + * nptl/pthread_tryjoin.c: Modified. + (pthread_tryjoin_np): Modified function. + * nptl/thrd_join.c: Modified. + (thrd_join): Modified function. + * nptl/tst-join10.c: New file. + * nptl/tst-join11.c: New file. + * nptl/tst-join12.c: New file. + * nptl/tst-join13.c: New file. + * nptl/tst-join3.c: Modified. + (tf): Modified function. + (do_test): Modified function. + (CLOCK_USE_TIMEDJOIN): New. + (do_test_clock): New function. + * nptl/tst-join5.c: Modified. + (thread_join): Modified function. + (support/timespec.h): Include file. + (support/xtime.h): Include file. + * sysdeps/nptl/pthread.h: Modified. + [__USE_GNU](pthread_clockjoin_np): New function. + * sysdeps/unix/sysv/linux/aarch64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/alpha/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/arm/be/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/arm/le/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/csky/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/hppa/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/i386/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/ia64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/microblaze/be/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/microblaze/le/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/nios2/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sh/be/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sh/le/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist: Modified. + * sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist: Modified. + +2019-11-01 Mike Crowe + + COMMIT: 893bbdd0072fbf96808e66af04b970e5b39171fb + manual: Add documentation for pthread_tryjoin_np and pthread_timedjoin_np + + * manual/threads.texi: Modified. + +2019-11-01 Mike Crowe + + COMMIT: 22434b2f0360212d6c3ae775f425a0dbc97b2a4d + nptl: Convert tst-join3 to use libsupport + + * nptl/tst-join3.c: Modified. + (tf): Modified function. + (do_test): Modified function. + (TEST_FUNCTION): Remove. + (../test-skeleton.c): Remove include. + (support/check.h): Include file. + (support/timespec.h): Include file. + (support/xthread.h): Include file. + (support/xtime.h): Include file. + (support/test-driver.c): Include file. + +2019-10-31 Paul Eggert + + COMMIT: f8042536dcdef2543b9506500ed22564df12dcd1 + Sync time/mktime.c with gnulib + + * time/mktime.c: Modified. + +2019-10-31 Adhemerval Zanella + + COMMIT: c1dac8f83ecda0d23f92ddacad52818f658988a4 + Sync timespec-{add,sub} with gnulib + + * support/timespec-add.c: Modified. + (timespec_add): Modified function. + * support/timespec-sub.c: Modified. + (timespec_sub): Modified function. + +2019-10-31 Adhemerval Zanella + + COMMIT: 356ced8dcb2c65f2d61eaa0fec32fa4b6628be16 + Sync intprops.h with gnulib + + * include/intprops.h: Modified. + [!(201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS)][! LLONG_MAX](_GL_INT_OP_WRAPV_LONGISH): Modified. + [!(201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS)][LLONG_MAX](_GL_INT_OP_WRAPV_LONGISH): Modified. + [!(201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS)](_GL_INT_OP_WRAPV): Modified. + [!(201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS)][! _GL_HAVE___TYPEOF__](_GL_INT_OP_WRAPV_SMALLISH): New. + [!(201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS)][_GL_HAVE___TYPEOF__](_GL_INT_OP_WRAPV_SMALLISH): New. + [!(5 <= __GNUC__ && ! __ICC)](_GL_HAS_BUILTIN_OVERFLOW): Remove. + [201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS](_GL_INT_OP_WRAPV): Modified. + [5 <= __GNUC__ && ! __ICC](_GL_HAS_BUILTIN_OVERFLOW): Remove. + [5 <= __GNUC__ && ! __ICC](_GL_HAS_BUILTIN_ADD_OVERFLOW): New. + [_GL_HAS_BUILTIN_OVERFLOW](_GL_INT_OP_WRAPV): Remove. + (INT_ADD_WRAPV): Remove. + (INT_SUBTRACT_WRAPV): Remove. + (INT_MULTIPLY_WRAPV): Remove. + (_GL_INT_OP_CALC): Modified. + (_GL_INT_OP_CALC1): Remove. + [! _GL_HAS_BUILTIN_ADD_OVERFLOW](INT_ADD_WRAPV): New. + [! _GL_HAS_BUILTIN_ADD_OVERFLOW](INT_SUBTRACT_WRAPV): New. + [! _GL_HAS_BUILTIN_MUL_OVERFLOW](INT_MULTIPLY_WRAPV): New. + [! __clang__](_GL_HAS_BUILTIN_MUL_OVERFLOW): New. + [! __has_builtin](_GL_HAS_BUILTIN_ADD_OVERFLOW): New. + [_GL_HAS_BUILTIN_ADD_OVERFLOW](INT_ADD_WRAPV): New. + [_GL_HAS_BUILTIN_ADD_OVERFLOW](INT_SUBTRACT_WRAPV): New. + [_GL_HAS_BUILTIN_MUL_OVERFLOW](INT_MULTIPLY_WRAPV): New. + [__clang__](_GL_HAS_BUILTIN_MUL_OVERFLOW): New. + [__has_builtin](_GL_HAS_BUILTIN_ADD_OVERFLOW): New. + (_GL_INT_ADD_RANGE_OVERFLOW): New. + (_GL_INT_SUBTRACT_RANGE_OVERFLOW): New. + (_GL_INT_MULTIPLY_RANGE_OVERFLOW): New. + +2019-10-31 Adhemerval Zanella + + COMMIT: c81aa64e81826c308c4ecbd1982fa086ca6e647b + Refactor adjtimex based on clock_adjtime + + * include/time.h: Modified. + [! _ISOMAC][__linux__](__clock_adjtime): New. + [! _ISOMAC][__linux__](libc_hidden_proto): New. + * sysdeps/unix/sysv/linux/adjtimex.c: Modified. + (___adjtimex): Modified function. + * sysdeps/unix/sysv/linux/syscalls.list: Modified. + +2019-10-31 Adhemerval Zanella + + COMMIT: 6b1472eb2ea16f99c4729f975ca25af980ce3894 + Refactor PI mutexes internal definitions + + * nptl/pthread_mutex_init.c: Modified. + (prio_inherit_missing): Modified function. + (futex-internal.h): Include file. + * nptl/pthread_mutex_lock.c: Modified. + (lowlevellock.h): Remove include. + (__pthread_mutex_lock_full): Modified function. + (futex-internal.h): Include file. + * nptl/pthread_mutex_timedlock.c: Modified. + (__pthread_mutex_clocklock_common): Modified function. + (futex-internal.h): Include file. + * nptl/pthread_mutex_trylock.c: Modified. + (__pthread_mutex_trylock): Modified function. + (futex-internal.h): Include file. + * nptl/pthread_mutex_unlock.c: Modified. + (__pthread_mutex_unlock_full): Modified function. + (futex-internal.h): Include file. + * sysdeps/nptl/futex-internal.h: Modified. + (futex_lock_pi): New function. + (futex_unlock_pi): New function. + * sysdeps/nptl/lowlevellock-futex.h: Modified. + [! __ASSEMBLER__](lll_futex_timed_lock_pi): New. + [! __ASSEMBLER__](lll_futex_timed_unlock_pi): New. + +2019-10-31 Adhemerval Zanella + + COMMIT: fbb4a3143724ef3f044a4f05351fe041300ee382 + Remove pause and nanosleep not cancel wrappers + + * sysdeps/generic/not-cancel.h: Modified. + (__pause_nocancel): Remove. + (__nanosleep_nocancel): Remove. + * sysdeps/unix/sysv/linux/Makefile: Modified. + * sysdeps/unix/sysv/linux/nanosleep_nocancel.c: Delete file. + * sysdeps/unix/sysv/linux/not-cancel.h: Modified. + [IS_IN (libc) || IS_IN (rtld)](hidden_proto): Modified. + [IS_IN (libc) || IS_IN (rtld)](hidden_proto): Remove. + [IS_IN (libc) || IS_IN (rtld)](hidden_proto): Remove. + (__pause_nocancel): Remove. + (__nanosleep_nocancel): Remove. + * sysdeps/unix/sysv/linux/pause_nocancel.c: Delete file. + +2019-10-31 Adhemerval Zanella + + COMMIT: 215078017fd25fd64074e25ccd3dde0f6f19d4fe + nptl: Replace non cancellable pause/nanosleep with futex + + * nptl/lll_timedlock_wait.c: Modified. + (__lll_clocklock_wait): Modified function. + * nptl/pthread_mutex_lock.c: Modified. + (__pthread_mutex_lock_full): Modified function. + * nptl/pthread_mutex_timedlock.c: Modified. + (__pthread_mutex_clocklock_common): Modified function. + * sysdeps/nptl/lowlevellock.h: Modified. + (__lll_clocklock_wait): Modified. + (__lll_clocklock): Modified. + (time.h): Include file. + (lll_timedwait): New. + * sysdeps/sparc/sparc32/lll_timedlock_wait.c: Delete file. + * sysdeps/sparc/sparc32/lowlevellock.c: Modified. + [IS_IN (libpthread)](__lll_clocklock_wait): Remove function. + * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Modified. + (__lll_clocklock_wait): Modified. + (__lll_clocklock): Modified function. + (errno.h): Include file. + (lll_timedwait): New. + +2019-10-31 Adhemerval Zanella + + COMMIT: b58032743415575661dddd4e813440b6b9430327 + Consolidate lowlevellock-futex.h + + * sysdeps/nptl/lowlevellock-futex.h: Modified. + (errno.h): Remove include. + (LLL_SHARED): Modified. + (lll_futex_wait): Remove. + (lll_futex_timed_wait): Remove. + (lll_futex_supported_clockid): Remove. + (lll_futex_clock_wait_bitset): Remove. + (lll_futex_wake): Remove. + (lll_futex_requeue): Remove. + (lll_futex_wake_unlock): Remove. + (lll_futex_wait_requeue_pi): Remove. + (lll_futex_timed_wait_requeue_pi): Remove. + (lll_futex_cmp_requeue_pi): Remove. + (lll_futex_wait_cancel): Remove. + (lll_futex_timed_wait_cancel): Remove. + [! __ASSEMBLER__][!(IS_IN (libc) || IS_IN (rtld))](__lll_private_flag): New. + [! __ASSEMBLER__][IS_IN (libc) || IS_IN (rtld)](__lll_private_flag): New. + [! __ASSEMBLER__](sysdep.h): New. + [! __ASSEMBLER__](sysdep-cancel.h): New. + [! __ASSEMBLER__](kernel-features.h): New. + [! __ASSEMBLER__](lll_futex_syscall): New. + [! __ASSEMBLER__](lll_futex_wait): New. + [! __ASSEMBLER__](lll_futex_timed_wait): New. + [! __ASSEMBLER__](lll_futex_supported_clockid): New. + [! __ASSEMBLER__](lll_futex_clock_wait_bitset): New. + [! __ASSEMBLER__](lll_futex_wake): New. + [! __ASSEMBLER__](lll_futex_requeue): New. + [! __ASSEMBLER__](lll_futex_wake_unlock): New. + [! __ASSEMBLER__](lll_futex_wait_requeue_pi): New. + [! __ASSEMBLER__](lll_futex_timed_wait_requeue_pi): New. + [! __ASSEMBLER__](lll_futex_cmp_requeue_pi): New. + [! __ASSEMBLER__](lll_futex_wait_cancel): New. + [! __ASSEMBLER__](lll_futex_timed_wait_cancel): New. + (FUTEX_WAIT): New. + (FUTEX_WAKE): New. + (FUTEX_REQUEUE): New. + (FUTEX_CMP_REQUEUE): New. + (FUTEX_WAKE_OP): New. + (FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): New. + (FUTEX_LOCK_PI): New. + (FUTEX_UNLOCK_PI): New. + (FUTEX_TRYLOCK_PI): New. + (FUTEX_WAIT_BITSET): New. + (FUTEX_WAKE_BITSET): New. + (FUTEX_WAIT_REQUEUE_PI): New. + (FUTEX_CMP_REQUEUE_PI): New. + (FUTEX_PRIVATE_FLAG): New. + (FUTEX_CLOCK_REALTIME): New. + (FUTEX_BITSET_MATCH_ANY): New. + * sysdeps/unix/sysv/linux/lowlevellock-futex.h: Delete file. + +2019-10-31 Adhemerval Zanella + + COMMIT: b865eed0ac73e385b32de7f97003f44e4798b8d4 + Consolidate futex-internal.h + + * sysdeps/nptl/futex-internal.h: Modified. + (futex_supports_pshared): Remove. + (futex_wait): Remove. + (futex_wait_cancelable): Remove. + (futex_reltimed_wait): Remove. + (futex_reltimed_wait_cancelable): Remove. + (futex_abstimed_supported_clockid): Remove. + (futex_abstimed_wait): Remove. + (futex_abstimed_wait_cancelable): Remove. + (futex_wake): Remove. + (futex_supports_pshared): New function. + (futex_wait): New function. + (futex_wait_cancelable): New function. + (futex_reltimed_wait): New function. + (futex_reltimed_wait_cancelable): New function. + (futex_abstimed_supported_clockid): New function. + (futex_abstimed_wait): New function. + (futex_abstimed_wait_cancelable): New function. + (futex_wake): New function. + * sysdeps/unix/sysv/linux/futex-internal.h: Delete file. + +2019-10-30 DJ Delorie + + COMMIT: ff12e0fb91b9072800f031cb21fb2651ee7b6251 + Base max_fast on alignment, not width, of bins (Bug 24903) + + * malloc/malloc.c: Modified. + (set_max_fast): Modified. + +2019-10-30 Zack Weinberg + + COMMIT: 62193c4a3af9c1e15c039b323f45ccd2fddc119f + Revise the documentation of simple calendar time. + + * manual/filesys.texi: Modified. + * manual/llio.texi: Modified. + * manual/threads.texi: Modified. + * manual/time.texi: Modified. + +2019-10-30 Zack Weinberg + Adhemerval Zanella + + COMMIT: 2f2c76e1c8d8c4431c6395afeee420b71a4d772a + Make second argument of gettimeofday as 'void *' + + * include/sys/time.h: Modified. + [! _ISOMAC](__gettimeofday): Modified. + * sysdeps/unix/sysv/linux/aarch64/gettimeofday.c: Modified. + [! SHARED](__gettimeofday): Modified function. + (__gettimeofday_vsyscall): Modified function. + * sysdeps/unix/sysv/linux/powerpc/gettimeofday.c: Modified. + [! SHARED](__gettimeofday): Modified function. + (__gettimeofday_syscall): Modified function. + * sysdeps/unix/sysv/linux/x86/gettimeofday.c: Modified. + [! SHARED](__gettimeofday): Modified function. + (__gettimeofday_syscall): Modified function. + * time/gettimeofday.c: Modified. + (___gettimeofday): Modified function. + * time/sys/time.h: Modified. + [! __USE_MISC](__timezone_ptr_t): Remove. + [__USE_MISC](__timezone_ptr_t): Remove. + (gettimeofday): Modified. + +2019-10-30 Adhemerval Zanella + Zack Weinberg + + COMMIT: 5e46749c64d51f50f8511ed99c1266d7c13e182b + Use clock_gettime to implement gettimeofday. + + * NEWS: Modified. + * include/sys/time.h: Modified. + [! _ISOMAC](libc_hidden_proto): Remove. + [! _ISOMAC](libc_hidden_proto): Remove. + * sysdeps/unix/clock_gettime.c: Move to... + * sysdeps/mach/clock_gettime.c: ... here. + (sys/time.h): Remove include. + (__clock_gettime): Modified function. + (mach.h): Include file. + * sysdeps/mach/gettimeofday.c: Delete file. + * sysdeps/posix/gettimeofday.c: Delete file. + * sysdeps/unix/syscalls.list: Modified. + * sysdeps/unix/sysv/linux/aarch64/gettimeofday.c: Modified. + [! SHARED](sysdep.h): Remove include. + [! SHARED](__gettimeofday): Modified function. + [! SHARED](libc_hidden_def): Remove. + [SHARED](__gettimeofday_vsyscall): Remove function. + [SHARED](libc_ifunc_hidden): Remove. + [SHARED](libc_hidden_def): Remove. + [SHARED](libc_ifunc): New. + (sys/time.h): Remove include. + (libc_hidden_weak): Remove. + [HAVE_GETTIMEOFDAY_VSYSCALL](HAVE_VSYSCALL): New. + (time.h): Include file. + (sysdep.h): Include file. + (sysdep-vdso.h): Include file. + (__gettimeofday_vsyscall): New function. + * sysdeps/unix/sysv/linux/i386/gettimeofday.c: Move to... + * sysdeps/unix/sysv/linux/alpha/gettimeofday.c: ... here. + [SHARED](__gettimeofday): Remove. + [SHARED](__gettimeofday): Remove. + [SHARED](__gettimeofday_type): Remove. + [SHARED](libc_hidden_def): Remove. + (sys/time.h): Remove include. + (sysdeps/unix/sysv/linux/x86/gettimeofday.c): Remove include. + (VERSION_gettimeofday): New. + (time/gettimeofday.c): Include file. + * sysdeps/unix/sysv/linux/alpha/osf_gettimeofday.c: Modified. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)](__gettimeofday_tv32): Modified function. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)](string.h): Include file. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)](time.h): Include file. + * sysdeps/unix/sysv/linux/alpha/tv32-compat.h: Modified. + (valid_timespec_to_timeval32): New function. + * sysdeps/unix/sysv/linux/gettimeofday.c: Delete file. + * sysdeps/unix/sysv/linux/powerpc/gettimeofday.c: Modified. + [! SHARED](sysdep.h): Remove include. + [! SHARED](errno.h): Remove include. + [! SHARED](__gettimeofday): Modified function. + [! SHARED](libc_hidden_def): Remove. + [!(SHARED && ! __powerpc64__)](__redirect___gettimeofday): Remove. + [SHARED][! __powerpc64__](__gettimeofday): Remove. + [SHARED][! __powerpc64__](__gettimeofday_vsyscall): Remove. + [SHARED][! __powerpc64__](libc_hidden_def): Remove. + [SHARED](dl-machine.h): Remove include. + [SHARED](sysdep.h): Remove include. + [SHARED](__gettimeofday_syscall): Remove function. + [SHARED](libc_ifunc_hidden): Remove. + [SHARED](libc_hidden_def): Remove. + [SHARED](libc_ifunc): New function. + [SHARED && ! __powerpc64__](__gettimeofday): Remove. + (sys/time.h): Remove include. + (libc_hidden_weak): Remove. + [HAVE_GETTIMEOFDAY_VSYSCALL](HAVE_VSYSCALL): New. + (time.h): Include file. + (sysdep.h): Include file. + (sysdep-vdso.h): Include file. + (__gettimeofday_syscall): New function. + * sysdeps/unix/sysv/linux/x86/gettimeofday.c: Modified. + [! SHARED](sysdep.h): Remove include. + [! SHARED](errno.h): Remove include. + [! SHARED](__gettimeofday): Modified function. + [! SHARED](libc_hidden_def): Remove. + [SHARED][! __gettimeofday_type](__gettimeofday_type): Remove. + [SHARED](errno.h): Remove include. + [SHARED](sysdep-vdso.h): Remove include. + [SHARED](sysdep-vdso.h): Remove include. + [SHARED](__gettimeofday_syscall): Remove function. + [SHARED](libc_ifunc_hidden): Remove. + [SHARED](libc_hidden_def): Remove. + [SHARED](libc-vdso.h): Include file. + [SHARED](libc_ifunc): New function. + (sys/time.h): Remove include. + (libc_hidden_weak): Remove. + [HAVE_GETTIMEOFDAY_VSYSCALL](HAVE_VSYSCALL): New. + (time.h): Include file. + (sysdep.h): Include file. + (sysdep-vdso.h): Include file. + (__gettimeofday_syscall): New function. + * sysdeps/unix/sysv/linux/x86_64/x32/gettimeofday.c: New file. + * sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list: Modified. + * time/gettimeofday.c: Modified. + (errno.h): Remove include. + (__gettimeofday): Remove function. + (libc_hidden_def): Remove. + (weak_alias): Remove. + (libc_hidden_weak): Remove. + [! VERSION_gettimeofday](strong_alias): New. + [! VERSION_gettimeofday](weak_alias): New. + [VERSION_gettimeofday](weak_alias): New. + [VERSION_gettimeofday](default_symbol_version): New. + [VERSION_gettimeofday](default_symbol_version): New. + (string.h): Include file. + (time.h): Include file. + (___gettimeofday): New function. + +2019-10-30 Zack Weinberg + + COMMIT: 40a36935fff4eac83b9676b04048990ccb3c4754 + Use clock_gettime to implement timespec_get. + + * sysdeps/posix/timespec_get.c: Delete file. + * sysdeps/unix/sysv/linux/timespec_get.c: Delete file. + * time/timespec_get.c: Modified. + (timespec_get): Modified function. + +2019-10-30 Zack Weinberg + Adhemerval Zanella + + COMMIT: 2b5fea833bcd0f651579afd16ed7842770ecbae1 + Consolidate and deprecate ftime + + * NEWS: Modified. + * sysdeps/unix/bsd/ftime.c: Delete file. + * sysdeps/unix/sysv/linux/ftime.c: Delete file. + * time/ftime.c: Modified. + (errno.h): Remove include. + (ftime): Modified function. + * time/sys/timeb.h: Modified. + (ftime): Remove. + (__attribute_deprecated__): New. + * time/tst-ftime.c: Modified. + (do_test): Modified function. + (libc-diag.h): Include file. + +2019-10-30 Adhemerval Zanella + + COMMIT: f9a7554009cf38f390e74fcabc5b49f974f72382 + Change most internal uses of time to __clock_gettime. + + * include/time.h: Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Modified. + [! _ISOMAC](libc_hidden_proto): Remove. + [! _ISOMAC](time-clockid.h): Include file. + [! _ISOMAC](time_now): New function. + * misc/syslog.c: Modified. + (__vsyslog_internal): Modified function. + * nscd/nscd_gethst_r.c: Modified. + (__nscd_get_nl_timestamp): Modified function. + * nscd/nscd_helper.c: Modified. + (__nscd_get_mapping): Modified function. + (__nscd_get_map_ref): Modified function. + * string/strfry.c: Modified. + (time.h): Remove include. + (strfry): Modified function. + (random-bits.h): Include file. + * sysdeps/unix/sysv/linux/check_native.c: Modified. + (__check_native): Modified function. + * sysdeps/unix/sysv/linux/check_pf.c: Modified. + (make_request): Modified function. + * sysdeps/unix/sysv/linux/getsysstats.c: Modified. + (__get_nprocs): Modified function. + * sysdeps/unix/sysv/linux/i386/time.c: Delete file. + * sysdeps/unix/sysv/linux/ifaddrs.c: Modified. + (__netlink_sendreq): Modified function. + * sysdeps/unix/sysv/linux/powerpc/time.c: Modified. + [! SHARED](time/time.c): Remove include. + [! SHARED](time): New function. + [SHARED][! __powerpc64__](time): Remove. + [SHARED][! __powerpc64__](time): Remove. + [SHARED][! __powerpc64__](__time_vsyscall): Remove. + [SHARED][! __powerpc64__](libc_hidden_def): Remove. + [SHARED][__powerpc64__](__redirect_time): Remove. + [SHARED](time.h): Remove include. + [SHARED](sysdep.h): Remove include. + [SHARED](dl-machine.h): Remove include. + [SHARED](time_syscall): Remove function. + [SHARED](libc_ifunc_hidden): Remove. + [SHARED](libc_hidden_def): Remove. + [SHARED](libc_ifunc): New function. + [HAVE_TIME_VSYSCALL](HAVE_VSYSCALL): New. + (time.h): Include file. + (sysdep.h): Include file. + (sysdep-vdso.h): Include file. + (time_vsyscall): New function. + * sysdeps/unix/sysv/linux/x86/time.c: Modified. + [! SHARED](sysdep.h): Remove include. + [! SHARED](time): Modified function. + [SHARED][! time_type](time_type): Remove. + [SHARED](errno.h): Remove include. + [SHARED](sysdep-vdso.h): Remove include. + [SHARED](__time_syscall): Remove function. + [SHARED](libc_ifunc_hidden): Remove. + [SHARED](libc_hidden_def): Remove. + [SHARED](libc-vdso.h): Include file. + [SHARED](libc_ifunc): New. + [HAVE_TIME_VSYSCALL](HAVE_VSYSCALL): New. + (sysdep.h): Include file. + (sysdep-vdso.h): Include file. + (time_vsyscall): New function. + * time/getdate.c: Modified. + (__getdate_r): Modified function. + * time/time.c: Modified. + (libc_hidden_def): Remove. + +2019-10-30 Adhemerval Zanella + Zack Weinberg + + COMMIT: 0d563783490bf5b2d7d52cab205760fdff5d5650 + Use clock_gettime to implement time. + + * sysdeps/unix/sysv/linux/time.c: Move to... + * sysdeps/generic/time-clockid.h: ... here. + [! __NR_time](sysdeps/posix/time.c): Remove. + [__NR_time](time): Remove. + [__NR_time](libc_hidden_def): Remove. + (stddef.h): Remove include. + (time.h): Remove include. + (sysdep.h): Remove include. + (TIME_CLOCK_GETTIME_CLOCKID): New. + * sysdeps/unix/sysv/linux/powerpc/time.c: Modified. + [! SHARED](sysdeps/posix/time.c): Remove include. + [! SHARED](time/time.c): Include file. + * sysdeps/posix/time.c: Move to... + * sysdeps/unix/sysv/linux/time-clockid.h: ... here. + (stddef.h): Remove include. + (time.h): Remove include. + (sys/time.h): Remove include. + (time): Remove function. + (libc_hidden_def): Remove. + (TIME_CLOCK_GETTIME_CLOCKID): New. + * time/time.c: Modified. + (errno.h): Remove include. + (time): Modified function. + (time-clockid.h): Include file. + +2019-10-30 Zack Weinberg + + COMMIT: c3f9aef063cd9d5911e20d4f2b919ff2914c7965 + Use clock_settime to implement settimeofday. + + * NEWS: Modified. + * include/sys/time.h: Modified. + [! _ISOMAC](__settimeofday): Remove. + [! _ISOMAC](__settimezone): New function. + * sysdeps/unix/clock_settime.c: Move to... + * sysdeps/mach/hurd/clock_settime.c: ... here. + (sys/time.h): Remove include. + (__clock_settime): Modified function. + (hurd.h): Include file. + (hurd/port.h): Include file. + * sysdeps/unix/syscalls.list: Modified. + * sysdeps/unix/sysv/linux/alpha/osf_settimeofday.c: Modified. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)](__settimeofday_tv32): Modified function. + * sysdeps/unix/sysv/linux/alpha/settimeofday.c: New file. + * sysdeps/unix/sysv/linux/alpha/syscalls.list: Modified. + * sysdeps/unix/sysv/linux/alpha/tv32-compat.h: Modified. + (valid_timeval32_to_timespec): New function. + * sysdeps/unix/sysv/linux/settimezone.c: New file. + * time/Makefile: Modified. + * time/settimeofday.c: Modified. + (__settimeofday): Modified function. + [! VERSION_settimeofday](weak_alias): New. + [VERSION_settimeofday](weak_alias): New. + [VERSION_settimeofday](default_symbol_version): New. + (time.h): Include file. + * sysdeps/mach/hurd/settimeofday.c: Move to... + * time/settimezone.c: ... here. + (hurd.h): Remove include. + (hurd/port.h): Remove include. + (__settimeofday): Remove function. + (weak_alias): Remove. + (__settimezone): New function. + +2019-10-30 Zack Weinberg + + COMMIT: 12cbde1dae6fa4a9a792b64564c7e0debf7544cc + Use clock_settime to implement stime; withdraw stime. + + * NEWS: Modified. + * sysdeps/unix/stime.c: Delete file. + * sysdeps/unix/sysv/linux/syscalls.list: Modified. + * time/stime.c: Modified. + (errno.h): Remove include. + (time.h): Remove include. + (stddef.h): Remove include. + (stime): Remove function. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_31)](time.h): New. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_31)](__stime): New. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_31)](compat_symbol): New. + (shlib-compat.h): Include file. + * time/time.h: Modified. + [__USE_MISC](stime): Remove. + +2019-10-30 Zack Weinberg + + COMMIT: 4a39c34c4f85de57fb4e648cfa1e774437d69680 + Change most internal uses of __gettimeofday to __clock_gettime. + + * inet/deadline.c: Modified. + (__deadline_current_time): Modified function. + * login/logout.c: Modified. + (logout): Modified function. + (time.h): Include file. + * login/logwtmp.c: Modified. + (logwtmp): Modified function. + * nis/nis_call.c: Modified. + (__nisfind_server): Modified function. + * nptl/pthread_join_common.c: Modified. + (timedwait_tid): Modified function. + * nptl/pthread_mutex_timedlock.c: Modified. + (__pthread_mutex_clocklock_common): Modified function. + * nscd/nscd_helper.c: Modified. + (wait_on_socket): Modified function. + (open_socket): Modified function. + * resolv/gai_misc.c: Modified. + (handle_requests): Modified function. + * resolv/gai_suspend.c: Modified. + (gai_suspend): Modified function. + * resolv/res_send.c: Modified. + (evNowTime): Modified function. + * sunrpc/auth_des.c: Modified. + (authdes_marshal): Modified function. + (synchronize): Modified function. + (time.h): Include file. + * sunrpc/auth_unix.c: Modified. + (authunix_create): Modified function. + (authunix_refresh): Modified function. + (time.h): Include file. + * sunrpc/create_xid.c: Modified. + (_create_xid): Modified function. + * sunrpc/svcauth_des.c: Modified. + (_svcauth_des): Modified function. + (time.h): Include file. + * support/support_test_main.c: Modified. + (print_timestamp): Modified function. + (signal_handler): Modified function. + * sysdeps/generic/memusage.h: Modified. + [! GETTIME](GETTIME): Modified. + * sysdeps/mach/hurd/getitimer.c: Modified. + (__getitimer): Modified function. + (mach.h): Include file. + * sysdeps/mach/hurd/setitimer.c: Modified. + (setitimer_locked): Modified function. + (mach.h): Include file. + * sysdeps/mach/hurd/times.c: Modified. + (__times): Modified function. + * sysdeps/mach/nanosleep.c: Modified. + (sys/time.h): Remove include. + (__libc_nanosleep): Modified function. + (timespec_sub): New. + * sysdeps/mach/usleep.c: Modified. + (usleep): Modified function. + * sysdeps/posix/tempname.c: Modified. + [! _LIBC](__gettimeofday): Remove. + [! _LIBC](RANDOM_BITS): Modified. + (sys/time.h): Remove include. + (time.h): Include file. + * sysdeps/posix/timespec_get.c: Modified. + (timespec_get): Modified function. + * sysdeps/pthread/aio_misc.c: Modified. + (handle_fildes_io): Modified function. + * sysdeps/pthread/aio_suspend.c: Modified. + (aio_suspend): Modified function. + * sysdeps/unix/make-syscalls.sh: Modified. + +2019-10-30 Zack Weinberg + + COMMIT: 04da832e16a7ba9999ff320869b3d8e623cd8a61 + Linux/Alpha: don't use timeval32 system calls. + + * sysdeps/unix/sysv/linux/Makefile: Modified. + * sysdeps/unix/sysv/linux/adjtime.c: Modified. + [! ADJTIME](ADJTIME): Remove. + [! ADJTIMEX](NO_LOCAL_ADJTIME): Remove. + [! ADJTIMEX](ADJTIMEX): Remove. + [! LINKAGE](LINKAGE): Remove. + [! MOD_OFFSET](modes): Remove. + [! TIMEVAL](TIMEVAL): Remove. + [! TIMEX](TIMEX): Remove. + [NO_LOCAL_ADJTIME](weak_alias): Remove. + (ADJTIME): Remove function. + [! VERSION_adjtime](weak_alias): New. + [VERSION_adjtime](weak_alias): New. + [VERSION_adjtime](default_symbol_version): New. + (__adjtime): New function. + * sysdeps/unix/sysv/linux/adjtimex.c: New file. + * sysdeps/unix/sysv/linux/alpha/Makefile: Modified. + * sysdeps/unix/sysv/linux/alpha/adjtime.c: Modified. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)](timeval32): Remove. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)](timex32): Remove. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)](TIMEVAL): Remove. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)](TIMEX): Remove. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)](ADJTIME): Remove. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)](ADJTIMEX): Remove. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)](ADJTIMEX32): Remove. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)](sysdeps/unix/sysv/linux/adjtime.c): Remove. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)](__adjtimex_tv32): Remove. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)](strong_alias): Remove. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)](strong_alias): Remove. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)](compat_symbol): Remove. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)](compat_symbol): Remove. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)](compat_symbol): Remove. + (shlib-compat.h): Remove include. + (sysdep.h): Remove include. + (sys/time.h): Remove include. + (TIMEVAL): Remove. + (TIMEX): Remove. + (ADJTIME): Remove. + (ADJTIMEX): Remove. + (__adjtimex_tv64): Remove. + (libc_hidden_ver): Remove. + (strong_alias): Remove. + (weak_alias): Remove. + (versioned_symbol): Remove. + (versioned_symbol): Remove. + (versioned_symbol): Remove. + (VERSION_adjtime): New. + * sysdeps/unix/sysv/linux/alpha/adjtimex.c: New file. + * sysdeps/unix/sysv/linux/alpha/osf_adjtime.c: New file. + * sysdeps/unix/sysv/linux/alpha/osf_getitimer.c: New file. + * sysdeps/unix/sysv/linux/alpha/osf_getrusage.c: New file. + * sysdeps/unix/sysv/linux/alpha/osf_gettimeofday.c: New file. + * sysdeps/unix/sysv/linux/alpha/osf_setitimer.c: New file. + * sysdeps/unix/sysv/linux/alpha/osf_settimeofday.c: New file. + * sysdeps/unix/sysv/linux/alpha/osf_utimes.c: New file. + * sysdeps/unix/sysv/linux/alpha/osf_wait4.c: New file. + * sysdeps/unix/sysv/linux/alpha/syscalls.list: Modified. + * sysdeps/unix/sysv/linux/alpha/tv32-compat.h: New file. + * sysdeps/unix/sysv/linux/gettimeofday.c: Modified. + (__gettimeofday): Remove function. + (libc_hidden_def): Remove. + (weak_alias): Remove. + (libc_hidden_weak): Remove. + [! VERSION_gettimeofday](strong_alias): New. + [! VERSION_gettimeofday](weak_alias): New. + [! VERSION_gettimeofday](libc_hidden_def): New. + [! VERSION_gettimeofday](libc_hidden_weak): New. + [VERSION_gettimeofday](weak_alias): New. + [VERSION_gettimeofday](default_symbol_version): New. + [VERSION_gettimeofday](default_symbol_version): New. + [VERSION_gettimeofday](libc_hidden_ver): New. + [VERSION_gettimeofday](libc_hidden_ver): New. + (___gettimeofday): New function. + * sysdeps/unix/sysv/linux/syscalls.list: Modified. + +2019-10-30 Florian Weimer + + COMMIT: 8dddf0bd5a3d57fba8da27e93f3d1a7032fce184 + resolv/tst-idna_name_classify: Isolate from system libraries + + * inet/Makefile: Modified. + +2019-10-30 Svante Signell + + COMMIT: 0b262ca4c64cd9042576ddb9969607c0ea1187d7 + hurd: Support for file record locking + + * sysdeps/mach/hurd/fcntl.c: Modified. + (__libc_fcntl): Modified function. + +2019-10-29 Carlos O'Donell + + COMMIT: eed1f6fcdb0526498223ebfe95f91ef5dec2172a + Comment out initgroups from example nsswitch.conf (Bug 25146) + + * nss/nsswitch.conf: Modified. + +2019-10-27 Lukasz Majewski + + COMMIT: 177a3d48a1c74d7b2cd6bfd48901519d25a5ecad + y2038: linux: Provide __clock_getres64 implementation + + * include/time.h: Modified. + [! _ISOMAC][__TIMESIZE != 64](__clock_getres64): New function. + [! _ISOMAC][__TIMESIZE != 64](libc_hidden_proto): New function. + [! _ISOMAC][__TIMESIZE == 64](__clock_getres64): New. + * sysdeps/unix/sysv/linux/clock_getres.c: Modified. + (kernel-posix-cpu-timers.h): Remove include. + (__clock_getres): Remove function. + [__TIMESIZE != 64](__clock_getres): New. + (kernel-features.h): Include file. + (__clock_getres64): New function. + +2019-10-27 Lukasz Majewski + + COMMIT: 48123656609fea92a154f08ab619ab5186276432 + time: Introduce function to check correctness of nanoseconds value + + * hurd/hurdlock.c: Modified. + (__lll_abstimed_lock): Modified function. + * hurd/hurdselect.c: Modified. + (_hurd_select): Modified function. + (time.h): Include file. + * include/time.h: Modified. + [! _ISOMAC](valid_nanoseconds): New function. + * io/ppoll.c: Modified. + (ppoll): Modified function. + (time.h): Include file. + * nptl/lll_timedlock_wait.c: Modified. + (__lll_clocklock_wait): Modified function. + (time.h): Include file. + * nptl/pthread_cond_wait.c: Modified. + (__pthread_cond_timedwait): Modified function. + (__pthread_cond_clockwait): Modified function. + * nptl/pthread_join_common.c: Modified. + (timedwait_tid): Modified function. + (time.h): Include file. + * nptl/pthread_mutex_timedlock.c: Modified. + (__pthread_mutex_clocklock_common): Modified function. + * nptl/pthread_rwlock_common.c: Modified. + (__pthread_rwlock_rdlock_full): Modified function. + (__pthread_rwlock_wrlock_full): Modified function. + (time.h): Include file. + * nptl/sem_clockwait.c: Modified. + (sem_clockwait): Modified function. + (time.h): Include file. + * nptl/sem_timedwait.c: Modified. + (sem_timedwait): Modified function. + (time.h): Include file. + * sysdeps/htl/pt-cond-timedwait.c: Modified. + (__pthread_cond_timedwait_internal): Modified function. + (time.h): Include file. + * sysdeps/htl/pt-mutex-timedlock.c: Modified. + (__pthread_mutex_timedlock_internal): Modified function. + (time.h): Include file. + * sysdeps/htl/pt-rwlock-timedrdlock.c: Modified. + (__pthread_rwlock_timedrdlock_internal): Modified function. + (time.h): Include file. + * sysdeps/htl/pt-rwlock-timedwrlock.c: Modified. + (__pthread_rwlock_timedwrlock_internal): Modified function. + (time.h): Include file. + * sysdeps/htl/sem-timedwait.c: Modified. + (__sem_timedwait_internal): Modified function. + (time.h): Include file. + * sysdeps/mach/hurd/htl/pt-hurd-cond-timedwait.c: Modified. + (__pthread_hurd_cond_timedwait_internal): Modified function. + (time.h): Include file. + * sysdeps/mach/nanosleep.c: Modified. + (__libc_nanosleep): Modified function. + * sysdeps/pthread/timer_settime.c: Modified. + (timer_settime): Modified function. + * sysdeps/sparc/sparc32/lowlevellock.c: Modified. + [IS_IN (libpthread)](__lll_clocklock_wait): Modified function. + (time.h): Include file. + * sysdeps/unix/clock_nanosleep.c: Modified. + (__clock_nanosleep): Modified function. + * sysdeps/unix/clock_settime.c: Modified. + (__clock_settime): Modified function. + * sysdeps/unix/sysv/linux/clock_settime.c: Modified. + (__clock_settime64): Modified function. + * time/clock_nanosleep.c: Modified. + (__clock_nanosleep): Modified function. + +2019-10-25 Arjun Shankar + + COMMIT: 513aaa0d782f8fae36732d06ca59d658149f0139 + Add Transliterations for Unicode Misc. Mathematical Symbols-A/B [BZ #23132] + + * localedata/Makefile: Modified. + * localedata/locales/translit_neutral: Modified. + * localedata/tst-iconv-math-trans.c: New file. + +2019-10-24 DJ Delorie + + COMMIT: 97476447edff96e526daa1a22d6ed3665181ff93 + Install charmaps uncompressed in testroot + + * Makefile: Modified. + * localedata/Makefile: Modified. + +2019-10-24 DJ Delorie + + COMMIT: 4052fa22f69c0964bb42c0f13daa791617253de5 + Add wait-for-debugger test harness hooks + + * support/support_test_main.c: Modified. + (run_test_function): Modified function. + (support_test_main): Modified function. + (support/support.h): Include file. + (xstdio.h): Include file. + (wait_for_debugger): New. + * support/test-container.c: Modified. + (main): Modified function. + +2019-10-24 Alistair Francis + + COMMIT: acab05949fd28cdac6358f9a143cd010e08914b7 + Define __STATFS_MATCHES_STATFS64 + + * bits/typesizes.h: Modified. + [! _BITS_TYPESIZES_H][! __LP64__](__STATFS_MATCHES_STATFS64): New. + [! _BITS_TYPESIZES_H][__LP64__](__STATFS_MATCHES_STATFS64): New. + * sysdeps/mach/hurd/bits/typesizes.h: Modified. + [! _BITS_TYPESIZES_H](__STATFS_MATCHES_STATFS64): New. + * sysdeps/unix/sysv/linux/alpha/bits/typesizes.h: Modified. + [! _BITS_TYPESIZES_H](__STATFS_MATCHES_STATFS64): New. + * sysdeps/unix/sysv/linux/generic/bits/statfs.h: Modified. + [__WORDSIZE == 64](__field64): Remove. + [__WORDSIZE == 64 || __STATFS_MATCHES_STATFS64](__field64): New. + * sysdeps/unix/sysv/linux/generic/bits/typesizes.h: Modified. + [! _BITS_TYPESIZES_H][! __LP64__](__STATFS_MATCHES_STATFS64): New. + [! _BITS_TYPESIZES_H][__LP64__](__STATFS_MATCHES_STATFS64): New. + * sysdeps/unix/sysv/linux/generic/wordsize-32/overflow.h: Modified. + (statfs_overflow): Modified function. + * sysdeps/unix/sysv/linux/s390/bits/typesizes.h: Modified. + [! _BITS_TYPESIZES_H][! __s390x__](__STATFS_MATCHES_STATFS64): New. + [! _BITS_TYPESIZES_H][__s390x__](__STATFS_MATCHES_STATFS64): New. + * sysdeps/unix/sysv/linux/sparc/bits/typesizes.h: Modified. + [! _BITS_TYPESIZES_H][!(__arch64__ || __sparcv9)](__STATFS_MATCHES_STATFS64): New. + [! _BITS_TYPESIZES_H][__arch64__ || __sparcv9](__STATFS_MATCHES_STATFS64): New. + * sysdeps/unix/sysv/linux/x86/bits/typesizes.h: Modified. + [! _BITS_TYPESIZES_H][! __x86_64__](__STATFS_MATCHES_STATFS64): New. + [! _BITS_TYPESIZES_H][__x86_64__](__STATFS_MATCHES_STATFS64): New. + +2019-10-24 Florian Weimer + + COMMIT: 3007ad2140256e83918ce531435385fa003e9fce + hurd: Fix build after __pread64 usage in the dynamic loader + + * sysdeps/mach/hurd/dl-sysdep.c: Modified. + (check_no_hidden): Modified. + (__read): Modified function. + (libc_hidden_weak): Modified. + (check_no_hidden): Modified. + (libc_hidden_weak): Modified. + (check_no_hidden): Modified. + (check_no_hidden): Modified. + (check_no_hidden): Modified. + (check_no_hidden): Modified. + (check_no_hidden): Modified. + (check_no_hidden): Modified. + (check_no_hidden): Modified. + (check_no_hidden): Modified. + (check_no_hidden): Modified. + (check_no_hidden): Modified. + (check_no_hidden): Modified. + (check_no_hidden): Modified. + (check_no_hidden): Modified. + (__pread64): New function. + (libc_hidden_weak): New. + (check_no_hidden): New function. + +2019-10-23 Alistair Francis + + COMMIT: c82005921ed25cf22959d952c2aded4752f67d99 + sysdeps/stat: Handle 64-bit ino_t types on 32-bit hosts + + * sysdeps/unix/sysv/linux/generic/Makefile: Modified. + * sysdeps/unix/sysv/linux/generic/bits/stat.h: Modified. + [! _BITS_STAT_H][__WORDSIZE == 64](__field64): Remove. + [! _BITS_STAT_H][__WORDSIZE == 64 || __INO_T_MATCHES_INO64_T][__INO_T_MATCHES_INO64_T && ! __OFF_T_MATCHES_OFF64_T](ino_t and off_t must both be the same type"): New. + [! _BITS_STAT_H][__WORDSIZE == 64 || __INO_T_MATCHES_INO64_T](__field64): New. + * sysdeps/unix/sysv/linux/generic/stat-check.c: New file. + * sysdeps/unix/sysv/linux/generic/wordsize-32/overflow.h: Modified. + (stat_overflow): Modified function. + +2019-10-23 Stefan Liebler + + COMMIT: 76aaa13d5d654a2ba0d59cd328b3f5425809aa7e + S390: Remove not needed stack frame in syscall function. + + * sysdeps/unix/sysv/linux/s390/s390-32/syscall.S: Modified. + * sysdeps/unix/sysv/linux/s390/s390-64/syscall.S: Modified. + +2019-10-22 Joseph Myers + DJ Delorie + + COMMIT: 7db1fe38de21831d53ceab9ae83493d8d1aec601 + Fix testroot.pristine creation copying dynamic linker. + + * Makefile: Modified. + +2019-10-21 Wilco Dijkstra + + COMMIT: d0007dc53cc83f22037bf6c7a297fa2e8066a335 + Remove x64 _finite tests and references + + * math/Makefile: Modified. + * sysdeps/x86_64/fpu/Makefile: Modified. + * sysdeps/x86_64/fpu/multiarch/svml_d_exp2_core_sse4.S: Modified. + * sysdeps/x86_64/fpu/multiarch/svml_d_exp4_core_avx2.S: Modified. + * sysdeps/x86_64/fpu/multiarch/svml_d_exp8_core_avx512.S: Modified. + * sysdeps/x86_64/fpu/multiarch/svml_d_log2_core_sse4.S: Modified. + * sysdeps/x86_64/fpu/multiarch/svml_d_log4_core_avx2.S: Modified. + * sysdeps/x86_64/fpu/multiarch/svml_d_log8_core_avx512.S: Modified. + * sysdeps/x86_64/fpu/multiarch/svml_d_pow2_core_sse4.S: Modified. + * sysdeps/x86_64/fpu/multiarch/svml_d_pow4_core_avx2.S: Modified. + * sysdeps/x86_64/fpu/multiarch/svml_d_pow8_core_avx512.S: Modified. + * sysdeps/x86_64/fpu/multiarch/svml_s_expf16_core_avx512.S: Modified. + * sysdeps/x86_64/fpu/multiarch/svml_s_expf4_core_sse4.S: Modified. + * sysdeps/x86_64/fpu/multiarch/svml_s_expf8_core_avx2.S: Modified. + * sysdeps/x86_64/fpu/multiarch/svml_s_logf16_core_avx512.S: Modified. + * sysdeps/x86_64/fpu/multiarch/svml_s_logf4_core_sse4.S: Modified. + * sysdeps/x86_64/fpu/multiarch/svml_s_logf8_core_avx2.S: Modified. + * sysdeps/x86_64/fpu/multiarch/svml_s_powf16_core_avx512.S: Modified. + * sysdeps/x86_64/fpu/multiarch/svml_s_powf4_core_sse4.S: Modified. + * sysdeps/x86_64/fpu/multiarch/svml_s_powf8_core_avx2.S: Modified. + * sysdeps/x86_64/fpu/svml_d_exp2_core.S: Modified. + * sysdeps/x86_64/fpu/svml_d_log2_core.S: Modified. + * sysdeps/x86_64/fpu/svml_d_pow2_core.S: Modified. + * sysdeps/x86_64/fpu/svml_finite_alias.S: Delete file. + * sysdeps/x86_64/fpu/svml_s_expf4_core.S: Modified. + * sysdeps/x86_64/fpu/svml_s_logf4_core.S: Modified. + * sysdeps/x86_64/fpu/svml_s_powf4_core.S: Modified. + * sysdeps/x86_64/fpu/test-double-libmvec-alias-avx-main.c: Delete file. + * sysdeps/x86_64/fpu/test-double-libmvec-alias-avx-mod.c: Delete file. + * sysdeps/x86_64/fpu/test-double-libmvec-alias-avx.c: Delete file. + * sysdeps/x86_64/fpu/test-double-libmvec-alias-avx2-main.c: Delete file. + * sysdeps/x86_64/fpu/test-double-libmvec-alias-avx2-mod.c: Delete file. + * sysdeps/x86_64/fpu/test-double-libmvec-alias-avx2.c: Delete file. + * sysdeps/x86_64/fpu/test-double-libmvec-alias-avx512-main.c: Delete file. + * sysdeps/x86_64/fpu/test-double-libmvec-alias-avx512-mod.c: Delete file. + * sysdeps/x86_64/fpu/test-double-libmvec-alias-avx512.c: Delete file. + * sysdeps/x86_64/fpu/test-double-libmvec-alias-main.c: Delete file. + * sysdeps/x86_64/fpu/test-double-libmvec-alias-mod.c: Delete file. + * sysdeps/x86_64/fpu/test-double-libmvec-alias.c: Delete file. + * sysdeps/x86_64/fpu/test-float-libmvec-alias-avx-main.c: Delete file. + * sysdeps/x86_64/fpu/test-float-libmvec-alias-avx-mod.c: Delete file. + * sysdeps/x86_64/fpu/test-float-libmvec-alias-avx.c: Delete file. + * sysdeps/x86_64/fpu/test-float-libmvec-alias-avx2-main.c: Delete file. + * sysdeps/x86_64/fpu/test-float-libmvec-alias-avx2-mod.c: Delete file. + * sysdeps/x86_64/fpu/test-float-libmvec-alias-avx2.c: Delete file. + * sysdeps/x86_64/fpu/test-float-libmvec-alias-avx512-main.c: Delete file. + * sysdeps/x86_64/fpu/test-float-libmvec-alias-avx512-mod.c: Delete file. + * sysdeps/x86_64/fpu/test-float-libmvec-alias-avx512.c: Delete file. + * sysdeps/x86_64/fpu/test-float-libmvec-alias-main.c: Delete file. + * sysdeps/x86_64/fpu/test-float-libmvec-alias-mod.c: Delete file. + * sysdeps/x86_64/fpu/test-float-libmvec-alias.c: Delete file. + * sysdeps/x86_64/fpu/test-libmvec-alias-mod.c: Delete file. + +2019-10-21 Wilco Dijkstra + + COMMIT: 55d530114ef3513eb8588e31e3850f04ac608077 + Remove finite-math tests + + * math/Makefile: Modified. + * math/gen-libm-test.py: Modified. + * math/libm-test-driver.c: Modified. + [TEST_FINITE](TEST_MSG): Remove. + (flag_test_finite): Remove. + * math/libm-test-support.c: Modified. + (enable_test): Modified function. + * math/libm-test-support.h: Modified. + (flag_test_finite): Remove. + (NON_FINITE): Remove. + * math/test-finite-macros.c: Delete file. + * math/test-math-no-finite.h: Move to... + * math/test-math-exceptions.h: ... here. + (TEST_FINITE): Remove. + * math/test-math-finite.h: Delete file. + * math/test-math-inline.h: Modified. + (TEST_FINITE): Remove. + * math/test-math-vector.h: Modified. + (TEST_FINITE): Remove. + * math/test-signgam-finite-c11.c: Delete file. + * math/test-signgam-finite-c99.c: Delete file. + * math/test-signgam-finite.c: Delete file. + +2019-10-21 Wilco Dijkstra + + COMMIT: 7bdb921d70bf9f93948e2e311fef9ef439314e41 + Remove math-finite.h + + * bits/math-finite.h: Delete file. + * math/Makefile: Modified. + * math/math.h: Modified. + * sysdeps/ia64/fpu/bits/math-finite.h: Delete file. + +2019-10-20 Lukasz Majewski + + COMMIT: e8ac1f71c8547a1dd6cd0c7133070e2219070d8e + Include explicitly in Linux clock_settime.c + + * sysdeps/unix/sysv/linux/clock_settime.c: Modified. + (kernel-features.h): Include file. + +2019-10-18 DJ Delorie + + COMMIT: ef21bd2d8c6805c0c186a01f7c5039189f51b8c4 + loadarchive: guard against locale-archive corruption (Bug #25115) + + * locale/loadarchive.c: Modified. + (_nl_load_locale_from_archive): Modified function. + +2019-10-18 Carlos O'Donell + + COMMIT: 676b2f2050a354b7e1bdf4fec9406c9ed00b44f5 + nptl: Document AS-safe functions in cancellation.c. + + * nptl/cancellation.c: Modified. + +2019-10-18 Leandro Pereira + + COMMIT: 95c1056962a3f2297c94ce47f0eaf0c5b6563231 + elf: Use nocancel pread64() instead of lseek()+read() + + * elf/dl-load.c: Modified. + [! EXTERNAL_MAP_FROM_FD](_dl_map_object_from_fd): Modified function. + (open_verify): Modified function. + * sysdeps/x86/dl-prop.h: Modified. + [FILEBUF_SIZE](_dl_process_pt_note): Modified function. + +2019-10-18 Leandro Pereira + + COMMIT: fed33b0fb03d1942a6713286176d42869c0f1580 + Add nocancel version of pread64() + + * sysdeps/generic/not-cancel.h: Modified. + (__pread64_nocancel): New. + * sysdeps/unix/sysv/linux/Makefile: Modified. + * sysdeps/unix/sysv/linux/Versions: Modified. + * sysdeps/unix/sysv/linux/not-cancel.h: Modified. + [IS_IN (libc) || IS_IN (rtld)](hidden_proto): Modified. + [IS_IN (libc) || IS_IN (rtld)](hidden_proto): Modified. + [IS_IN (libc) || IS_IN (rtld)](hidden_proto): Modified. + [IS_IN (libc) || IS_IN (rtld)](hidden_proto): Modified. + [IS_IN (libc) || IS_IN (rtld)](hidden_proto): Modified. + [IS_IN (libc) || IS_IN (rtld)](hidden_proto): Modified. + [IS_IN (libc) || IS_IN (rtld)](hidden_proto): New. + (__pread64_nocancel): New. + * sysdeps/unix/sysv/linux/pread64_nocancel.c: New file. + +2019-10-18 DJ Delorie + + COMMIT: 2ac579f9c25388a7734948d77b03e4dd10f35334 + Add run-one-test convenience target and makefile help text + + * Makefile: Modified. + * Makefile.help: New file. + +2019-10-18 Adhemerval Zanella + + COMMIT: 720e9541f5d919f3735925a4e6324ecdec171844 + Update sysvipc kernel-features.h files for Linux 5.1 + + * sysdeps/unix/sysv/linux/i386/kernel-features.h: Modified. + (__ASSUME_DIRECT_SYSVIPC_SYSCALLS): Remove. + (__ASSUME_SYSVIPC_DEFAULT_IPC_64): Remove. + [__LINUX_KERNEL_VERSION < 0x050100](__ASSUME_DIRECT_SYSVIPC_SYSCALLS): New. + [__LINUX_KERNEL_VERSION < 0x050100](__ASSUME_SYSVIPC_DEFAULT_IPC_64): New. + * sysdeps/unix/sysv/linux/m68k/kernel-features.h: Modified. + (__ASSUME_DIRECT_SYSVIPC_SYSCALLS): Remove. + (__ASSUME_SYSVIPC_DEFAULT_IPC_64): Remove. + [__LINUX_KERNEL_VERSION < 0x050100](__ASSUME_DIRECT_SYSVIPC_SYSCALLS): New. + [__LINUX_KERNEL_VERSION < 0x050100](__ASSUME_SYSVIPC_DEFAULT_IPC_64): New. + * sysdeps/unix/sysv/linux/mips/kernel-features.h: Modified. + [_MIPS_SIM == _ABIO32](__ASSUME_DIRECT_SYSVIPC_SYSCALLS): Remove. + [_MIPS_SIM == _ABIO32][__LINUX_KERNEL_VERSION < 0x050100](__ASSUME_DIRECT_SYSVIPC_SYSCALLS): New. + [_MIPS_SIM == _ABIO32][__LINUX_KERNEL_VERSION < 0x050100](__ASSUME_SYSVIPC_DEFAULT_IPC_64): New. + (__ASSUME_SYSVIPC_DEFAULT_IPC_64): Remove. + [_MIPS_SIM != _ABIO32](__ASSUME_SYSVIPC_DEFAULT_IPC_64): New. + * sysdeps/unix/sysv/linux/msgctl.c: Modified. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)](__old_msgctl): Modified function. + * sysdeps/unix/sysv/linux/powerpc/kernel-features.h: Modified. + (__ASSUME_DIRECT_SYSVIPC_SYSCALLS): Remove. + (__ASSUME_SYSVIPC_DEFAULT_IPC_64): Remove. + [__LINUX_KERNEL_VERSION < 0x050100](__ASSUME_DIRECT_SYSVIPC_SYSCALLS): New. + [__LINUX_KERNEL_VERSION < 0x050100](__ASSUME_SYSVIPC_DEFAULT_IPC_64): New. + * sysdeps/unix/sysv/linux/s390/kernel-features.h: Modified. + (__ASSUME_DIRECT_SYSVIPC_SYSCALLS): Remove. + (__ASSUME_SYSVIPC_DEFAULT_IPC_64): Remove. + [__LINUX_KERNEL_VERSION < 0x050100](__ASSUME_DIRECT_SYSVIPC_SYSCALLS): New. + [__LINUX_KERNEL_VERSION < 0x050100](__ASSUME_SYSVIPC_DEFAULT_IPC_64): New. + * sysdeps/unix/sysv/linux/semctl.c: Modified. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)](__old_semctl): Modified function. + * sysdeps/unix/sysv/linux/semtimedop.c: Modified. + (__semtimedop): Modified function. + * sysdeps/unix/sysv/linux/sh/kernel-features.h: Modified. + [__LINUX_KERNEL_VERSION < 0x050100](__ASSUME_DIRECT_SYSVIPC_SYSCALLS): New. + [__LINUX_KERNEL_VERSION < 0x050100](__ASSUME_SYSVIPC_DEFAULT_IPC_64): New. + (__ASSUME_DIRECT_SYSVIPC_SYSCALLS): Remove. + (__ASSUME_SYSVIPC_DEFAULT_IPC_64): Remove. + * sysdeps/unix/sysv/linux/shmctl.c: Modified. + [SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2)](__old_shmctl): Modified function. + * sysdeps/unix/sysv/linux/sparc/kernel-features.h: Modified. + [! __arch64__](__ASSUME_SYSVIPC_DEFAULT_IPC_64): Remove. + (__ASSUME_DIRECT_SYSVIPC_SYSCALLS): Remove. + [__LINUX_KERNEL_VERSION < 0x050100][! __arch64__](__ASSUME_SYSVIPC_DEFAULT_IPC_64): New. + [__LINUX_KERNEL_VERSION < 0x050100](__ASSUME_DIRECT_SYSVIPC_SYSCALLS): New. + +2019-10-18 Stefan Liebler + + COMMIT: 2901743568452403849be7295c8732faa7732339 + S390: Add new s390 platform z15. + + * sysdeps/s390/dl-procinfo.c: Modified. + * sysdeps/s390/dl-procinfo.h: Modified. + (_DL_PLATFORMS_COUNT): Modified. + +2019-10-18 Florian Weimer + + COMMIT: e4b3707cea0eae2cf46a82534dd9279541e7415a + nptl: SIGCANCEL, SIGTIMER, SIGSETXID are always defined + + * nptl/allocatestack.c: Modified. + [SIGSETXID](setxid_mark_thread): Remove. + [SIGSETXID](setxid_unmark_thread): Remove. + [SIGSETXID](setxid_signal_thread): Remove. + [SIGSETXID](__nptl_setxid_error): Remove. + [SIGSETXID](__nptl_setxid): Remove. + (setxid_mark_thread): New function. + (setxid_unmark_thread): New function. + (setxid_signal_thread): New function. + (__nptl_setxid_error): New function. + (__nptl_setxid): New function. + * nptl/nptl-init.c: Modified. + [SIGCANCEL](sigcancel_handler): Remove. + [SIGSETXID](__xidcmd): Remove. + [SIGSETXID](sighandler_setxid): Remove. + (__pthread_initialize_minimal_internal): Modified function. + (sigcancel_handler): New function. + (__xidcmd): New. + (sighandler_setxid): New function. + * nptl/pthread_cancel.c: Modified. + (__pthread_cancel): Modified function. + * nptl/pthread_create.c: Modified. + [SIGCANCEL](if): Remove. + (if): Modified function. + (if): Modified function. + (if): Modified function. + (if): Modified function. + (if): Modified function. + (if): Modified function. + (if): Modified function. + (if): Modified function. + (if): Modified function. + (if): New function. + * nptl/pthread_setcanceltype.c: Modified. + (__pthread_setcanceltype): Modified function. + * nptl/pthread_sigmask.c: Modified. + [SIGCANCEL || SIGTIMER || SIGSETXID](This implementation assumes no internal-only signal numbers."): Remove. + (pthread_sigmask): Modified function. + (sysdep.h): Include file. + * nptl/tst-cancel25.c: Modified. + (tf2): Modified function. + * nptl/tst-signal7.c: Modified. + (do_test): Modified function. + * sysdeps/nptl/allocrtsig.c: Modified. + [! SIGCANCEL](SIGCANCEL_CONSUMES): Remove. + [!(( SIGSETXID && (! SIGCANCEL || SIGSETXID != SIGCANCEL) && (! SIGTIMER || SIGSETXID != SIGTIMER)))](SIGSETXID_CONSUMES): Remove. + [!(SIGTIMER && (! SIGCANCEL || SIGTIMER != SIGCANCEL))](SIGTIMER_CONSUMES): Remove. + [( SIGSETXID && (! SIGCANCEL || SIGSETXID != SIGCANCEL) && (! SIGTIMER || SIGSETXID != SIGTIMER))](SIGSETXID_CONSUMES): Remove. + [SIGCANCEL](SIGCANCEL_CONSUMES): Remove. + [SIGTIMER && (! SIGCANCEL || SIGTIMER != SIGCANCEL)](SIGTIMER_CONSUMES): Remove. + (RESERVED_SIGRT): Modified. + [SIGTIMER != SIGCANCEL](SIGTIMER and SIGCANCEL must be the same"): New. + * sysdeps/unix/sysv/linux/pthread_sigmask.c: Delete file. + +2019-10-18 Florian Weimer + + COMMIT: 5e20aae5ee087f394f276bd556c5c1df52d76ff9 + nptl/tst-cancel25 needs to be an internal test + + * nptl/Makefile: Modified. + * nptl/tst-cancel25.c: Modified. + (internal-signals.h): Include file. + +2019-10-17 Florian Weimer + + COMMIT: e3f764b6f2152824692b0b77e1c71416cb2acf78 + Remove libc_hidden_def from __semtimedop stub + + * sysvipc/semtimedop.c: Modified. + (libc_hidden_def): Remove. + +2019-10-17 Adhemerval Zanella + + COMMIT: 765cdd0bffd77960ae852104fc4ea5edcdb8aed3 + sysvipc: Implement semop based on semtimedop + + * include/sys/sem.h: Modified. + [! _ISOMAC](__typeof__): New. + * sysdeps/unix/sysv/linux/semop.c: Modified. + (semop): Modified function. + * sysdeps/unix/sysv/linux/semtimedop.c: Modified. + (semtimedop): Remove function. + (__semtimedop): New function. + (weak_alias): New. + * sysvipc/semtimedop.c: Modified. + (semtimedop): Remove function. + (__semtimedop): New function. + (weak_alias): New. + (libc_hidden_def): New. + +2019-10-17 Adhemerval Zanella + + COMMIT: 06436acf819d9e6ada7be3ca977d5c0a23d3f138 + ipc: Refactor sysvipc internal definitions + + * sysdeps/unix/sysv/linux/alpha/ipc_priv.h: Modified. + (sys/ipc.h): Remove include. + (__IPC_64): Remove. + (__old_ipc_perm): Remove. + (__OLD_IPC_ID_TYPE): New. + (__OLD_IPC_MODE_TYPE): New. + (sysdeps/unix/sysv/linux/ipc_priv.h): Include file. + * sysdeps/unix/sysv/linux/alpha/kernel-features.h: Modified. + (__ASSUME_SYSVIPC_DEFAULT_IPC_64): New. + * sysdeps/unix/sysv/linux/arm/kernel-features.h: Modified. + (__ASSUME_SYSVIPC_DEFAULT_IPC_64): New. + * sysdeps/unix/sysv/linux/hppa/ipc_priv.h: Delete file. + * sysdeps/unix/sysv/linux/i386/kernel-features.h: Modified. + (__ASSUME_SYSVIPC_DEFAULT_IPC_64): New. + * sysdeps/unix/sysv/linux/ia64/ipc_priv.h: Delete file. + * sysdeps/unix/sysv/linux/ipc_priv.h: Modified. + (__IPC_64): Remove. + (__old_ipc_perm): Modified. + [! __ASSUME_SYSVIPC_DEFAULT_IPC_64](__IPC_64): New. + [! __OLD_IPC_ID_TYPE](__OLD_IPC_ID_TYPE): New. + [! __OLD_IPC_MODE_TYPE](__OLD_IPC_MODE_TYPE): New. + [__ASSUME_SYSVIPC_DEFAULT_IPC_64](__IPC_64): New. + (kernel-features.h): Include file. + * sysdeps/unix/sysv/linux/kernel-features.h: Modified. + (__ASSUME_SYSVIPC_DEFAULT_IPC_64): New. + * sysdeps/unix/sysv/linux/m68k/kernel-features.h: Modified. + (__ASSUME_SYSVIPC_DEFAULT_IPC_64): New. + * sysdeps/unix/sysv/linux/microblaze/kernel-features.h: Modified. + (__ASSUME_SYSVIPC_DEFAULT_IPC_64): New. + * sysdeps/unix/sysv/linux/mips/kernel-features.h: Modified. + (__ASSUME_SYSVIPC_DEFAULT_IPC_64): New. + * sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h: Modified. + (sys/ipc.h): Remove include. + (__IPC_64): Remove. + (__old_ipc_perm): Remove. + (__OLD_IPC_ID_TYPE): New. + (__OLD_IPC_MODE_TYPE): New. + (sysdeps/unix/sysv/linux/ipc_priv.h): Include file. + * sysdeps/unix/sysv/linux/nios2/ipc_priv.h: Delete file. + * sysdeps/unix/sysv/linux/csky/ipc_priv.h: Move to... + * sysdeps/unix/sysv/linux/nios2/kernel-features.h: ... here. + (sys/ipc.h): Remove include. + (__IPC_64): Remove. + (_next + + COMMIT: 7d3db434f910c23591f748a6d0ac3548af1048bb + Rename and split elf/tst-dlopen-aout collection of tests + + * elf/Makefile: Modified. + * elf/tst-dlopen-self-container.c: New file. + * elf/tst-dlopen-aout-container.c: Move to... + * elf/tst-dlopen-self-pie.c: ... here. + (tst-dlopen-aout.c): Remove include. + (tst-dlopen-self.c): Include file. + * elf/tst-dlopen-self.c: New file. + * elf/tst-dlopen-tlsmodid-container.c: New file. + * elf/tst-dlopen-aout-pie.c: Move to... + * elf/tst-dlopen-tlsmodid-pie.c: ... here. + (tst-dlopen-aout.c): Remove include. + (TST_DLOPEN_TLSMODID_PATH): New. + (tst-dlopen-tlsmodid.h): Include file. + * elf/tst-dlopen-tlsmodid.c: New file. + * elf/tst-dlopen-aout.c: Move to... + * elf/tst-dlopen-tlsmodid.h: ... here. + (check_dlopen_failure): Modified function. + (do_test): Modified function. + +2019-10-16 Florian Weimer + + COMMIT: eb77a1fccc7e60cea32245c11288c7f1d92545fa + dlfcn: Remove remnants of caller sensitivity from dlinfo + + * dlfcn/dlinfo.c: Modified. + [! SHARED && IS_IN (libdl)](dlinfo): Modified function. + [!(! SHARED && IS_IN (libdl))](dlinfo_args): Modified. + [!(! SHARED && IS_IN (libdl))](dlinfo_doit): Modified function. + [!(! SHARED && IS_IN (libdl))](__dlinfo): Modified function. + * include/dlfcn.h: Modified. + [! _ISOMAC](dlfcn_hook): Modified. + [! _ISOMAC](__dlinfo): Modified. + +2019-10-16 Andreas Schwab + + COMMIT: 58e8f5fd2ba47b6dc47fd4d0a35e4175c7c87aaa + ldconfig: handle .dynstr located in separate segment (bug 25087) + + * elf/readelflib.c: Modified. + (process_elf_file): Modified function. + +2019-10-15 Florian Weimer + + COMMIT: e7c8ffe4ec059da1523c093d6a240cd87d154df2 + ldd: Print "not a dynamic executable" on standard error [BZ #24150] + + * elf/ldd.bash.in: Modified. + +2019-10-14 Joseph Myers + + COMMIT: d1e411e5c786ce3028d98b4e6fc02c2fcf66ae37 + Add PTRACE_GET_SYSCALL_INFO from Linux 5.3 to sys/ptrace.h. + + * sysdeps/unix/sysv/linux/aarch64/sys/ptrace.h: Modified. + (__ptrace_request): Modified. + * sysdeps/unix/sysv/linux/arm/sys/ptrace.h: Modified. + (__ptrace_request): Modified. + * sysdeps/unix/sysv/linux/bits/ptrace-shared.h: Modified. + (__ptrace_get_syscall_info_op): New. + (__ptrace_syscall_info): New. + * sysdeps/unix/sysv/linux/ia64/sys/ptrace.h: Modified. + (__ptrace_request): Modified. + * sysdeps/unix/sysv/linux/powerpc/sys/ptrace.h: Modified. + [_LINUX_PTRACE_H || _ASM_POWERPC_PTRACE_H](PTRACE_GET_SYSCALL_INFO): New. + [_LINUX_PTRACE_H || _ASM_POWERPC_PTRACE_H](PTRACE_SYSCALL_INFO_NONE): New. + [_LINUX_PTRACE_H || _ASM_POWERPC_PTRACE_H](PTRACE_SYSCALL_INFO_ENTRY): New. + [_LINUX_PTRACE_H || _ASM_POWERPC_PTRACE_H](PTRACE_SYSCALL_INFO_EXIT): New. + [_LINUX_PTRACE_H || _ASM_POWERPC_PTRACE_H](PTRACE_SYSCALL_INFO_SECCOMP): New. + (__ptrace_request): Modified. + * sysdeps/unix/sysv/linux/s390/sys/ptrace.h: Modified. + [_LINUX_PTRACE_H || _S390_PTRACE_H](PTRACE_GET_SYSCALL_INFO): New. + [_LINUX_PTRACE_H || _S390_PTRACE_H](PTRACE_SYSCALL_INFO_NONE): New. + [_LINUX_PTRACE_H || _S390_PTRACE_H](PTRACE_SYSCALL_INFO_ENTRY): New. + [_LINUX_PTRACE_H || _S390_PTRACE_H](PTRACE_SYSCALL_INFO_EXIT): New. + [_LINUX_PTRACE_H || _S390_PTRACE_H](PTRACE_SYSCALL_INFO_SECCOMP): New. + (__ptrace_request): Modified. + * sysdeps/unix/sysv/linux/sparc/sys/ptrace.h: Modified. + (__ptrace_request): Modified. + * sysdeps/unix/sysv/linux/sys/ptrace.h: Modified. + (__ptrace_request): Modified. + * sysdeps/unix/sysv/linux/x86/sys/ptrace.h: Modified. + (__ptrace_request): Modified. + diff --git a/ChangeLog.old/ChangeLog.5 b/ChangeLog.old/ChangeLog.5 index 6d92ec5626..57a87a5037 100644 --- a/ChangeLog.old/ChangeLog.5 +++ b/ChangeLog.old/ChangeLog.5 @@ -5440,7 +5440,7 @@ Tue Jan 16 17:37:39 1996 Roland McGrath Sun Jan 14 01:01:10 1996 Ulrich Drepper - * sysdeps/mips/bytesex.h: Add default byte sex. By Ralf Baechle. + * sysdeps/mips/bytesex.h: Add default byte sex. By Ralf Bächle. * sysdeps/unix/sysv/linux/adjtime.c [! MOD_OFFSET]: Use `mode' member of `struct timex' instead of `modes'. From Andreas Schwab. diff --git a/ChangeLog.old/ChangeLog.6 b/ChangeLog.old/ChangeLog.6 index 96fdef90b7..ec5e00efc2 100644 --- a/ChangeLog.old/ChangeLog.6 +++ b/ChangeLog.old/ChangeLog.6 @@ -1636,7 +1636,7 @@ Thu Dec 19 20:58:53 1996 Ulrich Drepper Define __USE_POSIX199309. * posix/unistd.h: Declare fdatasync only if __USE_POSIX199309. * time/time.c: Declare nanosleep only if __USE_POSIX199309. - Patches by Rdiger Helsch . + Patches by Rüdiger Helsch . * locale/locale.h: Add declaration of newlocale and freelocale. @@ -5519,7 +5519,7 @@ Thu Sep 26 14:40:10 1996 Ulrich Drepper * sysdeps/posix/pathconf.c: Pass descriptor for just opened file to fpathconf. - Reported by Martin von Loewis . + Reported by Martin von Löwis . Thu Sep 26 04:02:43 1996 Ulrich Drepper diff --git a/ChangeLog.old/ChangeLog.7 b/ChangeLog.old/ChangeLog.7 index cc1a5a79f8..3611c548c1 100644 --- a/ChangeLog.old/ChangeLog.7 +++ b/ChangeLog.old/ChangeLog.7 @@ -415,7 +415,7 @@ definition. Patch by Zack Weinberg . * stdlib/strtod.c: Handle numbers like 0.0e10000 correctly which - produce 0.0. Reported by Joe Keane . + produce ±0.0. Reported by Joe Keane . * sysdeps/libm-ieee754/s_ceill.c: Fix typos. * sysdeps/libm-ieee754/s_llrint.c: Correct code, it never worked. @@ -4010,7 +4010,7 @@ * login/getutid.c: Rename to __getutid and make getutid and getutxid weak aliases. - Patch by ir. Mark M._Kettenis . + Patch by ir. Mark M. Kettenis . 1997-08-11 23:55 Ulrich Drepper @@ -5401,7 +5401,7 @@ 1997-06-30 14:49 H.J. Lu - From Ralf Baechle on + From Ralf Bächle on Sat Jun 21 18:11:21 1997: * sysdeps/unix/sysv/linux/syscalls.list (swapon): Add __swapon alias. @@ -5782,7 +5782,7 @@ 1997-07-05 11:56 Ulrich Drepper * login/login.c (tty_name): Use newly allocated buffer. - Patch by Jaakko Hyvtti . + Patch by Jaakko Hyvätti . * time/asctime.c: Never translate week and month name according to LC_TIME. Patch by Paul Eggert . @@ -9333,7 +9333,7 @@ * string/tst-svc.c: New file. Test for strverscmp. * string/tst-svc.input: New file. Input data for tst-svc. * string/tst-svc.expect: New file. Expected out from tst-svc. - Patches by Jean-Franois Bignolles . + Patches by Jean-François Bignolles . * math/Makefile (calls): Add s_signbit. @@ -14547,7 +14547,7 @@ * malloc/malloc.h (__malloc_initialized) [_LIBC]: Define as __libc_malloc_initialized so that this variable is not shared with other users of GNU malloc. - Suggested by Martin von Loewis . + Suggested by Martin von Löwis . * mcheck.h: Correct typo. Use malloc/ instead of new-malloc/. diff --git a/ChangeLog.old/ChangeLog.8 b/ChangeLog.old/ChangeLog.8 index 52b85a6270..c48660d23a 100644 --- a/ChangeLog.old/ChangeLog.8 +++ b/ChangeLog.old/ChangeLog.8 @@ -6025,7 +6025,7 @@ (Host Address Functions): Use uint32_t consequently and add a number of clarifications for IPv4/IPv6, classless addresses. (Internet Namespace): Added some paragraphs about IPv6. - Based on suggestions by Francesco Potorti` . + Based on suggestions by Francesco Potortì . 1998-04-05 Philip Blundell @@ -6565,7 +6565,7 @@ * manual/examples/mkfsock.c (make_named_socket): Removed blank lines for clarification. (make_named_socket): Use strncpy instead of strcpy. - Reported by Francesco Potorti` . + Reported by Francesco Potortì . 1998-03-30 13:28 Ulrich Drepper @@ -7975,7 +7975,7 @@ * sysdeps/generic/getresuid.c (__getresuid): Use ISO C declaration style to avoid warnings. -1998-03-06 11:48 Mark M._Kettenis +1998-03-06 11:48 Mark M. Kettenis * elf/rtld.c (process_dl_debug): Fix typo: "DL_DEBUG" -> "LD_DEBUG". @@ -8314,7 +8314,7 @@ 1998-02-27 Ulrich Drepper * misc/efgcvt_r.c (APPEND): Handle printing of 0.0 correctly. - Reported by Gran Uddeborg . + Reported by Göran Uddeborg . * misc/tst-efgcvt.c (ecvt_tests): Add new test case for reported bug. @@ -8322,7 +8322,7 @@ 1998-02-25 Andreas Jaeger * manual/arith.texi (Old-style number conversion): Correct - typo. Reported by Gran Uddeborg . + typo. Reported by Göran Uddeborg . 1998-02-27 Ulrich Drepper @@ -12044,7 +12044,7 @@ * libio/stdio.h: Correct comment of sys_nerr/sys_errlist. -1997-11-25 Paul Eggert +1997-11-25 Paul Eggert * strftime.c (strftime): No longer any need to undef or declare if emacs is defined. diff --git a/ChangeLog.old/ChangeLog.9 b/ChangeLog.old/ChangeLog.9 index 11b6cd2f52..d9fc744ae3 100644 --- a/ChangeLog.old/ChangeLog.9 +++ b/ChangeLog.old/ChangeLog.9 @@ -727,7 +727,7 @@ 1998-12-30 Andreas Jaeger - Patche by Ralf Baechle : + Patche by Ralf Bächle : * sysdeps/mips/sys/regdef.h: New file, enhanced versions of deleted linux specific files. @@ -1098,7 +1098,7 @@ 1998-12-30 Andreas Jaeger - Patches by Ralf Baechle : + Patches by Ralf Bächle : * sysdeps/unix/sysv/linux/mips/sgidefs.h: Removed. * sysdeps/unix/sysv/linux/mips/sys/asm.h: Removed. * sysdeps/unix/sysv/linux/mips/sys/regdef.h: Removed. @@ -1169,7 +1169,7 @@ 1998-12-28 Andreas Jaeger - Patches by Ralf Baechle for Linux/MIPS: + Patches by Ralf Bächle for Linux/MIPS: * sysdeps/unix/sysv/linux/mips/syscalls.list: Add ipc, change pread/pwrite and llseek calls. @@ -2213,7 +2213,7 @@ and add needed symbols from ; bring in sync with linux specific version. - Patches by Ralf Baechle for mips-linux: + Patches by Ralf Bächle for mips-linux: * sysdeps/unix/mips/sysdep.S: Define _errno as weak_alias, rewrite errno declaration. @@ -2772,7 +2772,7 @@ * elf/dynamic-link.h (_ELF_DYNAMIC_DO_RELOC): Rename macro parameter lazy to do_lazy to avoid clashing with struct member name. - Reported by Ralf Baechle . + Reported by Ralf Bächle . 1998-11-10 H.J. Lu @@ -4060,7 +4060,7 @@ * sysdeps/unix/sysv/linux/bits/fcntl.h: Add dummy definition of O_LARGEFILE back. -1998-10-16 Paul Eggert +1998-10-16 Paul Eggert * time/mktime.c: Some systems require to be included before for localtime_r to be declared @@ -4618,7 +4618,7 @@ strftime, and check to see whether strftime has set the buffer to zero. This lets us distinguish between an empty buffer and an error. -1998-09-24 Paul Eggert +1998-09-24 Paul Eggert * time/strftime.c (INT_STRLEN_BOUND): Fix typo by changing 100 to 1000. This fix is propagated from tzcode1998g.tar.gz. diff --git a/ChangeLog.old/ChangeLog.localedata b/ChangeLog.old/ChangeLog.localedata index 7f50584639..6f65b07c3a 100644 --- a/ChangeLog.old/ChangeLog.localedata +++ b/ChangeLog.old/ChangeLog.localedata @@ -640,7 +640,7 @@ * locales/sl_SI (LC_IDENTIFICATION): Fix inappropriate escape sequence. * locales/ta_LK (LC_IDENTIFICATION): Fix inappropriate escape sequence. -2017-07-21 Rafal Luzynski +2017-07-21 Rafał Lużyński Indian scripts: abmon imported from CLDRv31 (related with BZ#21217). @@ -780,7 +780,7 @@ * locales/sc_IT (LC_TIME): Fix mispelled day/abday/mon/abmon and fix date_fmt. -2017-07-21 Rafal Luzynski +2017-07-21 Rafał Lużyński [BZ #21783] * locales/lg_UG (LC_TELEPHONE): Move all comments above the @@ -1070,7 +1070,7 @@ [BZ #21721] * locales/ks_IN@devanagari: Fix full weekday names, add yesstr and nostr -2017-07-06 Rafal Luzynski +2017-07-06 Rafał Lużyński Arabic scripts: More fixes after the recent import. @@ -1122,7 +1122,7 @@ [BZ #21706] * locales/br_FR (LC_MESSAGES): add yesstr and nostr -2017-06-30 Rafal Luzynski +2017-06-30 Rafał Lużyński * locales/br_FR (abmon): Reworded "Eve " to "Mezh". * locales/fy_NL (abmon): Reworded "Maa" (March) to @@ -1150,7 +1150,7 @@ updates the language endonym in a bunch of locales based on CLDR v 31.0.1 data -2017-06-16 Rafal Luzynski +2017-06-16 Rafał Lużyński [BZ #21217] * locales/be_BY (mon, abmon): Reworded "Травень" ("travyen'") @@ -1235,12 +1235,12 @@ * locales/yi_US (mon): Likewise. * locales/yue_HK (mon): Likewise. -2017-06-22 Rafal Luzynski +2017-06-22 Rafał Lużyński * locales/fur_IT (day, abday): reworded "Miarcus" to "Miercus" and abbreviated "Mia" to "Mie". -2017-06-13 Rafal Luzynski +2017-06-13 Rafał Lużyński [BZ #21207] * locales/ce_RU (day): Updated (imported) from CLDR. Uppercase letters @@ -1249,7 +1249,7 @@ "I" replaced with Cyrillic "Ӏ" ("Palochka", Unicode: U04C0). Trailing spaces removed. -2017-06-13 Rafal Luzynski +2017-06-13 Rafał Lużyński * localedata/locales/mag_IN (abday, day): Consistently use uppercase hexadecimal in notation. @@ -3021,13 +3021,13 @@ * locales/zh_SG: Likewise. * locales/zh_TW: Likewise. -2016-04-13 Matthias Wallnoefer +2016-04-13 Matthias Wallnöfer * locales/de_IT: New locale. * SUPPORTED (SUPPORTED-LOCALES): Add de_IT.UTF-8/UTF-8 and de_IT/ISO-8859-1. -2016-04-13 Matthias Wallnoefer +2016-04-13 Matthias Wallnöfer * locales/de_AT (LC_MESSAGES): Change to copy de_DE. (LC_NAME): Likewise. @@ -6105,7 +6105,7 @@ [BZ #14368] * locales/szl_PL: New Silesian Language Locale for Poland. - Contributed by Przemyslaw Buczkowski . + Contributed by Przemysław Buczkowski . * localedata/SUPPORTED (SUPPORTED-LOCALES): Add szl_PL. [BZ # 14828] @@ -6224,13 +6224,13 @@ * locales/es_PR: Likewise. * locales/es_SV: Likewise. -2012-06-20 Petr Baudis +2012-06-20 Petr Baudiš * locales/mag_IN: Fix comment character. * locales/tr_CY (LC_TIME): Remove redundant first_weekday and first_workday. -2012-06-04 Petr Baudis +2012-06-04 Petr Baudiš [BZ#13996] * locales/tr_TR: Change currency from YTL to TL. @@ -6288,7 +6288,7 @@ [BZ #6770] * locales/ca_ES (LC_TIME): Add first_weekday and first_workday. -2012-04-04 Petr Baudis +2012-04-04 Petr Baudiš [BZ #6770] * locales/ca_ES: This locale is now maintained by Jordi Mallach. @@ -6726,7 +6726,7 @@ [BZ #10425] * locales/it_IT: Fix date_fmt. * locales/it_CH: Likewise. - Patch by Nicolo' Chieffo . + Patch by Nicolò Chieffo . * locales/POSIX: Define yesstr and nostr. * locales/en_US: Likewise. @@ -8084,7 +8084,7 @@ [BZ #448] * locales/vi_VN: Several fixes. - Patch by Nguyen Thai Ngoc Duy . + Patch by Nguyễn Thái Ngọc Duy . [BZ #428] * locales/te_IN: Several fixes. @@ -9717,7 +9717,7 @@ 2001-07-31 Ulrich Drepper * locales/tr_TR: Define missing fields and remove FIXME comments. - Patch by Nilg~n Belma Bug~ner . + Patch by Nilgün Belma Bugüner . 2001-07-19 Jakub Jelinek @@ -11911,7 +11911,7 @@ 1999-12-19 Ulrich Drepper * locales/POSIX: Fix collation order of and add a few missing - symbols. Patch by Miloslav Trmac . + symbols. Patch by Miloslav Trmač . * locales/cs_CZ: Fix syntax of collation entries with multi-character weights. diff --git a/ChangeLog.old/ChangeLog.nptl b/ChangeLog.old/ChangeLog.nptl index e022a1927a..2f63fc73c2 100644 --- a/ChangeLog.old/ChangeLog.nptl +++ b/ChangeLog.old/ChangeLog.nptl @@ -4810,7 +4810,7 @@ Later nptl/ changes go into the top-level ChangeLog file, not here. [BZ #3251] * descr.h (ENQUEUE_MUTEX_BOTH): Add cast to avoid warning. - Patch by Petr Baudis. + Patch by Petr Baudiš. 2006-09-18 Jakub Jelinek diff --git a/INSTALL b/INSTALL index e137a71169..242cb06f91 100644 --- a/INSTALL +++ b/INSTALL @@ -464,7 +464,7 @@ build the GNU C Library: GCC 6.2 or higher is required. In general it is recommended to use the newest version of the compiler that is known to work for building the GNU C Library, as newer compilers usually produce - better code. As of release time, GCC 8.2.1 is the newest compiler + better code. As of release time, GCC 9.2.1 is the newest compiler verified to work to build the GNU C Library. For multi-arch support it is recommended to use a GCC which has @@ -486,7 +486,7 @@ build the GNU C Library: You must use GNU 'binutils' (as and ld) to build the GNU C Library. No other assembler or linker has the necessary functionality at the - moment. As of release time, GNU 'binutils' 2.31.1 is the newest + moment. As of release time, GNU 'binutils' 2.32 is the newest verified to work to build the GNU C Library. * GNU 'texinfo' 4.7 or later @@ -495,7 +495,7 @@ build the GNU C Library: need this version of the 'texinfo' package. Earlier versions do not understand all the tags used in the document, and the installation mechanism for the info files is not present or works - differently. As of release time, 'texinfo' 6.5 is the newest + differently. As of release time, 'texinfo' 6.6 is the newest verified to work to build the GNU C Library. * GNU 'awk' 3.1.2, or higher @@ -503,20 +503,20 @@ build the GNU C Library: 'awk' is used in several places to generate files. Some 'gawk' extensions are used, including the 'asorti' function, which was introduced in version 3.1.2 of 'gawk'. As of release time, 'gawk' - version 4.2.1 is the newest verified to work to build the GNU C + version 5.0.1 is the newest verified to work to build the GNU C Library. * GNU 'bison' 2.7 or later 'bison' is used to generate the 'yacc' parser code in the 'intl' - subdirectory. As of release time, 'bison' version 3.0.5 is the + subdirectory. As of release time, 'bison' version 3.4.1 is the newest verified to work to build the GNU C Library. * Perl 5 Perl is not required, but if present it is used in some tests and the 'mtrace' program, to build the GNU C Library manual. As of - release time 'perl' version 5.28.1 is the newest verified to work + release time 'perl' version 5.30.1 is the newest verified to work to build the GNU C Library. * GNU 'sed' 3.02 or newer @@ -528,7 +528,7 @@ build the GNU C Library: * Python 3.4 or later Python is required to build the GNU C Library. As of release time, - Python 3.7.1 is the newest verified to work for building and + Python 3.7.4 is the newest verified to work for building and testing the GNU C Library. * PExpect 4.0 @@ -545,7 +545,7 @@ build the GNU C Library: use the pretty printers. Notice that your system having Python available doesn't imply that GDB supports it, nor that your system's Python and GDB's have the same version. As of release - time GNU 'debugger' 8.2 is the newest verified to work to test the + time GNU 'debugger' 8.3 is the newest verified to work to test the pretty printers. Unless Python, PExpect and GDB with Python support are present, the @@ -643,7 +643,7 @@ library, you really only need to narrow it down to one library function call, if possible. This should not be too difficult. The final step when you have a simple test case is to report the bug. -Do this at . +Do this at . If you are not sure how a function should behave, and this manual doesn't tell you, that's a bug in the manual. Report that too! If the diff --git a/LICENSES b/LICENSES index 0e3a9fe39b..530893b1dc 100644 --- a/LICENSES +++ b/LICENSES @@ -246,7 +246,7 @@ Collected from libdes and modified for SECURE RPC by Martin Kuck 1994 This file is distributed under the terms of the GNU Lesser General Public License, version 2.1 or later - see the file COPYING.LIB for details. If you did not receive a copy of the license with this program, please -see to obtain a copy. +see to obtain a copy. The file inet/rcmd.c is under a UCB copyright and the following: @@ -388,4 +388,4 @@ Copyright 2001 by Stephen L. Moshier You should have received a copy of the GNU Lesser General Public License along with this library; if not, see - . */ + . */ diff --git a/Makeconfig b/Makeconfig index fd36c58c04..f252842979 100644 --- a/Makeconfig +++ b/Makeconfig @@ -1,4 +1,4 @@ -# Copyright (C) 1991-2019 Free Software Foundation, Inc. +# Copyright (C) 1991-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # # Makefile configuration options for the GNU C library. @@ -336,9 +336,6 @@ ifndef asm-CPPFLAGS asm-CPPFLAGS = endif -as-needed := -Wl,--as-needed -no-as-needed := -Wl,--no-as-needed - # Must be supported by the linker. no-whole-archive = -Wl,--no-whole-archive whole-archive = -Wl,--whole-archive @@ -569,8 +566,8 @@ endif # build-hardcoded-path-in-tests link-libc-before-gnulib = $(common-objpfx)libc.so$(libc.so-version) \ $(common-objpfx)$(patsubst %,$(libtype.oS),c) \ - $(as-needed) $(elf-objpfx)ld.so \ - $(no-as-needed) + -Wl,--as-needed $(elf-objpfx)ld.so \ + -Wl,--no-as-needed link-libc = $(link-libc-before-gnulib) $(gnulib) link-libc-tests-after-rpath-link = $(link-libc-before-gnulib) $(gnulib-tests) diff --git a/Makefile b/Makefile index ac1125853b..8f0a93aceb 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991-2019 Free Software Foundation, Inc. +# Copyright (C) 1991-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # # Master Makefile for the GNU C library @@ -26,8 +26,17 @@ include Makeconfig # This is the default target; it makes everything except the tests. -.PHONY: all -all: lib others +.PHONY: all help minihelp +all: minihelp lib others + +help: + @sed '0,/^help-starts-here$$/d' Makefile.help + +minihelp: + @echo + @echo type \"make help\" for help with common glibc makefile targets + @echo + ifneq ($(AUTOCONF),no) @@ -172,6 +181,11 @@ case "$$toolname" in valgrind) exec env $(run-program-env) valgrind $(test-via-rtld-prefix) $${1+"$$@"} ;; + container) + exec env $(run-program-env) $(test-via-rtld-prefix) \ + $(common-objdir)/support/test-container \ + env $(run-program-env) $(test-via-rtld-prefix) $${1+"$$@"} + ;; *) usage ;; @@ -187,7 +201,204 @@ $(common-objpfx)testrun.sh: $(common-objpfx)config.make \ mv -f $@T $@ postclean-generated += testrun.sh -others: $(common-objpfx)testrun.sh +define debugglibc +#!/bin/bash + +SOURCE_DIR="$(CURDIR)" +BUILD_DIR="$(common-objpfx)" +CMD_FILE="$(common-objpfx)debugglibc.gdb" +CONTAINER=false +DIRECT=true +STATIC=false +SYMBOLSFILE=true +unset TESTCASE +unset BREAKPOINTS +unset ENVVARS + +usage() +{ +cat << EOF +Usage: $$0 [OPTIONS] + + Or: $$0 [OPTIONS] -- []... + + where is the path to the program being tested, + and are the arguments to be passed to it. + +Options: + + -h, --help + Prints this message and leaves. + + The following options require one argument: + + -b, --breakpoint + Breakpoints to set at the beginning of the execution + (each breakpoint demands its own -b option, e.g. -b foo -b bar) + -e, --environment-variable + Environment variables to be set with 'exec-wrapper env' in GDB + (each environment variable demands its own -e option, e.g. + -e FOO=foo -e BAR=bar) + + The following options do not take arguments: + + -c, --in-container + Run the test case inside a container and automatically attach + GDB to it. + -i, --no-direct + Selects whether to pass the --direct flag to the program. + --direct is useful when debugging glibc test cases. It inhibits the + tests from forking and executing in a subprocess. + Default behaviour is to pass the --direct flag, except when the + program is run with user specified arguments using the "--" separator. + -s, --no-symbols-file + Do not tell GDB to load debug symbols from the program. +EOF +} + +# Parse input options +while [[ $$# > 0 ]] +do + key="$$1" + case $$key in + -h|--help) + usage + exit 0 + ;; + -b|--breakpoint) + BREAKPOINTS="break $$2\n$$BREAKPOINTS" + shift + ;; + -e|--environment-variable) + ENVVARS="$$2 $$ENVVARS" + shift + ;; + -c|--in-container) + CONTAINER=true + ;; + -i|--no-direct) + DIRECT=false + ;; + -s|--no-symbols-file) + SYMBOLSFILE=false + ;; + --) + shift + TESTCASE=$$1 + COMMANDLINE="$$@" + # Don't add --direct when user specifies program arguments + DIRECT=false + break + ;; + *) + TESTCASE=$$1 + COMMANDLINE=$$TESTCASE + ;; + esac + shift +done + +# Check for required argument and if the testcase exists +if [ ! -v TESTCASE ] || [ ! -f $${TESTCASE} ] +then + usage + exit 1 +fi + +# Expand environment setup command +if [ -v ENVVARS ] +then + ENVVARSCMD="set exec-wrapper env $$ENVVARS" +fi + +# Expand direct argument +if [ "$$DIRECT" == true ] +then + DIRECT="--direct" +else + DIRECT="" +fi + +# Check if the test case is static +if file $${TESTCASE} | grep "statically linked" >/dev/null +then + STATIC=true +else + STATIC=false +fi + +# Expand symbols loading command +if [ "$$SYMBOLSFILE" == true ] +then + SYMBOLSFILE="add-symbol-file $${TESTCASE}" +else + SYMBOLSFILE="" +fi + +# GDB commands template +template () +{ +cat < $$CMD_FILE + +echo +echo "Debugging glibc..." +echo "Build directory : $$BUILD_DIR" +echo "Source directory : $$SOURCE_DIR" +echo "GLIBC Testcase : $$TESTCASE" +echo "GDB Commands : $$CMD_FILE" +echo "Env vars : $$ENVVARS" +echo + +if [ "$$CONTAINER" == true ] +then +# Use testrun.sh to start the test case with WAIT_FOR_DEBUGGER=1, then +# automatically attach GDB to it. +WAIT_FOR_DEBUGGER=1 $(common-objpfx)testrun.sh --tool=container $${TESTCASE} & +gdb -x $${TESTCASE}.gdb +elif [ "$$STATIC" == true ] +then +gdb $${TESTCASE} +else +# Start the test case debugging in two steps: +# 1. the following command invokes gdb to run the loader; +# 2. the commands file tells the loader to run the test case. +gdb -q \ + -x $${CMD_FILE} \ + -d $${SOURCE_DIR} \ + $${BUILD_DIR}/elf/ld.so +fi +endef + +# This is another handy script for debugging dynamically linked program +# against the current libc build for testing. +$(common-objpfx)debugglibc.sh: $(common-objpfx)config.make \ + $(..)Makeconfig $(..)Makefile + $(file >$@T,$(debugglibc)) + chmod a+x $@T + mv -f $@T $@ +postclean-generated += debugglibc.sh debugglibc.gdb + +others: $(common-objpfx)testrun.sh $(common-objpfx)debugglibc.sh # Makerules creates a file `stubs' in each subdirectory, which # contains `#define __stub_FUNCTION' for each function defined in that @@ -385,7 +596,7 @@ ifeq ($(run-built-tests),yes) for dso in `$(test-wrapper-env) LD_TRACE_LOADED_OBJECTS=1 \ $(rtld-prefix) \ $(objpfx)testroot.pristine/bin/sh \ - | grep / | sed 's/^[^/]*//' | sed 's/ .*//'` ;\ + | sed -n '/\//{s@.*=> /@/@;s/^[^/]*//;s/ .*//p;}'` ;\ do \ test -d `dirname $(objpfx)testroot.pristine$$dso` || \ mkdir -p `dirname $(objpfx)testroot.pristine$$dso` ;\ @@ -394,15 +605,22 @@ ifeq ($(run-built-tests),yes) for dso in `$(test-wrapper-env) LD_TRACE_LOADED_OBJECTS=1 \ $(rtld-prefix) \ $(objpfx)support/$(LINKS_DSO_PROGRAM) \ - | grep / | sed 's/^[^/]*//' | sed 's/ .*//'` ;\ + | sed -n '/\//{s@.*=> /@/@;s/^[^/]*//;s/ .*//p;}'` ;\ do \ test -d `dirname $(objpfx)testroot.pristine$$dso` || \ mkdir -p `dirname $(objpfx)testroot.pristine$$dso` ;\ $(test-wrapper) cp $$dso $(objpfx)testroot.pristine$$dso ;\ done endif + # $(symbolic-link-list) is a file that encodes $(DESTDIR) so we + # have to purge it + rm -f $(symbolic-link-list) + # Setting INSTALL_UNCOMPRESSED causes localedata/Makefile to + # install the charmaps uncompressed, as the testroot does not + # provide a gunzip program. $(MAKE) install DESTDIR=$(objpfx)testroot.pristine \ - subdirs='$(sorted-subdirs)' + INSTALL_UNCOMPRESSED=yes subdirs='$(sorted-subdirs)' + rm -f $(symbolic-link-list) touch $(objpfx)testroot.pristine/install.stamp tests-special-notdir = $(patsubst $(objpfx)%, %, $(tests-special)) @@ -455,7 +673,7 @@ TAGS: generated := $(generated) stubs.h -files-for-dist := README INSTALL configure ChangeLog NEWS +files-for-dist := README INSTALL configure NEWS # Regenerate stuff, then error if these things are not committed yet. dist-prepare: $(files-for-dist) @@ -499,3 +717,12 @@ FORCE: iconvdata/% localedata/% po/%: FORCE $(MAKE) $(PARALLELMFLAGS) -C $(@D) $(@F) + +# Convenience target to rerun one test, from the top of the build tree +# Example: make test t=wcsmbs/test-wcsnlen +.PHONY: test +test : + @-rm -f $(objpfx)$t.out + $(MAKE) subdir=$(patsubst %/,%,$(dir $t)) -C $(dir $t) ..=../ $(objpfx)$t.out + @cat $(objpfx)$t.test-result + @cat $(objpfx)$t.out diff --git a/Makefile.help b/Makefile.help new file mode 100644 index 0000000000..e9f71790fb --- /dev/null +++ b/Makefile.help @@ -0,0 +1,42 @@ +# Copyright (C) 2019-2020 Free Software Foundation, Inc. +# This file is part of the GNU C Library. + +# The GNU C Library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. + +# The GNU C Library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. + +# You should have received a copy of the GNU Lesser General Public +# License along with the GNU C Library; if not, see +# . + +This is the file that gets printed when the user runs "make help", +starting just after the "help-starts-here" line. + +help-starts-here + +all + The usual default; builds everything but doesn't run the + tests. + +check (or tests) + Runs the standard set of tests. + +test + Runs one test. Use like this: + make test t=wcsmbs/test-wcsnlen + Note that this will rebuild the test if needed, but will not + rebuild what "make all" would have rebuilt. + +-- +Other useful hints: + +builddir$ rm testroot.pristine/install.stamp + Forces the testroot to be reinstalled the next time you run + the testsuite (or just rm -rf testroot.pristine) + diff --git a/Makerules b/Makerules index 83bdd3a44d..1e9c18f0d8 100644 --- a/Makerules +++ b/Makerules @@ -1,4 +1,4 @@ -# Copyright (C) 1991-2019 Free Software Foundation, Inc. +# Copyright (C) 1991-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # # Common rules for making the GNU C library. This file is included @@ -513,7 +513,7 @@ endif link-libc-args = -Wl,--start-group \ $(libc-for-link) \ $(common-objpfx)libc_nonshared.a \ - $(as-needed) $(elf-objpfx)ld.so $(no-as-needed) \ + -Wl,--as-needed $(elf-objpfx)ld.so -Wl,--no-as-needed \ -Wl,--end-group # The corresponding shared libc to use. This may be modified for a diff --git a/NEWS b/NEWS index ddc800ba59..292fbc595a 100644 --- a/NEWS +++ b/NEWS @@ -1,9 +1,234 @@ GNU C Library NEWS -- history of user-visible changes. -Copyright (C) 1992-2019 Free Software Foundation, Inc. +Copyright (C) 1992-2020 Free Software Foundation, Inc. See the end for copying conditions. Please send GNU C library bug reports via using `glibc' in the "product" field. + +Version 2.31 + +Major new features: + +* The GNU C Library now supports a feature test macro _ISOC2X_SOURCE to + enable features from the draft ISO C2X standard. Only some features from + this draft standard are supported by the GNU C Library, and as the draft + is under active development, the set of features enabled by this macro is + liable to change. Features from C2X are also enabled by _GNU_SOURCE, or + by compiling with "gcc -std=gnu2x". + +* The functions that round their results to a narrower type now + have corresponding type-generic macros in , as defined in TS + 18661-1:2014 and TS 18661-3:2015 as amended by the resolution of + Clarification Request 13 to TS 18661-3. + +* The function pthread_clockjoin_np has been added, enabling join with a + terminated thread with a specific clock. It allows waiting against + CLOCK_MONOTONIC and CLOCK_REALTIME. This function is a GNU extension. + +* New locale added: mnw_MM (Mon language spoken in Myanmar). + +* The DNS stub resolver will optionally send the AD (authenticated data) bit + in queries if the trust-ad option is set via the options directive in + /etc/resolv.conf (or if RES_TRUSTAD is set in _res.options). In this + mode, the AD bit, as provided by the name server, is available to + applications which call res_search and related functions. In the default + mode, the AD bit is not set in queries, and it is automatically cleared in + responses, indicating a lack of DNSSEC validation. (Therefore, the name + servers and the network path to them are treated as untrusted.) + +Deprecated and removed features, and other changes affecting compatibility: + +* The totalorder and totalordermag functions, and the corresponding + functions for other floating-point types, now take pointer arguments to + avoid signaling NaNs possibly being converted to quiet NaNs in argument + passing. This is in accordance with the resolution of Clarification + Request 25 to TS 18661-1, as applied for C2X. Existing binaries that pass + floating-point arguments directly will continue to work. + +* The obsolete function stime is no longer available to newly linked + binaries, and its declaration has been removed from . + Programs that set the system time should use clock_settime instead. + +* We plan to remove the obsolete function ftime, and the header , + in a future version of glibc. In this release, the header still exists + but calling ftime will cause a compiler warning. All programs should use + gettimeofday or clock_gettime instead. + +* The gettimeofday function no longer reports information about a + system-wide time zone. This 4.2-BSD-era feature has been deprecated for + many years, as it cannot handle the full complexity of the world's + timezones, but hitherto we have supported it on a best-effort basis. + Changes required to support 64-bit time_t on 32-bit architectures have + made this no longer practical. + + As of this release, callers of gettimeofday with a non-null 'tzp' argument + should expect to receive a 'struct timezone' whose tz_minuteswest and + tz_dsttime fields are zero. (For efficiency reasons, this does not always + happen on a few Linux-based ports. This will be corrected in a future + release.) + + All callers should supply a null pointer for the 'tzp' argument to + gettimeofday. For accurate information about the time zone associated + with the current time, use the localtime function. + + gettimeofday itself is obsolescent according to POSIX. We have no plans + to remove access to this function, but portable programs should consider + using clock_gettime instead. + +* The settimeofday function can still be used to set a system-wide time + zone when the operating system supports it. This is because the Linux + kernel reused the API, on some architectures, to describe a system-wide + time-zone-like offset between the software clock maintained by the kernel, + and the "RTC" clock that keeps time when the system is shut down. + + However, to reduce the odds of this offset being set by accident, + settimeofday can no longer be used to set the time and the offset + simultaneously. If both of its two arguments are non-null, the call + will fail (setting errno to EINVAL). + + Callers attempting to set this offset should also be prepared for the call + to fail and set errno to ENOSYS; this already happens on the Hurd and on + some Linux architectures. The Linux kernel maintainers are discussing a + more principled replacement for the reused API. After a replacement + becomes available, we will change settimeofday to fail with ENOSYS on all + platforms when its 'tzp' argument is not a null pointer. + + settimeofday itself is obsolescent according to POSIX. Programs that set + the system time should use clock_settime and/or the adjtime family of + functions instead. We may cease to make settimeofday available to newly + linked binaries after there is a replacement for Linux's time-zone-like + offset API. + +* SPARC ISA v7 is no longer supported. v8 is still supported, but only if + the optional CAS instruction is implemented (for instance, LEON processors + are still supported, but SuperSPARC processors are not). + + As the oldest 64-bit SPARC ISA is v9, this only affects 32-bit + configurations. + +* If a lazy binding failure happens during dlopen, during the execution of + an ELF constructor, the process is now terminated. Previously, the + dynamic loader would return NULL from dlopen, with the lazy binding error + captured in a dlerror message. In general, this is unsafe because + resetting the stack in an arbitrary function call is not possible. + +* For MIPS hard-float ABIs, the GNU C Library will be configured to need an + executable stack unless explicitly configured at build time to require + minimum kernel version 4.8 or newer. This is because executing + floating-point branches on a non-executable stack on Linux kernels prior to + 4.8 can lead to application crashes for some MIPS configurations. While + currently PT_GNU_STACK is not widely used on MIPS, future releases of GCC are + expected to enable non-executable stack by default with PT_GNU_STACK by + default and is thus likely to trigger a crash on older kernels. + + The GNU C Library can be built with --enable-kernel=4.8.0 in order to keep a + non-executable stack while dropping support for older kernels. + +* System call wrappers for time system calls now use the new time64 system + calls when available. On 32-bit targets, these wrappers attempt to call + the new system calls first and fall back to the older 32-bit time system + calls if they are not present. This may cause issues in environments + that cannot handle unsupported system calls gracefully by returning + -ENOSYS. Seccomp sandboxes are affected by this issue. + +Changes to build and runtime requirements: + +* It is no longer necessary to have recent Linux kernel headers to build + working (non-stub) system call wrappers on all architectures except 64-bit + RISC-V. 64-bit RISC-V requires a minimum kernel headers version of 5.0. + +* The ChangeLog file is no longer present in the toplevel directory of the + source tree. ChangeLog files are located in the ChangeLog.old directory as + ChangeLog.N where the highest N has the latest entries. + +Security related changes: + + CVE-2019-19126: ld.so failed to ignore the LD_PREFER_MAP_32BIT_EXEC + environment variable during program execution after a security + transition, allowing local attackers to restrict the possible mapping + addresses for loaded libraries and thus bypass ASLR for a setuid + program. Reported by Marcin Kościelnicki. + +The following bugs are resolved with this release: + + [12031] localedata: iconv -t ascii//translit with Greek characters + [15813] libc: Multiple issues in __gen_tempname + [17726] libc: [arm, sparc] profil_counter should be compat symbol + [18231] libc: ipc_perm struct's mode member has wrong type in sys/ipc.h + [19767] libc: vdso is not used with static linking + [19903] hurd: Shared mappings not being inherited by children processes + [20358] network: RES_USE_DNSSEC sets DO; should also have a way to set AD + [20839] dynamic-link: Incomplete rollback of dynamic linker state on + linking failure + [23132] localedata: Missing transliterations in Miscellaneous Mathematical + Symbols-A/B Unicode blocks + [23518] libc: Eliminate __libc_utmp_jump_table + [24026] malloc: malloc_info() returns wrong numbers + [24054] localedata: Many locales are missing date_fmt + [24214] dynamic-link: user defined ifunc resolvers may run in ldd mode + [24304] dynamic-link: Lazy binding failure during ELF + constructors/destructors is not fatal + [24376] libc: RISC-V symbol size confusion with _start + [24682] localedata: zh_CN first weekday should be Monday per GB/T + 7408-2005 + [24824] libc: test-in-container does not install charmap files compatible + with localedef + [24844] regex: regex bad pointer / leakage if malloc fails + [24867] malloc: Unintended malloc_info formatting changes + [24879] libc: login: utmp alarm timer can arrive after lock acquisition + [24880] libc: login: utmp implementation uses struct flock with fcntl64 + [24882] libc: login: pututline uses potentially outdated cache + [24899] libc: Missing nonstring attributes in , + [24902] libc: login: Repeating pututxline on EINTR/EAGAIN causes stale + utmp entries + [24916] dynamic-link: [MIPS] Highest EI_ABIVERSION value not raised to + ABSOLUTE ABI + [24930] dynamic-link: dlopen of PIE executable can result in + _dl_allocate_tls_init assertion failure + [24950] localedata: Top-of-tree glibc does not build with top-of-tree GCC + (stringop-overflow error) + [24959] time: librt IFUNC resolvers for clock_gettime and clock_* + functions other can lead to crashes + [24967] libc: jemalloc static linking causes runtime failure + [24986] libc: alpha: new getegid, geteuid and getppid syscalls used + unconditionally + [25035] libc: sbrk() failure handled poorly in tunables_strdup + [25087] dynamic-link: ldconfig mishandles unusual .dynstr placement + [25097] libc: new -Warray-bounds with GCC 10 + [25112] dynamic-link: dlopen must not make new objects accessible when it + still can fail with an error + [25139] localedata: Please add the new mnw_MM locale + [25149] regex: Array bounds violation in proceed_next_node + [25157] dynamic-link: Audit cookie for the dynamic loader is not + initialized correctly + [25189] libc: glibc's __glibc_has_include causes issues with clang + -frewrite-includes + [25194] malloc: malloc.c: do_set_mxfast incorrectly casts the mallopt + value to an unsigned + [25204] dynamic-link: LD_PREFER_MAP_32BIT_EXEC not ignored in setuid + binaries (CVE-2019-19126) + [25225] libc: ld.so fails to link on x86 if GCC defaults to -fcf- + protection + [25226] string: strstr: Invalid result if needle crosses page on s390-z15 + ifunc variant. + [25232] string: does not enable const correctness for strchr et + al. for Clang++ + [25233] localedata: Consider "." as the thousands separator for sl_SI + (Slovenian) + [25241] nptl: __SIZEOF_PTHREAD_MUTEX_T defined twice for x86 + [25251] build: Failure to run tests when CFLAGS contains -DNDEBUG. + [25271] libc: undeclared identifier PTHREAD_MUTEX_DEFAULT when compiling + with -std=c11 + [25323] localedata: km_KH: d_t_fmt contains "m" instead of "%M" + [25324] localedata: lv_LV: d_t_fmt contains suspicious words in the time + part + [25396] dynamic-link: Failing dlopen can leave behind dangling GL + (dl_initfirst) link map pointer + [25401] malloc: pvalloc must not have __attribute_alloc_size__ + [25423] libc: Array overflow in backtrace on powerpc + [25425] network: Missing call to __resolv_context_put in + getaddrinfo.c:gethosts + Version 2.30 @@ -118,8 +343,109 @@ Security related changes: The following bugs are resolved with this release: - [The release manager will add the list generated by - scripts/list-fixed-bugs.py just before the release.] + [2872] locale: Transliteration Cyrillic -> ASCII fails + [6399] libc: gettid() should have a wrapper + [16573] malloc: mtrace hangs when MALLOC_TRACE is defined + [16976] glob: fnmatch unbounded stack VLA for collating symbols + [17396] localedata: globbing for locale by [[.collating-element.]] + [18035] dynamic-link: pldd does no longer work, enters infinite loop + [18465] malloc: memusagestat is built using system C library + [18830] locale: iconv -c -f ascii with >buffer size worth of input before + invalid input drops valid char + [20188] nptl: libpthread IFUNC resolver for vfork can lead to crash + [20568] locale: Segfault with wide characters and setlocale/fgetwc/UTF-8 + [21897] localedata: Afar locales: Fix mon, abmon, and abday + [22964] localedata: The Japanese Era name will be changed on May 1, 2019 + [23352] malloc: __malloc_check_init still defined in public header + malloc.h. + [23403] nptl: Wrong alignment of TLS variables + [23501] libc: nftw() doesn't return dangling symlink's inode + [23733] malloc: Check the count before calling tcache_get() + [23741] malloc: Missing __attribute_alloc_size__ in many allocation + functions + [23831] localedata: nl_NL missing LC_NUMERIC thousands_sep + [23844] nptl: pthread_rwlock_trywrlock results in hang + [23983] argparse: Missing compat versions of argp_failure and argp_error + for long double = double + [23984] libc: Missing compat versions of err.h and error.h functions for + long double = double + [23996] localedata: Dutch salutations + [24040] libc: riscv64: unterminated call chain in __thread_start + [24047] network: libresolv should use IP_RECVERR/IPV6_RECVERR to avoid + long timeouts + [24051] stdio: puts and putchar ouput to _IO_stdout instead of stdout + [24059] nss: nss_files: get_next_alias calls fgets_unlocked without + checking for NULL. + [24114] regex: regexec buffer read overrun in "grep -i + '\(\(\)*.\)*\(\)\(\)\1'" + [24122] libc: Segfaults if 0 returned from la_version + [24153] stdio: Some input functions do not react to stdin assignment + [24155] string: x32 memcmp can treat positive length as 0 (if sign bit in + RDX is set) (CVE-2019-7309) + [24161] nptl: __run_fork_handlers self-deadlocks in malloc/tst-mallocfork2 + [24164] libc: Systemtap probes need to use "nr" constraint on 32-bit Arm, + not the default "nor" + [24166] dynamic-link: Dl_serinfo.dls_serpath[1] in dlfcn.h causes UBSAN + false positives, change to modern flexible array + [24180] nptl: pthread_mutex_trylock does not use the correct order of + instructions while maintaining the robust mutex list due to missing + compiler barriers. + [24194] librt: Non-compatibility symbols for clock_gettime etc. cause + unnecessary librt dependencies + [24200] localedata: Revert first_weekday removal in en_IE locale + [24211] nptl: Use-after-free in Systemtap probe in pthread_join + [24215] nptl: pthread_timedjoin_np should be a cancellation point + [24216] malloc: Check for large bin list corruption when inserting + unsorted chunk + [24228] stdio: old x86 applications that use legacy libio crash on exit + [24231] dynamic-link: [sparc64] R_SPARC_H34 implementation falls through + to R_SPARC_H44 + [24293] localedata: Missing Minguo calendar support for TW locales + [24296] localedata: Orthographic mistakes in 'day' and 'abday' sections in + tt_RU (Tatar) locale + [24307] localedata: Update locale data to Unicode 12.0.0 + [24323] dynamic-link: dlopen should not be able open PIE objects + [24335] build: "Obsolete types detected" with Linux 5.0 headers + [24369] localedata: Orthographic mistakes in 'mon' and 'abmon' sections in + tt_RU (Tatar) locale + [24370] localedata: Add lang_name for tt_RU locale + [24372] locale: Binary locale files are not architecture independent + [24394] time: strptime %Ey mis-parses final year of era + [24476] dynamic-link: __libc_freeres triggers bad free in libdl if dlerror + was not used + [24506] dynamic-link: FAIL: elf/tst-pldd with --enable-hardcoded-path-in- + tests + [24531] malloc: Malloc tunables give tcache assertion failures + [24532] libc: conform/arpa/inet.h failures due to linux kernel 64-bit + time_t changes + [24535] localedata: Update locale data to Unicode 12.1.0 + [24537] build: nptl/tst-eintr1 test case can hit task limits on some + kernels and break testing + [24544] build: elf/tst-pldd doesn't work if you install with a --prefix + [24556] build: [GCC 9] error: ‘%s’ directive argument is null + [-Werror=format-overflow=] + [24570] libc: alpha: compat msgctl uses __IPC_64 + [24584] locale: Data race in __wcsmbs_clone_conv + [24588] stdio: Remove codecvt vtables from libio + [24603] math: sysdeps/ieee754/dbl-64/branred.c is slow when compiled with + -O3 -march=skylake + [24614] localedata: nl_NL LC_MONETARY doesn't match CLDR 35 + [24632] stdio: Old binaries which use freopen with default stdio handles + crash + [24640] libc: __ppc_get_timebase_freq() always return 0 when using static + linked glibc + [24652] localedata: szl_PL spelling correction + [24695] nss: nss_db: calling getpwent after endpwent crashes + [24696] nss: endgrent() clobbers errno=ERRNO for 'group: db files' entry + in /etc/nsswitch.conf + [24699] libc: mmap64 with very large offset broken on MIPS64 n32 + [24740] libc: getdents64 type confusion + [24741] dynamic-link: ld.so should not require that a versioned symbol is + always implemented in the same library + [24744] libc: Remove copy_file_range emulation + [24757] malloc: memusagestat is linked against system libpthread + [24794] libc: Partial test suite run builds corrupt test-in-container + testroot Version 2.29 @@ -4086,7 +4412,7 @@ Version 2.3.6 1110, 1111, 1112, 1113, 1125, 1137, 1138, 1249, 1250, 1251, 1252, 1253, 1254, 1350, 1358, 1394, 1438, 1498, 1534 - Visit for the details of each bug. + Visit for the details of each bug. * As of this release, GCC 4 can be used to compile the C Library. @@ -4101,7 +4427,7 @@ Version 2.3.5 737, 738, 739, 740, 741, 742, 743, 744, 745, 765, 767, 768, 769, 776, 777, 787, 821, 822, 823, 825 - Visit for the details of each bug. + Visit for the details of each bug. Version 2.3.4 @@ -5520,7 +5846,7 @@ Version 1.04 ---------------------------------------------------------------------- Copyright information: -Copyright (C) 1992-2019 Free Software Foundation, Inc. +Copyright (C) 1992-2020 Free Software Foundation, Inc. Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the diff --git a/README b/README index eb9b0b34a3..31c5da0405 100644 --- a/README +++ b/README @@ -44,12 +44,12 @@ The GNU C Library supports these configurations for using Linux kernels: sparc64*-*-linux-gnu If you are interested in doing a port, please contact the glibc -maintainers; see http://www.gnu.org/software/libc/ for more +maintainers; see https://www.gnu.org/software/libc/ for more information. See the file INSTALL to find out how to configure, build, and install the GNU C Library. You might also consider reading the WWW pages for -the C library at http://www.gnu.org/software/libc/. +the C library at https://www.gnu.org/software/libc/. The GNU C Library is (almost) completely documented by the Texinfo manual found in the `manual/' subdirectory. The manual is still being updated @@ -60,7 +60,7 @@ following the bug-reporting instructions below. Please be sure to check the manual in the current development sources to see if your problem has already been corrected. -Please see http://www.gnu.org/software/libc/bugs.html for bug reporting +Please see https://www.gnu.org/software/libc/bugs.html for bug reporting information. We are now using the Bugzilla system to track all bug reports. This web page gives detailed information on how to report bugs properly. diff --git a/Rules b/Rules index 222dba6dcb..8b771f6095 100644 --- a/Rules +++ b/Rules @@ -1,4 +1,4 @@ -# Copyright (C) 1991-2019 Free Software Foundation, Inc. +# Copyright (C) 1991-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # # Rules for making a subdirectory in the GNU C library. diff --git a/argp/Makefile b/argp/Makefile index d5c2d77658..1f9b074bed 100644 --- a/argp/Makefile +++ b/argp/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2019 Free Software Foundation, Inc. +# Copyright (C) 1997-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # # Makefile for argp. diff --git a/argp/argp-ba.c b/argp/argp-ba.c index 2f827a0e20..9b983852fd 100644 --- a/argp/argp-ba.c +++ b/argp/argp-ba.c @@ -1,5 +1,5 @@ /* Default definition for ARGP_PROGRAM_BUG_ADDRESS. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* If set by the user program, it should point to string that is the bug-reporting address for the program. It will be printed by argp_help if diff --git a/argp/argp-eexst.c b/argp/argp-eexst.c index 1e7ec67848..2e08b09f21 100644 --- a/argp/argp-eexst.c +++ b/argp/argp-eexst.c @@ -1,5 +1,5 @@ /* Default definition for ARGP_ERR_EXIT_STATUS - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifdef HAVE_CONFIG_H # include diff --git a/argp/argp-fmtstream.c b/argp/argp-fmtstream.c index e46f3edb41..d915b9ad67 100644 --- a/argp/argp-fmtstream.c +++ b/argp/argp-fmtstream.c @@ -1,5 +1,5 @@ /* Word-wrapping and line-truncating streams - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This package emulates glibc `line_wrap_stream' semantics for systems that don't have that. */ diff --git a/argp/argp-fmtstream.h b/argp/argp-fmtstream.h index 8b29f877a9..21f21ae88c 100644 --- a/argp/argp-fmtstream.h +++ b/argp/argp-fmtstream.h @@ -1,5 +1,5 @@ /* Word-wrapping and line-truncating streams. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This package emulates glibc `line_wrap_stream' semantics for systems that don't have that. If the system does have it, it is just a wrapper for diff --git a/argp/argp-fs-xinl.c b/argp/argp-fs-xinl.c index 1903d29856..0da32de31d 100644 --- a/argp/argp-fs-xinl.c +++ b/argp/argp-fs-xinl.c @@ -1,5 +1,5 @@ /* Real definitions for extern inline functions in argp-fmtstream.h - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifdef HAVE_CONFIG_H # include diff --git a/argp/argp-help.c b/argp/argp-help.c index 3b1727c4aa..2bcd6549fd 100644 --- a/argp/argp-help.c +++ b/argp/argp-help.c @@ -1,5 +1,5 @@ /* Hierarchial argument parsing help output - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 diff --git a/argp/argp-namefrob.h b/argp/argp-namefrob.h index 4831ad76ae..d21cefa4a4 100644 --- a/argp/argp-namefrob.h +++ b/argp/argp-namefrob.h @@ -1,5 +1,5 @@ /* Name frobnication for compiling argp outside of glibc - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #if !_LIBC /* This code is written for inclusion in gnu-libc, and uses names in the diff --git a/argp/argp-parse.c b/argp/argp-parse.c index 9df050222c..14f9387668 100644 --- a/argp/argp-parse.c +++ b/argp/argp-parse.c @@ -1,5 +1,5 @@ /* Hierarchial argument parsing, layered over getopt - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifdef HAVE_CONFIG_H #include diff --git a/argp/argp-pv.c b/argp/argp-pv.c index 897dca8cad..6cc96f0b70 100644 --- a/argp/argp-pv.c +++ b/argp/argp-pv.c @@ -1,5 +1,5 @@ /* Default definition for ARGP_PROGRAM_VERSION. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* If set by the user program to a non-zero value, then a default option --version is added (unless the ARGP_NO_HELP flag is used), which will diff --git a/argp/argp-pvh.c b/argp/argp-pvh.c index 1358a8a125..cb90cbaaa3 100644 --- a/argp/argp-pvh.c +++ b/argp/argp-pvh.c @@ -1,5 +1,5 @@ /* Default definition for ARGP_PROGRAM_VERSION_HOOK. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifdef HAVE_CONFIG_H #include diff --git a/argp/argp-test.c b/argp/argp-test.c index 13e0c6df14..f1ab60fd92 100644 --- a/argp/argp-test.c +++ b/argp/argp-test.c @@ -1,5 +1,5 @@ /* Test program for argp argument parser - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifdef HAVE_CONFIG_H #include diff --git a/argp/argp-xinl.c b/argp/argp-xinl.c index 60667b0e7e..63ca002359 100644 --- a/argp/argp-xinl.c +++ b/argp/argp-xinl.c @@ -1,5 +1,5 @@ /* Real definitions for extern inline functions in argp.h - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifdef HAVE_CONFIG_H # include diff --git a/argp/argp.h b/argp/argp.h index c7322581bf..329aae097f 100644 --- a/argp/argp.h +++ b/argp/argp.h @@ -1,5 +1,5 @@ /* Hierarchial argument parsing, layered over getopt. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader . @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _ARGP_H #define _ARGP_H diff --git a/argp/bits/argp-ldbl.h b/argp/bits/argp-ldbl.h index 86022a04ac..dd77a34a93 100644 --- a/argp/bits/argp-ldbl.h +++ b/argp/bits/argp-ldbl.h @@ -1,5 +1,5 @@ /* Redirections for argp functions for -mlong-double-64. - Copyright (C) 2019 Free Software Foundation, Inc. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _ARGP_H # error "Never include directly; use instead." diff --git a/argp/tst-argp1.c b/argp/tst-argp1.c index 197ac90dfe..23678d84e4 100644 --- a/argp/tst-argp1.c +++ b/argp/tst-argp1.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2019 Free Software Foundation, Inc. +/* Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2002. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/argp/tst-argp2.c b/argp/tst-argp2.c index e15f66b69c..34b4e8a5c2 100644 --- a/argp/tst-argp2.c +++ b/argp/tst-argp2.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2019 Free Software Foundation, Inc. +/* Copyright (C) 2007-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek , 2007. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/argp/tst-ldbl-argp.c b/argp/tst-ldbl-argp.c index 72741f45c2..b16d58b627 100644 --- a/argp/tst-ldbl-argp.c +++ b/argp/tst-ldbl-argp.c @@ -1,5 +1,5 @@ /* Testing of long double conversions in argp.h functions. - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/assert/Makefile b/assert/Makefile index 3da7422560..17c7ff0ddb 100644 --- a/assert/Makefile +++ b/assert/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991-2019 Free Software Foundation, Inc. +# Copyright (C) 1991-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # # Sub-makefile for assert portion of the library. diff --git a/assert/__assert.c b/assert/__assert.c index 082693eb7d..c1c2797c97 100644 --- a/assert/__assert.c +++ b/assert/__assert.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2019 Free Software Foundation, Inc. +/* Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* We have to see the prototype. */ #undef NDEBUG diff --git a/assert/assert-perr.c b/assert/assert-perr.c index 410f27c83c..02b5cbdd26 100644 --- a/assert/assert-perr.c +++ b/assert/assert-perr.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2019 Free Software Foundation, Inc. +/* Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/assert/assert.c b/assert/assert.c index a524d5d747..6e383b470b 100644 --- a/assert/assert.c +++ b/assert/assert.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/assert/assert.h b/assert/assert.h index 20fe320043..266ee92e3f 100644 --- a/assert/assert.h +++ b/assert/assert.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* * ISO C99 Standard: 7.2 Diagnostics diff --git a/assert/tst-assert-c++.cc b/assert/tst-assert-c++.cc index 3df9815256..361ffa8f83 100644 --- a/assert/tst-assert-c++.cc +++ b/assert/tst-assert-c++.cc @@ -1,5 +1,5 @@ /* Tests for interactions between C++ and assert. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,8 +14,11 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ +/* Undefine NDEBUG to ensure the build system e.g. CFLAGS/CXXFLAGS + does not disable the asserts we want to test. */ +#undef NDEBUG #include /* The C++ standard requires that if the assert argument is a constant diff --git a/assert/tst-assert-g++.cc b/assert/tst-assert-g++.cc index c985811446..e574f4f48a 100644 --- a/assert/tst-assert-g++.cc +++ b/assert/tst-assert-g++.cc @@ -1,5 +1,5 @@ /* Tests for interactions between C++ and assert. GNU C++11 version. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,6 +14,6 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/benchtests/Makefile b/benchtests/Makefile index 697e29fbbe..71b9565fed 100644 --- a/benchtests/Makefile +++ b/benchtests/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2019 Free Software Foundation, Inc. +# Copyright (C) 2013-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # Makefile for benchmark tests. The only useful target here is `bench`. # Add benchmark functions in alphabetical order. @@ -217,7 +217,10 @@ bench-malloc: $(binaries-bench-malloc) # capable language or tool. bench-func: $(binaries-bench) if [ -n '$^' ] ; then \ - { timing_type=$$($(timing-type)); \ + { timing_type=$$($(test-wrapper-env) \ + $(run-program-env) \ + $(test-via-rtld-prefix) \ + $(timing-type)); \ echo "{\"timing_type\": \"$${timing_type}\","; \ echo " \"functions\": {"; \ for run in $^; do \ diff --git a/benchtests/bench-malloc-simple.c b/benchtests/bench-malloc-simple.c index c4f06f6999..3b0ce36712 100644 --- a/benchtests/bench-malloc-simple.c +++ b/benchtests/bench-malloc-simple.c @@ -1,5 +1,5 @@ /* Benchmark malloc and free functions. - Copyright (C) 2019 Free Software Foundation, Inc. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/benchtests/bench-malloc-thread.c b/benchtests/bench-malloc-thread.c index 9d7dcf26b7..d08a6e0d22 100644 --- a/benchtests/bench-malloc-thread.c +++ b/benchtests/bench-malloc-thread.c @@ -1,5 +1,5 @@ /* Benchmark malloc and free functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/benchtests/bench-math-inlines.c b/benchtests/bench-math-inlines.c index 37331bc662..41271c0c51 100644 --- a/benchtests/bench-math-inlines.c +++ b/benchtests/bench-math-inlines.c @@ -1,5 +1,5 @@ /* Measure math inline functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define SIZE 1024 #define TEST_MAIN diff --git a/benchtests/bench-memccpy.c b/benchtests/bench-memccpy.c index 46f96d58c5..9891cacba7 100644 --- a/benchtests/bench-memccpy.c +++ b/benchtests/bench-memccpy.c @@ -1,5 +1,5 @@ /* Measure memccpy functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_MAIN #define TEST_NAME "memccpy" diff --git a/benchtests/bench-memchr.c b/benchtests/bench-memchr.c index 8a9909a984..d367772ccb 100644 --- a/benchtests/bench-memchr.c +++ b/benchtests/bench-memchr.c @@ -1,5 +1,5 @@ /* Measure memchr functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef WIDE # define SMALL_CHAR 127 diff --git a/benchtests/bench-memcmp.c b/benchtests/bench-memcmp.c index a6af107855..6db9b22f04 100644 --- a/benchtests/bench-memcmp.c +++ b/benchtests/bench-memcmp.c @@ -1,5 +1,5 @@ /* Measure memcmp functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_MAIN #ifdef WIDE diff --git a/benchtests/bench-memcpy-large.c b/benchtests/bench-memcpy-large.c index e19ad7474d..fb895c58b5 100644 --- a/benchtests/bench-memcpy-large.c +++ b/benchtests/bench-memcpy-large.c @@ -1,5 +1,5 @@ /* Measure memcpy functions with large data sizes. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef MEMCPY_RESULT # define MEMCPY_RESULT(dst, len) dst diff --git a/benchtests/bench-memcpy-random.c b/benchtests/bench-memcpy-random.c index f2c2e9dc3d..d6a60a2eb0 100644 --- a/benchtests/bench-memcpy-random.c +++ b/benchtests/bench-memcpy-random.c @@ -1,5 +1,5 @@ /* Measure memcpy performance. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define MIN_PAGE_SIZE 131072 #define TEST_MAIN diff --git a/benchtests/bench-memcpy-walk.c b/benchtests/bench-memcpy-walk.c index 397a1e98df..bd96fe4949 100644 --- a/benchtests/bench-memcpy-walk.c +++ b/benchtests/bench-memcpy-walk.c @@ -1,5 +1,5 @@ /* Measure memcpy function combined throughput for different alignments. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This microbenchmark measures the throughput of memcpy for various sizes from 1 byte to 32MiB, doubling every iteration and then misaligning by 0-15 diff --git a/benchtests/bench-memcpy.c b/benchtests/bench-memcpy.c index 6c5c549144..cc249e07c8 100644 --- a/benchtests/bench-memcpy.c +++ b/benchtests/bench-memcpy.c @@ -1,5 +1,5 @@ /* Measure memcpy functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef MEMCPY_RESULT # define MEMCPY_RESULT(dst, len) dst @@ -23,23 +23,16 @@ # define TEST_NAME "memcpy" # include "bench-string.h" -char * -simple_memcpy (char *dst, const char *src, size_t n) -{ - char *ret = dst; - while (n--) - *dst++ = *src++; - return ret; -} +void *generic_memcpy (void *, const void *, size_t); IMPL (memcpy, 1) -IMPL (simple_memcpy, 0) +IMPL (generic_memcpy, 0) #endif # include "json-lib.h" -typedef char *(*proto_t) (char *, const char *, size_t); +typedef void *(*proto_t) (void *, const void *, size_t); static void do_one_test (json_ctx_t *json_ctx, impl_t *impl, char *dst, const char *src, @@ -161,3 +154,9 @@ test_main (void) } #include + +#define libc_hidden_builtin_def(X) +#undef MEMCPY +#define MEMCPY generic_memcpy +#include +#include diff --git a/benchtests/bench-memmem.c b/benchtests/bench-memmem.c index 42778b0765..ad089569de 100644 --- a/benchtests/bench-memmem.c +++ b/benchtests/bench-memmem.c @@ -1,5 +1,5 @@ /* Measure memmem functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_MAIN #define TEST_NAME "memmem" diff --git a/benchtests/bench-memmove-large.c b/benchtests/bench-memmove-large.c index 710c648634..a6a0f680f2 100644 --- a/benchtests/bench-memmove-large.c +++ b/benchtests/bench-memmove-large.c @@ -1,5 +1,5 @@ /* Measure memmove functions with large data sizes. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define BASE_PAGE_SIZE (1024 * 1024) #define START_SIZE (4 * 1024) diff --git a/benchtests/bench-memmove-walk.c b/benchtests/bench-memmove-walk.c index 2b4a7e4f29..de5bca1390 100644 --- a/benchtests/bench-memmove-walk.c +++ b/benchtests/bench-memmove-walk.c @@ -1,5 +1,5 @@ /* Measure memmove function combined throughput for different alignments. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This microbenchmark measures the throughput of memmove for various sizes from 1 byte to 32MiB, doubling every iteration and then misaligning by 0-15 diff --git a/benchtests/bench-memmove.c b/benchtests/bench-memmove.c index a4d5ecd638..4e28f5bf7d 100644 --- a/benchtests/bench-memmove.c +++ b/benchtests/bench-memmove.c @@ -1,5 +1,5 @@ /* Measure memmove functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,37 +14,19 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_MAIN #define TEST_NAME "memmove" #include "bench-string.h" #include "json-lib.h" -char *simple_memmove (char *, const char *, size_t); +void *generic_memmove (void *, const void *, size_t); -typedef char *(*proto_t) (char *, const char *, size_t); +typedef void *(*proto_t) (void *, const void *, size_t); IMPL (memmove, 1) -IMPL (simple_memmove, 0) - -char * -inhibit_loop_to_libcall -simple_memmove (char *dst, const char *src, size_t n) -{ - char *ret = dst; - if (src < dst) - { - dst += n; - src += n; - while (n--) - *--dst = *--src; - } - else - while (n--) - *dst++ = *src++; - return ret; -} +IMPL (generic_memmove, 0) static void do_one_test (json_ctx_t *json_ctx, impl_t *impl, char *dst, char *src, @@ -165,3 +147,9 @@ test_main (void) } #include + +#define libc_hidden_builtin_def(X) +#undef MEMMOVE +#define MEMMOVE generic_memmove +#include +#include diff --git a/benchtests/bench-mempcpy.c b/benchtests/bench-mempcpy.c index 09f8557413..2e695fed88 100644 --- a/benchtests/bench-mempcpy.c +++ b/benchtests/bench-mempcpy.c @@ -1,5 +1,5 @@ /* Measure mempcpy functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define MEMCPY_RESULT(dst, len) (dst) + (len) #define TEST_MAIN diff --git a/benchtests/bench-memrchr.c b/benchtests/bench-memrchr.c index f8034050cd..31b55dd003 100644 --- a/benchtests/bench-memrchr.c +++ b/benchtests/bench-memrchr.c @@ -1,5 +1,5 @@ /* Measure memrchr functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_MAIN #define TEST_NAME "memrchr" diff --git a/benchtests/bench-memset-large.c b/benchtests/bench-memset-large.c index d99f0a24aa..4af10f2d36 100644 --- a/benchtests/bench-memset-large.c +++ b/benchtests/bench-memset-large.c @@ -1,5 +1,5 @@ /* Measure memset functions with large data sizes. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,41 +14,23 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_MAIN -#ifndef WIDE -# define TEST_NAME "memset" -#else -# define TEST_NAME "wmemset" -#endif /* WIDE */ +#define TEST_NAME "memset" #define START_SIZE (128 * 1024) #define MIN_PAGE_SIZE (getpagesize () + 64 * 1024 * 1024) #define TIMEOUT (20 * 60) #include "bench-string.h" -#ifndef WIDE -# define SIMPLE_MEMSET simple_memset -#else -# define SIMPLE_MEMSET simple_wmemset -#endif /* WIDE */ - #include #include "json-lib.h" -IMPL (MEMSET, 1) - -typedef CHAR *(*proto_t) (CHAR *, int, size_t); +void *generic_memset (void *, int, size_t); +typedef void *(*proto_t) (void *, int, size_t); -CHAR * -inhibit_loop_to_libcall -SIMPLE_MEMSET (CHAR *s, int c, size_t n) -{ - CHAR *r = s, *end = s + n; - while (r < end) - *r++ = c; - return s; -} +IMPL (MEMSET, 1) +IMPL (generic_memset, 0) static void do_one_test (json_ctx_t *json_ctx, impl_t *impl, CHAR *s, @@ -133,3 +115,11 @@ test_main (void) } #include + +#define libc_hidden_builtin_def(X) +#define libc_hidden_def(X) +#define libc_hidden_weak(X) +#define weak_alias(X,Y) +#undef MEMSET +#define MEMSET generic_memset +#include diff --git a/benchtests/bench-memset-walk.c b/benchtests/bench-memset-walk.c index 930aae34d1..b44309481a 100644 --- a/benchtests/bench-memset-walk.c +++ b/benchtests/bench-memset-walk.c @@ -1,5 +1,5 @@ /* Measure memset function throughput with large data sizes. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,42 +14,23 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_MAIN -#ifndef WIDE -# define TEST_NAME "memset" -#else -# define TEST_NAME "wmemset" -#endif /* WIDE */ +#define TEST_NAME "memset" #define START_SIZE 128 #define MIN_PAGE_SIZE (getpagesize () + 32 * 1024 * 1024) #define TIMEOUT (20 * 60) #include "bench-string.h" -#ifndef WIDE -# define SIMPLE_MEMSET simple_memset -#else -# define SIMPLE_MEMSET simple_wmemset -#endif /* WIDE */ - #include #include "json-lib.h" +void *generic_memset (void *, int, size_t); +typedef void *(*proto_t) (void *, int, size_t); -typedef CHAR *(*proto_t) (CHAR *, int, size_t); - -CHAR * -inhibit_loop_to_libcall -SIMPLE_MEMSET (CHAR *s, int c, size_t n) -{ - CHAR *r = s, *end = s + n; - while (r < end) - *r++ = c; - return s; -} - -IMPL (SIMPLE_MEMSET, 1) +IMPL (MEMSET, 1) +IMPL (generic_memset, 0) static void do_one_test (json_ctx_t *json_ctx, impl_t *impl, CHAR *s, CHAR *s_end, @@ -132,3 +113,11 @@ test_main (void) } #include + +#define libc_hidden_builtin_def(X) +#define libc_hidden_def(X) +#define libc_hidden_weak(X) +#define weak_alias(X,Y) +#undef MEMSET +#define MEMSET generic_memset +#include diff --git a/benchtests/bench-memset.c b/benchtests/bench-memset.c index 0df55d1263..ee6059a6e4 100644 --- a/benchtests/bench-memset.c +++ b/benchtests/bench-memset.c @@ -1,5 +1,5 @@ /* Measure memset functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,35 +14,30 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_MAIN #ifndef WIDE # define TEST_NAME "memset" #else # define TEST_NAME "wmemset" +# define generic_memset generic_wmemset #endif /* WIDE */ #define MIN_PAGE_SIZE 131072 #include "bench-string.h" #include "json-lib.h" -CHAR *SIMPLE_MEMSET (CHAR *, int, size_t); +#ifdef WIDE +CHAR *generic_wmemset (CHAR *, CHAR, size_t); +#else +void *generic_memset (void *, int, size_t); +#endif -typedef CHAR *(*proto_t) (CHAR *, int, size_t); +typedef void *(*proto_t) (void *, int, size_t); IMPL (MEMSET, 1) -IMPL (SIMPLE_MEMSET, 0) - -CHAR * -inhibit_loop_to_libcall -SIMPLE_MEMSET (CHAR *s, int c, size_t n) -{ - CHAR *r = s, *end = s + n; - while (r < end) - *r++ = c; - return s; -} +IMPL (generic_memset, 0) static void do_one_test (json_ctx_t *json_ctx, impl_t *impl, CHAR *s, @@ -146,3 +141,16 @@ test_main (void) } #include + +#define libc_hidden_builtin_def(X) +#define libc_hidden_def(X) +#define libc_hidden_weak(X) +#define weak_alias(X,Y) +#ifndef WIDE +# undef MEMSET +# define MEMSET generic_memset +# include +#else +# define WMEMSET generic_wmemset +# include +#endif diff --git a/benchtests/bench-rawmemchr.c b/benchtests/bench-rawmemchr.c index f7e1524d8a..9d80f0d164 100644 --- a/benchtests/bench-rawmemchr.c +++ b/benchtests/bench-rawmemchr.c @@ -1,5 +1,5 @@ /* Measure memchr functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/benchtests/bench-skeleton.c b/benchtests/bench-skeleton.c index 854151e5a8..aa20dadae6 100644 --- a/benchtests/bench-skeleton.c +++ b/benchtests/bench-skeleton.c @@ -1,5 +1,5 @@ /* Skeleton for benchmark programs. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/benchtests/bench-stpcpy.c b/benchtests/bench-stpcpy.c index bcea9af1bf..446d32f3c1 100644 --- a/benchtests/bench-stpcpy.c +++ b/benchtests/bench-stpcpy.c @@ -1,5 +1,5 @@ /* Measure stpcpy functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define STRCPY_RESULT(dst, len) ((dst) + (len)) #define TEST_MAIN diff --git a/benchtests/bench-stpcpy_chk.c b/benchtests/bench-stpcpy_chk.c index 51d84c3272..b225eb3bdc 100644 --- a/benchtests/bench-stpcpy_chk.c +++ b/benchtests/bench-stpcpy_chk.c @@ -1,5 +1,5 @@ /* Measure stpcpy checking functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define STRCPY_RESULT(dst, len) ((dst) + (len)) #define TEST_MAIN diff --git a/benchtests/bench-stpncpy.c b/benchtests/bench-stpncpy.c index c4c6b65bb7..95b241af14 100644 --- a/benchtests/bench-stpncpy.c +++ b/benchtests/bench-stpncpy.c @@ -1,5 +1,5 @@ /* Measure stpncpy functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define STRNCPY_RESULT(dst, len, n) ((dst) + ((len) > (n) ? (n) : (len))) #define TEST_MAIN diff --git a/benchtests/bench-strcasecmp.c b/benchtests/bench-strcasecmp.c index 4e9bcdc9a5..b8bfbe990f 100644 --- a/benchtests/bench-strcasecmp.c +++ b/benchtests/bench-strcasecmp.c @@ -1,5 +1,5 @@ /* Measure strcasecmp functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #define TEST_MAIN diff --git a/benchtests/bench-strcasestr.c b/benchtests/bench-strcasestr.c index d701ff4f36..1bab43105e 100644 --- a/benchtests/bench-strcasestr.c +++ b/benchtests/bench-strcasestr.c @@ -1,5 +1,5 @@ /* Measure strcasestr functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_MAIN #define TEST_NAME "strcasestr" diff --git a/benchtests/bench-strcat.c b/benchtests/bench-strcat.c index 08841d037f..069c24f9f2 100644 --- a/benchtests/bench-strcat.c +++ b/benchtests/bench-strcat.c @@ -1,5 +1,5 @@ /* Measure strcat functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_MAIN #ifndef WIDE diff --git a/benchtests/bench-strchr.c b/benchtests/bench-strchr.c index 10d06feb23..d33cad6a40 100644 --- a/benchtests/bench-strchr.c +++ b/benchtests/bench-strchr.c @@ -1,5 +1,5 @@ /* Measure STRCHR functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_MAIN #ifndef WIDE diff --git a/benchtests/bench-strchrnul.c b/benchtests/bench-strchrnul.c index 7a83f9148d..6f0228d0ac 100644 --- a/benchtests/bench-strchrnul.c +++ b/benchtests/bench-strchrnul.c @@ -1,5 +1,5 @@ /* Measure strchrnul function. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define USE_FOR_STRCHRNUL 1 #include "bench-strchr.c" diff --git a/benchtests/bench-strcmp.c b/benchtests/bench-strcmp.c index b8d355c3ce..47d0a35299 100644 --- a/benchtests/bench-strcmp.c +++ b/benchtests/bench-strcmp.c @@ -1,5 +1,5 @@ /* Measure strcmp and wcscmp functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_MAIN #ifdef WIDE diff --git a/benchtests/bench-strcoll.c b/benchtests/bench-strcoll.c index 4943c5ee8a..15f6602988 100644 --- a/benchtests/bench-strcoll.c +++ b/benchtests/bench-strcoll.c @@ -1,5 +1,5 @@ /* Measure strcoll execution time in different locales. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/benchtests/bench-strcpy.c b/benchtests/bench-strcpy.c index 7a7cf4abb2..5dbe8afe65 100644 --- a/benchtests/bench-strcpy.c +++ b/benchtests/bench-strcpy.c @@ -1,5 +1,5 @@ /* Measure strcpy functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define BIG_CHAR MAX_CHAR diff --git a/benchtests/bench-strcpy_chk.c b/benchtests/bench-strcpy_chk.c index 34c9c78a77..1f6c0afcf4 100644 --- a/benchtests/bench-strcpy_chk.c +++ b/benchtests/bench-strcpy_chk.c @@ -1,5 +1,5 @@ /* Measure __strcpy_chk functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef STRCPY_RESULT # define STRCPY_RESULT(dst, len) dst diff --git a/benchtests/bench-strcspn.c b/benchtests/bench-strcspn.c index bf9c4f8db3..0f6d065182 100644 --- a/benchtests/bench-strcspn.c +++ b/benchtests/bench-strcspn.c @@ -1,5 +1,5 @@ /* Measure strcspn functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define STRPBRK_RESULT(s, pos) (pos) #define RES_TYPE size_t diff --git a/benchtests/bench-string.h b/benchtests/bench-string.h index 4831e21054..841a66a9d8 100644 --- a/benchtests/bench-string.h +++ b/benchtests/bench-string.h @@ -1,5 +1,5 @@ /* Measure string and memory functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/benchtests/bench-strlen.c b/benchtests/bench-strlen.c index 1997ad75b4..cc125e820a 100644 --- a/benchtests/bench-strlen.c +++ b/benchtests/bench-strlen.c @@ -1,5 +1,5 @@ /* Measure STRLEN functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_MAIN #ifndef WIDE diff --git a/benchtests/bench-strncasecmp.c b/benchtests/bench-strncasecmp.c index 7c97877112..157826f756 100644 --- a/benchtests/bench-strncasecmp.c +++ b/benchtests/bench-strncasecmp.c @@ -1,5 +1,5 @@ /* Measure strncasecmp functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #define TEST_MAIN diff --git a/benchtests/bench-strncat.c b/benchtests/bench-strncat.c index e7583dfad4..6b820b0605 100644 --- a/benchtests/bench-strncat.c +++ b/benchtests/bench-strncat.c @@ -1,5 +1,5 @@ /* Measure strncat functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_MAIN #ifndef WIDE diff --git a/benchtests/bench-strncmp.c b/benchtests/bench-strncmp.c index bd3f9b2871..95a59c9465 100644 --- a/benchtests/bench-strncmp.c +++ b/benchtests/bench-strncmp.c @@ -1,5 +1,5 @@ /* Measure strncmp functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_MAIN #ifdef WIDE diff --git a/benchtests/bench-strncpy.c b/benchtests/bench-strncpy.c index a26232f423..602ae2a5bf 100644 --- a/benchtests/bench-strncpy.c +++ b/benchtests/bench-strncpy.c @@ -1,5 +1,5 @@ /* Measure strncpy functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define BIG_CHAR MAX_CHAR diff --git a/benchtests/bench-strnlen.c b/benchtests/bench-strnlen.c index 72ec303977..edc5110a18 100644 --- a/benchtests/bench-strnlen.c +++ b/benchtests/bench-strnlen.c @@ -1,5 +1,5 @@ /* Measure strlen functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_MAIN #ifndef WIDE diff --git a/benchtests/bench-strpbrk.c b/benchtests/bench-strpbrk.c index e484ebd0c0..ed94ac3cfe 100644 --- a/benchtests/bench-strpbrk.c +++ b/benchtests/bench-strpbrk.c @@ -1,5 +1,5 @@ /* Measure strpbrk functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define BIG_CHAR MAX_CHAR diff --git a/benchtests/bench-strrchr.c b/benchtests/bench-strrchr.c index bdb3b41d40..2d44c8c5ec 100644 --- a/benchtests/bench-strrchr.c +++ b/benchtests/bench-strrchr.c @@ -1,5 +1,5 @@ /* Measure STRCHR functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_MAIN #ifdef WIDE diff --git a/benchtests/bench-strsep.c b/benchtests/bench-strsep.c index 96d3be5222..a9b78e92de 100644 --- a/benchtests/bench-strsep.c +++ b/benchtests/bench-strsep.c @@ -1,5 +1,5 @@ /* Measure strsep functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_MAIN #define TEST_NAME "strsep" diff --git a/benchtests/bench-strspn.c b/benchtests/bench-strspn.c index ed97c5fc62..c0166b350f 100644 --- a/benchtests/bench-strspn.c +++ b/benchtests/bench-strspn.c @@ -1,5 +1,5 @@ /* Measure strspn functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_MAIN #ifndef WIDE diff --git a/benchtests/bench-strstr.c b/benchtests/bench-strstr.c index 36b7669d59..76783c4ef2 100644 --- a/benchtests/bench-strstr.c +++ b/benchtests/bench-strstr.c @@ -1,5 +1,5 @@ /* Measure strstr functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define MIN_PAGE_SIZE 131072 #define TEST_MAIN diff --git a/benchtests/bench-strtod.c b/benchtests/bench-strtod.c index 780c04ab0a..b83b4f7a36 100644 --- a/benchtests/bench-strtod.c +++ b/benchtests/bench-strtod.c @@ -1,5 +1,5 @@ /* Measure strtod implementation. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_MAIN #define TEST_NAME "strtod" diff --git a/benchtests/bench-strtok.c b/benchtests/bench-strtok.c index f5ab587dd9..7012fb9265 100644 --- a/benchtests/bench-strtok.c +++ b/benchtests/bench-strtok.c @@ -1,5 +1,5 @@ /* Measure strtok functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_MAIN #define TEST_NAME "strtok" diff --git a/benchtests/bench-timing-type.c b/benchtests/bench-timing-type.c index 629316fd02..18b8320e7f 100644 --- a/benchtests/bench-timing-type.c +++ b/benchtests/bench-timing-type.c @@ -1,5 +1,5 @@ /* Print out the timing type used by the benchmark run. - Copyright (C) 2014-2019 Free Software Foundation, Inc. + Copyright (C) 2014-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include "bench-timing.h" #include diff --git a/benchtests/bench-timing.h b/benchtests/bench-timing.h index d068bf9459..5b9a8384bb 100644 --- a/benchtests/bench-timing.h +++ b/benchtests/bench-timing.h @@ -1,5 +1,5 @@ /* Define timing macros. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #undef attribute_hidden #define attribute_hidden diff --git a/benchtests/bench-util.c b/benchtests/bench-util.c index 91ca53fb37..79db53dfb8 100644 --- a/benchtests/bench-util.c +++ b/benchtests/bench-util.c @@ -1,5 +1,5 @@ /* Benchmark utility functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ static volatile unsigned int dontoptimize = 0; diff --git a/benchtests/bench-util.h b/benchtests/bench-util.h index 470e31da93..b682518725 100644 --- a/benchtests/bench-util.h +++ b/benchtests/bench-util.h @@ -1,5 +1,5 @@ /* Benchmark utility functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef START_ITER diff --git a/benchtests/bench-wcpcpy.c b/benchtests/bench-wcpcpy.c index e635972df4..ab524d2eeb 100644 --- a/benchtests/bench-wcpcpy.c +++ b/benchtests/bench-wcpcpy.c @@ -1,5 +1,5 @@ /* Measure wcpcpy functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define WIDE 1 #include "bench-stpcpy.c" diff --git a/benchtests/bench-wcpncpy.c b/benchtests/bench-wcpncpy.c index 846b79be3d..0b931e66f5 100644 --- a/benchtests/bench-wcpncpy.c +++ b/benchtests/bench-wcpncpy.c @@ -1,5 +1,5 @@ /* Measure wcpncpy functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define WIDE 1 #include "bench-stpncpy.c" diff --git a/benchtests/bench-wcscat.c b/benchtests/bench-wcscat.c index 5db8d7e007..757e811d09 100644 --- a/benchtests/bench-wcscat.c +++ b/benchtests/bench-wcscat.c @@ -1,5 +1,5 @@ /* Measure wcscat functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define WIDE 1 #include "bench-strcat.c" diff --git a/benchtests/bench-wcschr.c b/benchtests/bench-wcschr.c index 47911124c9..1e92837ad8 100644 --- a/benchtests/bench-wcschr.c +++ b/benchtests/bench-wcschr.c @@ -1,5 +1,5 @@ /* Measure wcschr functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define WIDE 1 #include "bench-strchr.c" diff --git a/benchtests/bench-wcschrnul.c b/benchtests/bench-wcschrnul.c index b8afb4e374..01716002cc 100644 --- a/benchtests/bench-wcschrnul.c +++ b/benchtests/bench-wcschrnul.c @@ -1,5 +1,5 @@ /* Measure wcschrnul functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define WIDE 1 #include "bench-strchrnul.c" diff --git a/benchtests/bench-wcscmp.c b/benchtests/bench-wcscmp.c index 026e12e28a..71fab071e0 100644 --- a/benchtests/bench-wcscmp.c +++ b/benchtests/bench-wcscmp.c @@ -1,5 +1,5 @@ /* Measure wcscmp functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define WIDE 1 #include "bench-strcmp.c" diff --git a/benchtests/bench-wcscpy.c b/benchtests/bench-wcscpy.c index d204b6f3df..c5b4eb11ef 100644 --- a/benchtests/bench-wcscpy.c +++ b/benchtests/bench-wcscpy.c @@ -1,5 +1,5 @@ /* Measure wcscpy functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define WIDE 1 #include "bench-strcpy.c" diff --git a/benchtests/bench-wcscspn.c b/benchtests/bench-wcscspn.c index 8061b03ecd..16f68c1822 100644 --- a/benchtests/bench-wcscspn.c +++ b/benchtests/bench-wcscspn.c @@ -1,5 +1,5 @@ /* Measure wcscspn functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define WIDE 1 #include "bench-strcspn.c" diff --git a/benchtests/bench-wcslen.c b/benchtests/bench-wcslen.c index 949b199422..a6a633191e 100644 --- a/benchtests/bench-wcslen.c +++ b/benchtests/bench-wcslen.c @@ -1,5 +1,5 @@ /* Measure wcslen functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define WIDE 1 #include "bench-strlen.c" diff --git a/benchtests/bench-wcsncat.c b/benchtests/bench-wcsncat.c index c08e854ad8..545e2070c3 100644 --- a/benchtests/bench-wcsncat.c +++ b/benchtests/bench-wcsncat.c @@ -1,5 +1,5 @@ /* Measure wcsncat functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define WIDE 1 #include "bench-strncat.c" diff --git a/benchtests/bench-wcsncmp.c b/benchtests/bench-wcsncmp.c index 1317b93878..dcaab47157 100644 --- a/benchtests/bench-wcsncmp.c +++ b/benchtests/bench-wcsncmp.c @@ -1,5 +1,5 @@ /* Measure wcsncmp functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define WIDE 1 #include "bench-strncmp.c" diff --git a/benchtests/bench-wcsncpy.c b/benchtests/bench-wcsncpy.c index 2242792038..90ba70ce3c 100644 --- a/benchtests/bench-wcsncpy.c +++ b/benchtests/bench-wcsncpy.c @@ -1,5 +1,5 @@ /* Measure wcsncpy functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define WIDE 1 #include "bench-strncpy.c" diff --git a/benchtests/bench-wcsnlen.c b/benchtests/bench-wcsnlen.c index 3eaea6213e..075c935139 100644 --- a/benchtests/bench-wcsnlen.c +++ b/benchtests/bench-wcsnlen.c @@ -1,5 +1,5 @@ /* Measure wcsnlen functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define WIDE 1 #define __wmemchr wmemchr diff --git a/benchtests/bench-wcspbrk.c b/benchtests/bench-wcspbrk.c index a59bbadeb3..70adea119d 100644 --- a/benchtests/bench-wcspbrk.c +++ b/benchtests/bench-wcspbrk.c @@ -1,5 +1,5 @@ /* Measure wcspbrk functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define WIDE 1 #include "bench-strpbrk.c" diff --git a/benchtests/bench-wcsrchr.c b/benchtests/bench-wcsrchr.c index 0d8ae4c918..7f3b19b707 100644 --- a/benchtests/bench-wcsrchr.c +++ b/benchtests/bench-wcsrchr.c @@ -1,5 +1,5 @@ /* Measure wcsrchr functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define WIDE 1 #include "bench-strrchr.c" diff --git a/benchtests/bench-wcsspn.c b/benchtests/bench-wcsspn.c index 18c0a6d1a3..787b93a1cd 100644 --- a/benchtests/bench-wcsspn.c +++ b/benchtests/bench-wcsspn.c @@ -1,5 +1,5 @@ /* Measure wcsspn functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define WIDE 1 #include "bench-strspn.c" diff --git a/benchtests/bench-wmemchr.c b/benchtests/bench-wmemchr.c index 6f1328199e..b2cfba4d59 100644 --- a/benchtests/bench-wmemchr.c +++ b/benchtests/bench-wmemchr.c @@ -1,5 +1,5 @@ /* Measure wmemchr functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define WIDE 1 #include "bench-memchr.c" diff --git a/benchtests/bench-wmemcmp.c b/benchtests/bench-wmemcmp.c index e790b9eb55..1dc60f5f93 100644 --- a/benchtests/bench-wmemcmp.c +++ b/benchtests/bench-wmemcmp.c @@ -1,5 +1,5 @@ /* Measure wmemcmp functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define WIDE 1 #include "bench-memcmp.c" diff --git a/benchtests/bench-wmemset.c b/benchtests/bench-wmemset.c index 57067ce604..26138db0a3 100644 --- a/benchtests/bench-wmemset.c +++ b/benchtests/bench-wmemset.c @@ -1,5 +1,5 @@ /* Measure wmemset functions. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define WIDE 1 #include "bench-memset.c" diff --git a/benchtests/json-lib.c b/benchtests/json-lib.c index a67820b255..fb2835f705 100644 --- a/benchtests/json-lib.c +++ b/benchtests/json-lib.c @@ -1,5 +1,5 @@ /* Simple library for printing JSON data. - Copyright (C) 2014-2019 Free Software Foundation, Inc. + Copyright (C) 2014-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/benchtests/json-lib.h b/benchtests/json-lib.h index 577d45dfce..d412dc6437 100644 --- a/benchtests/json-lib.h +++ b/benchtests/json-lib.h @@ -1,5 +1,5 @@ /* Simple library for printing JSON data. - Copyright (C) 2014-2019 Free Software Foundation, Inc. + Copyright (C) 2014-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef __JSON_LIB_H__ #define __JSON_LIB_H__ diff --git a/benchtests/pthread_once-source.c b/benchtests/pthread_once-source.c index 93d7393d88..6ca1abbc60 100644 --- a/benchtests/pthread_once-source.c +++ b/benchtests/pthread_once-source.c @@ -1,6 +1,6 @@ /* Measure pthread_once best-case latency (i.e., when already initialized. - Copyright (C) 2014-2019 Free Software Foundation, Inc. + Copyright (C) 2014-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ static pthread_once_t once = PTHREAD_ONCE_INIT; diff --git a/benchtests/scripts/bench.py b/benchtests/scripts/bench.py index dcf4e8d088..aeec5ccd23 100755 --- a/benchtests/scripts/bench.py +++ b/benchtests/scripts/bench.py @@ -1,5 +1,5 @@ #!/usr/bin/python -# Copyright (C) 2014-2019 Free Software Foundation, Inc. +# Copyright (C) 2014-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # # The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ # # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . """Benchmark program generator script diff --git a/benchtests/scripts/compare_bench.py b/benchtests/scripts/compare_bench.py index c1c438a1c9..a215ebc9bd 100755 --- a/benchtests/scripts/compare_bench.py +++ b/benchtests/scripts/compare_bench.py @@ -1,5 +1,5 @@ #!/usr/bin/python -# Copyright (C) 2015-2019 Free Software Foundation, Inc. +# Copyright (C) 2015-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # # The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ # # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . """Compare two benchmark results Given two benchmark result files and a threshold, this script compares the diff --git a/benchtests/scripts/compare_strings.py b/benchtests/scripts/compare_strings.py index bd37e2b9c2..2b2edbf10d 100755 --- a/benchtests/scripts/compare_strings.py +++ b/benchtests/scripts/compare_strings.py @@ -1,5 +1,5 @@ #!/usr/bin/python -# Copyright (C) 2017-2019 Free Software Foundation, Inc. +# Copyright (C) 2017-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # # The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ # # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . """Compare results of string functions Given a string benchmark result file, print a table with comparisons with a diff --git a/benchtests/scripts/import_bench.py b/benchtests/scripts/import_bench.py index 7a55d19f03..08681aafdc 100644 --- a/benchtests/scripts/import_bench.py +++ b/benchtests/scripts/import_bench.py @@ -1,5 +1,5 @@ #!/usr/bin/python -# Copyright (C) 2015-2019 Free Software Foundation, Inc. +# Copyright (C) 2015-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # # The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ # # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . """Functions to import benchmark data and process it""" import json diff --git a/benchtests/scripts/plot_strings.py b/benchtests/scripts/plot_strings.py new file mode 100755 index 0000000000..c74497d0fb --- /dev/null +++ b/benchtests/scripts/plot_strings.py @@ -0,0 +1,395 @@ +#!/usr/bin/python3 +# Plot GNU C Library string microbenchmark output. +# Copyright (C) 2019-2020 Free Software Foundation, Inc. +# This file is part of the GNU C Library. +# +# The GNU C Library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# The GNU C Library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with the GNU C Library; if not, see +# . +"""Plot string microbenchmark results. + +Given a benchmark results file in JSON format and a benchmark schema file, +plot the benchmark timings in one of the available representations. + +Separate figure is generated and saved to a file for each 'results' array +found in the benchmark results file. Output filenames and plot titles +are derived from the metadata found in the benchmark results file. +""" +import argparse +from collections import defaultdict +import json +import matplotlib as mpl +import numpy as np +import os + +try: + import jsonschema as validator +except ImportError: + print("Could not find jsonschema module.") + raise + +# Use pre-selected markers for plotting lines to improve readability +markers = [".", "x", "^", "+", "*", "v", "1", ">", "s"] + +# Benchmark variants for which the x-axis scale should be logarithmic +log_variants = {"powers of 2"} + + +def gmean(numbers): + """Compute geometric mean. + + Args: + numbers: 2-D list of numbers + Return: + numpy array with geometric means of numbers along each column + """ + a = np.array(numbers, dtype=np.complex) + means = a.prod(0) ** (1.0 / len(a)) + return np.real(means) + + +def relativeDifference(x, x_reference): + """Compute per-element relative difference between each row of + a matrix and an array of reference values. + + Args: + x: numpy matrix of shape (n, m) + x_reference: numpy array of size m + Return: + relative difference between rows of x and x_reference (in %) + """ + abs_diff = np.subtract(x, x_reference) + return np.divide(np.multiply(abs_diff, 100.0), x_reference) + + +def plotTime(timings, routine, bench_variant, title, outpath): + """Plot absolute timing values. + + Args: + timings: timings to plot + routine: benchmarked string routine name + bench_variant: top-level benchmark variant name + title: figure title (generated so far) + outpath: output file path (generated so far) + Return: + y: y-axis values to plot + title_final: final figure title + outpath_final: file output file path + """ + y = timings + plt.figure() + + if not args.values: + plt.axes().yaxis.set_major_formatter(plt.NullFormatter()) + + plt.ylabel("timing") + title_final = "%s %s benchmark timings\n%s" % \ + (routine, bench_variant, title) + outpath_final = os.path.join(args.outdir, "%s_%s_%s%s" % \ + (routine, args.plot, bench_variant, outpath)) + + return y, title_final, outpath_final + + +def plotRelative(timings, all_timings, routine, ifuncs, bench_variant, + title, outpath): + """Plot timing values relative to a chosen ifunc + + Args: + timings: timings to plot + all_timings: all collected timings + routine: benchmarked string routine name + ifuncs: names of ifuncs tested + bench_variant: top-level benchmark variant name + title: figure title (generated so far) + outpath: output file path (generated so far) + Return: + y: y-axis values to plot + title_final: final figure title + outpath_final: file output file path + """ + # Choose the baseline ifunc + if args.baseline: + baseline = args.baseline.replace("__", "") + else: + baseline = ifuncs[0] + + baseline_index = ifuncs.index(baseline) + + # Compare timings against the baseline + y = relativeDifference(timings, all_timings[baseline_index]) + + plt.figure() + plt.axhspan(-args.threshold, args.threshold, color="lightgray", alpha=0.3) + plt.axhline(0, color="k", linestyle="--", linewidth=0.4) + plt.ylabel("relative timing (in %)") + title_final = "Timing comparison against %s\nfor %s benchmark, %s" % \ + (baseline, bench_variant, title) + outpath_final = os.path.join(args.outdir, "%s_%s_%s%s" % \ + (baseline, args.plot, bench_variant, outpath)) + + return y, title_final, outpath_final + + +def plotMax(timings, routine, bench_variant, title, outpath): + """Plot results as percentage of the maximum ifunc performance. + + The optimal ifunc is computed on a per-parameter-value basis. + Performance is computed as 1/timing. + + Args: + timings: timings to plot + routine: benchmarked string routine name + bench_variant: top-level benchmark variant name + title: figure title (generated so far) + outpath: output file path (generated so far) + Return: + y: y-axis values to plot + title_final: final figure title + outpath_final: file output file path + """ + perf = np.reciprocal(timings) + max_perf = np.max(perf, axis=0) + y = np.add(100.0, relativeDifference(perf, max_perf)) + + plt.figure() + plt.axhline(100.0, color="k", linestyle="--", linewidth=0.4) + plt.ylabel("1/timing relative to max (in %)") + title_final = "Performance comparison against max for %s\n%s " \ + "benchmark, %s" % (routine, bench_variant, title) + outpath_final = os.path.join(args.outdir, "%s_%s_%s%s" % \ + (routine, args.plot, bench_variant, outpath)) + + return y, title_final, outpath_final + + +def plotThroughput(timings, params, routine, bench_variant, title, outpath): + """Plot throughput. + + Throughput is computed as the varied parameter value over timing. + + Args: + timings: timings to plot + params: varied parameter values + routine: benchmarked string routine name + bench_variant: top-level benchmark variant name + title: figure title (generated so far) + outpath: output file path (generated so far) + Return: + y: y-axis values to plot + title_final: final figure title + outpath_final: file output file path + """ + y = np.divide(params, timings) + plt.figure() + + if not args.values: + plt.axes().yaxis.set_major_formatter(plt.NullFormatter()) + + plt.ylabel("%s / timing" % args.key) + title_final = "%s %s benchmark throughput results\n%s" % \ + (routine, bench_variant, title) + outpath_final = os.path.join(args.outdir, "%s_%s_%s%s" % \ + (routine, args.plot, bench_variant, outpath)) + return y, title_final, outpath_final + + +def finishPlot(x, y, title, outpath, x_scale, plotted_ifuncs): + """Finish generating current Figure. + + Args: + x: x-axis values + y: y-axis values + title: figure title + outpath: output file path + x_scale: x-axis scale + plotted_ifuncs: names of ifuncs to plot + """ + plt.xlabel(args.key) + plt.xscale(x_scale) + plt.title(title) + + plt.grid(color="k", linestyle=args.grid, linewidth=0.5, alpha=0.5) + + for i in range(len(plotted_ifuncs)): + plt.plot(x, y[i], marker=markers[i % len(markers)], + label=plotted_ifuncs[i]) + + plt.legend(loc="best", fontsize="small") + plt.savefig("%s_%s.%s" % (outpath, x_scale, args.extension), + format=args.extension, dpi=args.resolution) + + if args.display: + plt.show() + + plt.close() + + +def plotRecursive(json_iter, routine, ifuncs, bench_variant, title, outpath, + x_scale): + """Plot benchmark timings. + + Args: + json_iter: reference to json object + routine: benchmarked string routine name + ifuncs: names of ifuncs tested + bench_variant: top-level benchmark variant name + title: figure's title (generated so far) + outpath: output file path (generated so far) + x_scale: x-axis scale + """ + + # RECURSIVE CASE: 'variants' array found + if "variants" in json_iter: + # Continue recursive search for 'results' array. Record the + # benchmark variant (configuration) in order to customize + # the title, filename and X-axis scale for the generated figure. + for variant in json_iter["variants"]: + new_title = "%s%s, " % (title, variant["name"]) + new_outpath = "%s_%s" % (outpath, variant["name"].replace(" ", "_")) + new_x_scale = "log" if variant["name"] in log_variants else x_scale + + plotRecursive(variant, routine, ifuncs, bench_variant, new_title, + new_outpath, new_x_scale) + return + + # BASE CASE: 'results' array found + domain = [] + timings = defaultdict(list) + + # Collect timings + for result in json_iter["results"]: + domain.append(result[args.key]) + timings[result[args.key]].append(result["timings"]) + + domain = np.unique(np.array(domain)) + averages = [] + + # Compute geometric mean if there are multple timings for each + # parameter value. + for parameter in domain: + averages.append(gmean(timings[parameter])) + + averages = np.array(averages).transpose() + + # Choose ifuncs to plot + if isinstance(args.ifuncs, str): + plotted_ifuncs = ifuncs + else: + plotted_ifuncs = [x.replace("__", "") for x in args.ifuncs] + + plotted_indices = [ifuncs.index(x) for x in plotted_ifuncs] + plotted_vals = averages[plotted_indices,:] + + # Plotting logic specific to each plot type + if args.plot == "time": + codomain, title, outpath = plotTime(plotted_vals, routine, + bench_variant, title, outpath) + elif args.plot == "rel": + codomain, title, outpath = plotRelative(plotted_vals, averages, routine, + ifuncs, bench_variant, title, outpath) + elif args.plot == "max": + codomain, title, outpath = plotMax(plotted_vals, routine, + bench_variant, title, outpath) + elif args.plot == "thru": + codomain, title, outpath = plotThroughput(plotted_vals, domain, routine, + bench_variant, title, outpath) + + # Plotting logic shared between plot types + finishPlot(domain, codomain, title, outpath, x_scale, plotted_ifuncs) + + +def main(args): + """Program Entry Point. + + Args: + args: command line arguments (excluding program name) + """ + + # Select non-GUI matplotlib backend if interactive display is disabled + if not args.display: + mpl.use("Agg") + + global plt + import matplotlib.pyplot as plt + + schema = None + + with open(args.schema, "r") as f: + schema = json.load(f) + + for filename in args.bench: + bench = None + + with open(filename, "r") as f: + bench = json.load(f) + + validator.validate(bench, schema) + + for function in bench["functions"]: + bench_variant = bench["functions"][function]["bench-variant"] + ifuncs = bench["functions"][function]["ifuncs"] + ifuncs = [x.replace("__", "") for x in ifuncs] + + plotRecursive(bench["functions"][function], function, ifuncs, + bench_variant, "", "", args.logarithmic) + + +""" main() """ +if __name__ == "__main__": + + parser = argparse.ArgumentParser(description= + "Plot string microbenchmark results", + formatter_class=argparse.ArgumentDefaultsHelpFormatter) + + # Required parameter + parser.add_argument("bench", nargs="+", + help="benchmark results file(s) in json format") + + # Optional parameters + parser.add_argument("-b", "--baseline", type=str, + help="baseline ifunc for 'rel' plot") + parser.add_argument("-d", "--display", action="store_true", + help="display figures") + parser.add_argument("-e", "--extension", type=str, default="png", + choices=["png", "pdf", "svg"], + help="output file(s) extension") + parser.add_argument("-g", "--grid", action="store_const", default="", + const="-", help="show grid lines") + parser.add_argument("-i", "--ifuncs", nargs="+", default="all", + help="ifuncs to plot") + parser.add_argument("-k", "--key", type=str, default="length", + help="key to access the varied parameter") + parser.add_argument("-l", "--logarithmic", action="store_const", + default="linear", const="log", + help="use logarithmic x-axis scale") + parser.add_argument("-o", "--outdir", type=str, default=os.getcwd(), + help="output directory") + parser.add_argument("-p", "--plot", type=str, default="time", + choices=["time", "rel", "max", "thru"], + help="plot absolute timings, relative timings, " \ + "performance relative to max, or throughput") + parser.add_argument("-r", "--resolution", type=int, default=100, + help="dpi resolution for the generated figures") + parser.add_argument("-s", "--schema", type=str, + default=os.path.join(os.path.dirname( + os.path.realpath(__file__)), + "benchout_strings.schema.json"), + help="schema file to validate the results file.") + parser.add_argument("-t", "--threshold", type=int, default=5, + help="threshold to mark in 'rel' graph (in %%)") + parser.add_argument("-v", "--values", action="store_true", + help="show actual values") + + args = parser.parse_args() + main(args) diff --git a/benchtests/scripts/validate_benchout.py b/benchtests/scripts/validate_benchout.py index 55d07c6bce..715218aff8 100755 --- a/benchtests/scripts/validate_benchout.py +++ b/benchtests/scripts/validate_benchout.py @@ -1,5 +1,5 @@ #!/usr/bin/python -# Copyright (C) 2014-2019 Free Software Foundation, Inc. +# Copyright (C) 2014-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # # The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ # # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . """Benchmark output validator Given a benchmark output file in json format and a benchmark schema file, diff --git a/benchtests/thread_create-source.c b/benchtests/thread_create-source.c index 3586b9f4ef..c5feda8902 100644 --- a/benchtests/thread_create-source.c +++ b/benchtests/thread_create-source.c @@ -1,7 +1,7 @@ /* Measure pthread_create thread creation with different stack and guard sizes. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/bits/byteswap.h b/bits/byteswap.h index 83731c9eab..ccf613a9f6 100644 --- a/bits/byteswap.h +++ b/bits/byteswap.h @@ -1,5 +1,5 @@ /* Macros and inline functions to swap the order of bytes in integer values. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #if !defined _BYTESWAP_H && !defined _NETINET_IN_H && !defined _ENDIAN_H # error "Never use directly; include instead." diff --git a/bits/confname.h b/bits/confname.h index 1476f61402..5dc8215093 100644 --- a/bits/confname.h +++ b/bits/confname.h @@ -1,5 +1,5 @@ /* `sysconf', `pathconf', and `confstr' NAME values. Generic version. - Copyright (C) 1993-2019 Free Software Foundation, Inc. + Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _UNISTD_H # error "Never use directly; include instead." diff --git a/bits/dirent.h b/bits/dirent.h index 49793d93b8..d102c446c2 100644 --- a/bits/dirent.h +++ b/bits/dirent.h @@ -1,5 +1,5 @@ /* Directory entry structure `struct dirent'. 4.4BSD/Generic version. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _DIRENT_H # error "Never use directly; include instead." diff --git a/bits/dirent_ext.h b/bits/dirent_ext.h index 279fd25d25..6e472f54c6 100644 --- a/bits/dirent_ext.h +++ b/bits/dirent_ext.h @@ -1,5 +1,5 @@ /* System-specific extensions of , generic version. - Copyright (C) 2019 Free Software Foundation, Inc. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _DIRENT_H # error "Never include directly; use instead." diff --git a/bits/dlfcn.h b/bits/dlfcn.h index 8e311f745c..ed67f29bc3 100644 --- a/bits/dlfcn.h +++ b/bits/dlfcn.h @@ -1,5 +1,5 @@ /* System dependent definitions for run-time dynamic loading. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _DLFCN_H # error "Never use directly; include instead." diff --git a/bits/environments.h b/bits/environments.h index 02ace1d024..5f39f324ae 100644 --- a/bits/environments.h +++ b/bits/environments.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2019 Free Software Foundation, Inc. +/* Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _UNISTD_H # error "Never include this file directly. Use instead" diff --git a/bits/errno.h b/bits/errno.h index 05bf7a44c5..663570adac 100644 --- a/bits/errno.h +++ b/bits/errno.h @@ -1,5 +1,5 @@ /* Error constants. Generic version. - Copyright (C) 1991-2019 Free Software Foundation, Inc. + Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This file defines the errno constants. */ diff --git a/bits/fcntl.h b/bits/fcntl.h index 8bb1357684..a8278242e5 100644 --- a/bits/fcntl.h +++ b/bits/fcntl.h @@ -1,5 +1,5 @@ /* O_*, F_*, FD_* bit values. 4.4BSD/Generic version. - Copyright (C) 1991-2019 Free Software Foundation, Inc. + Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _FCNTL_H #error "Never use directly; include instead." diff --git a/bits/fenv.h b/bits/fenv.h index c7ba575a87..331e6c145e 100644 --- a/bits/fenv.h +++ b/bits/fenv.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2019 Free Software Foundation, Inc. +/* Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _FENV_H # error "Never use directly; include instead." @@ -54,7 +54,7 @@ fenv_t; /* If the default argument is used we use this value. */ #define FE_DFL_ENV ((const fenv_t *) -1l) -#if __GLIBC_USE (IEC_60559_BFP_EXT) +#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) /* Type representing floating-point control modes. */ typedef unsigned int femode_t; diff --git a/bits/floatn-common.h b/bits/floatn-common.h index 980bfdaf89..6aa5ba12e4 100644 --- a/bits/floatn-common.h +++ b/bits/floatn-common.h @@ -1,6 +1,6 @@ /* Macros to control TS 18661-3 glibc features where the same definitions are appropriate for all platforms. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _BITS_FLOATN_COMMON_H #define _BITS_FLOATN_COMMON_H diff --git a/bits/floatn.h b/bits/floatn.h index 9ec6632a28..7ac5596e2d 100644 --- a/bits/floatn.h +++ b/bits/floatn.h @@ -1,5 +1,5 @@ /* Macros to control TS 18661-3 glibc features. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Defined to 1 if the current compiler invocation provides a floating-point type with the IEEE 754 binary128 format, and this glibc diff --git a/bits/flt-eval-method.h b/bits/flt-eval-method.h index 64abdf150d..e2b10e3356 100644 --- a/bits/flt-eval-method.h +++ b/bits/flt-eval-method.h @@ -1,5 +1,5 @@ /* Define __GLIBC_FLT_EVAL_METHOD. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _MATH_H # error "Never use directly; include instead." diff --git a/bits/fp-fast.h b/bits/fp-fast.h index bbd275e2f9..328d223027 100644 --- a/bits/fp-fast.h +++ b/bits/fp-fast.h @@ -1,5 +1,5 @@ /* Define FP_FAST_* macros. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _MATH_H # error "Never use directly; include instead." diff --git a/bits/fp-logb.h b/bits/fp-logb.h index 63cd361416..30effcd521 100644 --- a/bits/fp-logb.h +++ b/bits/fp-logb.h @@ -1,5 +1,5 @@ /* Define __FP_LOGB0_IS_MIN and __FP_LOGBNAN_IS_MIN. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _MATH_H # error "Never use directly; include instead." diff --git a/bits/hwcap.h b/bits/hwcap.h index b86fd1ea1f..b3d20ca6ac 100644 --- a/bits/hwcap.h +++ b/bits/hwcap.h @@ -1,5 +1,5 @@ /* Defines for bits in AT_HWCAP. - Copyright (C) 2012-2019 Free Software Foundation, Inc. + Copyright (C) 2012-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _SYS_AUXV_H # error "Never include directly; use instead." diff --git a/bits/in.h b/bits/in.h index 7652bc45d0..0831456b76 100644 --- a/bits/in.h +++ b/bits/in.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2019 Free Software Foundation, Inc. +/* Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Generic version. */ diff --git a/bits/indirect-return.h b/bits/indirect-return.h index 3826c39ad9..ac389c62f5 100644 --- a/bits/indirect-return.h +++ b/bits/indirect-return.h @@ -1,5 +1,5 @@ /* Definition of __INDIRECT_RETURN. Generic version. - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _UCONTEXT_H # error "Never include directly; use instead." diff --git a/bits/ioctl-types.h b/bits/ioctl-types.h index d9c42c93f4..474a52b435 100644 --- a/bits/ioctl-types.h +++ b/bits/ioctl-types.h @@ -1,5 +1,5 @@ /* Structure types for pre-termios terminal ioctls. Generic Unix version. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _SYS_IOCTL_H # error "Never use directly; include instead." diff --git a/bits/ipc.h b/bits/ipc.h index 15c8611317..e2981fd5c3 100644 --- a/bits/ipc.h +++ b/bits/ipc.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2019 Free Software Foundation, Inc. +/* Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _SYS_IPC_H # error "Never use directly; include instead." diff --git a/bits/ipctypes.h b/bits/ipctypes.h index c941cd14dc..a955cdda7f 100644 --- a/bits/ipctypes.h +++ b/bits/ipctypes.h @@ -1,5 +1,5 @@ /* bits/ipctypes.h -- Define some types used by SysV IPC/MSG/SHM. Generic. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* * Never include directly. diff --git a/bits/iscanonical.h b/bits/iscanonical.h index 3fae311f1c..c8ac276212 100644 --- a/bits/iscanonical.h +++ b/bits/iscanonical.h @@ -1,5 +1,5 @@ /* Define iscanonical macro. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _MATH_H # error "Never use directly; include instead." diff --git a/bits/libc-header-start.h b/bits/libc-header-start.h index 72efab29f2..b872a417be 100644 --- a/bits/libc-header-start.h +++ b/bits/libc-header-start.h @@ -1,5 +1,5 @@ /* Handle feature test macros at the start of a header. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This header is internal to glibc and should not be included outside of glibc headers. Headers including it must define @@ -43,22 +43,38 @@ #endif /* ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ - macro. */ + macro. Most but not all symbols enabled by that macro in TS + 18661-1 are enabled unconditionally in C2X; the symbols in Annex F + still require that macro in C2X. */ #undef __GLIBC_USE_IEC_60559_BFP_EXT #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_BFP_EXT__ # define __GLIBC_USE_IEC_60559_BFP_EXT 1 #else # define __GLIBC_USE_IEC_60559_BFP_EXT 0 #endif +#undef __GLIBC_USE_IEC_60559_BFP_EXT_C2X +#if __GLIBC_USE (IEC_60559_BFP_EXT) || __GLIBC_USE (ISOC2X) +# define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 1 +#else +# define __GLIBC_USE_IEC_60559_BFP_EXT_C2X 0 +#endif /* ISO/IEC TS 18661-4:2015 defines the - __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. */ + __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction + functions, the symbols from this TS are enabled unconditionally in + C2X. */ #undef __GLIBC_USE_IEC_60559_FUNCS_EXT #if defined __USE_GNU || defined __STDC_WANT_IEC_60559_FUNCS_EXT__ # define __GLIBC_USE_IEC_60559_FUNCS_EXT 1 #else # define __GLIBC_USE_IEC_60559_FUNCS_EXT 0 #endif +#undef __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X +#if __GLIBC_USE (IEC_60559_FUNCS_EXT) || __GLIBC_USE (ISOC2X) +# define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 1 +#else +# define __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X 0 +#endif /* ISO/IEC TS 18661-3:2015 defines the __STDC_WANT_IEC_60559_TYPES_EXT__ macro. */ diff --git a/bits/libm-simd-decl-stubs.h b/bits/libm-simd-decl-stubs.h index 0774a90a56..ef3ed54e81 100644 --- a/bits/libm-simd-decl-stubs.h +++ b/bits/libm-simd-decl-stubs.h @@ -1,5 +1,5 @@ /* Empty definitions required for __MATHCALL_VEC unfolding in mathcalls.h. - Copyright (C) 2014-2019 Free Software Foundation, Inc. + Copyright (C) 2014-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _MATH_H # error "Never include directly;\ diff --git a/bits/long-double.h b/bits/long-double.h index ed36d97cc9..6e16447e65 100644 --- a/bits/long-double.h +++ b/bits/long-double.h @@ -1,5 +1,5 @@ /* Properties of long double type. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This header is included by . @@ -37,3 +37,4 @@ #ifndef __NO_LONG_DOUBLE_MATH # define __NO_LONG_DOUBLE_MATH 1 #endif +#define __LONG_DOUBLE_USES_FLOAT128 0 diff --git a/bits/math-finite.h b/bits/math-finite.h deleted file mode 100644 index 6141c12537..0000000000 --- a/bits/math-finite.h +++ /dev/null @@ -1,197 +0,0 @@ -/* Entry points to finite-math-only compiler runs. - Copyright (C) 2011-2019 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _MATH_H -# error "Never use directly; include instead." -#endif - -#define __REDIRFROM(...) __REDIRFROM_X(__VA_ARGS__) - -#define __REDIRTO(...) __REDIRTO_X(__VA_ARGS__) - -#define __MATH_REDIRCALL_X(from, args, to) \ - extern _Mdouble_ __REDIRECT_NTH (from, args, to) -#define __MATH_REDIRCALL(function, reentrant, args) \ - __MATH_REDIRCALL_X \ - (__REDIRFROM (function, reentrant), args, \ - __REDIRTO (function, reentrant)) -#define __MATH_REDIRCALL_2(from, reentrant, args, to) \ - __MATH_REDIRCALL_X \ - (__REDIRFROM (from, reentrant), args, \ - __REDIRTO (to, reentrant)) - -#define __MATH_REDIRCALL_INTERNAL(function, reentrant, args) \ - __MATH_REDIRCALL_X \ - (__REDIRFROM (__CONCAT (__, function), \ - __CONCAT (reentrant, _finite)), \ - args, __REDIRTO (function, _r)) - - -/* acos. */ -__MATH_REDIRCALL (acos, , (_Mdouble_)); - -#if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 -/* acosh. */ -__MATH_REDIRCALL (acosh, , (_Mdouble_)); -#endif - -/* asin. */ -__MATH_REDIRCALL (asin, , (_Mdouble_)); - -/* atan2. */ -__MATH_REDIRCALL (atan2, , (_Mdouble_, _Mdouble_)); - -#if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 -/* atanh. */ -__MATH_REDIRCALL (atanh, , (_Mdouble_)); -#endif - -/* cosh. */ -__MATH_REDIRCALL (cosh, , (_Mdouble_)); - -/* exp. */ -__MATH_REDIRCALL (exp, , (_Mdouble_)); - -#if __GLIBC_USE (IEC_60559_FUNCS_EXT) -/* exp10. */ -__MATH_REDIRCALL (exp10, , (_Mdouble_)); -#endif - -#ifdef __USE_ISOC99 -/* exp2. */ -__MATH_REDIRCALL (exp2, , (_Mdouble_)); -#endif - -/* fmod. */ -__MATH_REDIRCALL (fmod, , (_Mdouble_, _Mdouble_)); - -#if defined __USE_XOPEN || defined __USE_ISOC99 -/* hypot. */ -__MATH_REDIRCALL (hypot, , (_Mdouble_, _Mdouble_)); -#endif - -#if (__MATH_DECLARING_DOUBLE && (defined __USE_MISC || defined __USE_XOPEN)) \ - || (!__MATH_DECLARING_DOUBLE && defined __USE_MISC) -/* j0. */ -__MATH_REDIRCALL (j0, , (_Mdouble_)); - -/* y0. */ -__MATH_REDIRCALL (y0, , (_Mdouble_)); - -/* j1. */ -__MATH_REDIRCALL (j1, , (_Mdouble_)); - -/* y1. */ -__MATH_REDIRCALL (y1, , (_Mdouble_)); - -/* jn. */ -__MATH_REDIRCALL (jn, , (int, _Mdouble_)); - -/* yn. */ -__MATH_REDIRCALL (yn, , (int, _Mdouble_)); -#endif - -#ifdef __USE_MISC -/* lgamma_r. */ -__MATH_REDIRCALL (lgamma, _r, (_Mdouble_, int *)); -#endif - -/* Redirect __lgammal_r_finite to __lgamma_r_finite when __NO_LONG_DOUBLE_MATH - is set and to itself otherwise. It also redirects __lgamma_r_finite and - __lgammaf_r_finite to themselves. */ -__MATH_REDIRCALL_INTERNAL (lgamma, _r, (_Mdouble_, int *)); - -#if ((defined __USE_XOPEN || defined __USE_ISOC99) \ - && defined __extern_always_inline) -/* lgamma. */ -__extern_always_inline _Mdouble_ -__NTH (__REDIRFROM (lgamma, ) (_Mdouble_ __d)) -{ -# if defined __USE_MISC || defined __USE_XOPEN - return __REDIRTO (lgamma, _r) (__d, &signgam); -# else - int __local_signgam = 0; - return __REDIRTO (lgamma, _r) (__d, &__local_signgam); -# endif -} -#endif - -#if ((defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)) \ - && defined __extern_always_inline) && !__MATH_DECLARING_FLOATN -/* gamma. */ -__extern_always_inline _Mdouble_ -__NTH (__REDIRFROM (gamma, ) (_Mdouble_ __d)) -{ - return __REDIRTO (lgamma, _r) (__d, &signgam); -} -#endif - -/* log. */ -__MATH_REDIRCALL (log, , (_Mdouble_)); - -/* log10. */ -__MATH_REDIRCALL (log10, , (_Mdouble_)); - -#ifdef __USE_ISOC99 -/* log2. */ -__MATH_REDIRCALL (log2, , (_Mdouble_)); -#endif - -/* pow. */ -__MATH_REDIRCALL (pow, , (_Mdouble_, _Mdouble_)); - -#if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 -/* remainder. */ -__MATH_REDIRCALL (remainder, , (_Mdouble_, _Mdouble_)); -#endif - -#if ((__MATH_DECLARING_DOUBLE \ - && (defined __USE_MISC \ - || (defined __USE_XOPEN_EXTENDED && !defined __USE_XOPEN2K8))) \ - || (!defined __MATH_DECLARE_LDOUBLE && defined __USE_MISC)) \ - && !__MATH_DECLARING_FLOATN -/* scalb. */ -__MATH_REDIRCALL (scalb, , (_Mdouble_, _Mdouble_)); -#endif - -/* sinh. */ -__MATH_REDIRCALL (sinh, , (_Mdouble_)); - -/* sqrt. */ -__MATH_REDIRCALL (sqrt, , (_Mdouble_)); - -#if defined __USE_ISOC99 && defined __extern_always_inline -/* tgamma. */ -extern _Mdouble_ -__REDIRFROM (__gamma, _r_finite) (_Mdouble_, int *); - -__extern_always_inline _Mdouble_ -__NTH (__REDIRFROM (tgamma, ) (_Mdouble_ __d)) -{ - int __local_signgam = 0; - _Mdouble_ __res = __REDIRTO (gamma, _r) (__d, &__local_signgam); - return __local_signgam < 0 ? -__res : __res; -} -#endif - -#undef __REDIRFROM -#undef __REDIRTO -#undef __MATH_REDIRCALL -#undef __MATH_REDIRCALL_2 -#undef __MATH_REDIRCALL_INTERNAL -#undef __MATH_REDIRCALL_X diff --git a/bits/math-vector.h b/bits/math-vector.h index 6fcc4366ab..c4e4885507 100644 --- a/bits/math-vector.h +++ b/bits/math-vector.h @@ -1,5 +1,5 @@ /* Platform-specific SIMD declarations of math functions. - Copyright (C) 2014-2019 Free Software Foundation, Inc. + Copyright (C) 2014-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _MATH_H # error "Never include directly;\ diff --git a/bits/mathdef.h b/bits/mathdef.h index 56418d997f..1227b13e6f 100644 --- a/bits/mathdef.h +++ b/bits/mathdef.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2019 Free Software Foundation, Inc. +/* Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _COMPLEX_H # error "Never use directly; include instead" diff --git a/bits/mman.h b/bits/mman.h index 0953186a3d..35a76c196d 100644 --- a/bits/mman.h +++ b/bits/mman.h @@ -1,5 +1,5 @@ /* Definitions for BSD-style memory management. - Copyright (C) 1994-2019 Free Software Foundation, Inc. + Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* These are the bits used by 4.4 BSD and its derivatives. On systems (such as GNU) where these facilities are not system services but can be diff --git a/bits/mqueue.h b/bits/mqueue.h index 641f4dec6c..f80aae8ddc 100644 --- a/bits/mqueue.h +++ b/bits/mqueue.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2019 Free Software Foundation, Inc. +/* Copyright (C) 2004-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _MQUEUE_H # error "Never use directly; include instead." diff --git a/bits/msq.h b/bits/msq.h index 5ee27a3688..8304e07efc 100644 --- a/bits/msq.h +++ b/bits/msq.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2019 Free Software Foundation, Inc. +/* Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _SYS_MSG_H #error "Never use directly; include instead." diff --git a/bits/netdb.h b/bits/netdb.h index 178d824bf4..56df2a6b3b 100644 --- a/bits/netdb.h +++ b/bits/netdb.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2019 Free Software Foundation, Inc. +/* Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _NETDB_H # error "Never include directly; use instead." diff --git a/bits/param.h b/bits/param.h index e83f60f0b5..df5634ee34 100644 --- a/bits/param.h +++ b/bits/param.h @@ -1,5 +1,5 @@ /* Old-style Unix parameters and limits. Stub version. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _SYS_PARAM_H # error "Never use directly; include instead." diff --git a/bits/poll.h b/bits/poll.h index c0d8e82a88..3fe34d7512 100644 --- a/bits/poll.h +++ b/bits/poll.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2019 Free Software Foundation, Inc. +/* Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _SYS_POLL_H # error "Never use directly; include instead." diff --git a/bits/resource.h b/bits/resource.h index 5755b9c334..c2d25794d6 100644 --- a/bits/resource.h +++ b/bits/resource.h @@ -1,5 +1,5 @@ /* Bit values & structures for resource limits. 4.4 BSD/generic GNU version. - Copyright (C) 1994-2019 Free Software Foundation, Inc. + Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _SYS_RESOURCE_H # error "Never use directly; include instead." diff --git a/bits/sched.h b/bits/sched.h index c054a0554b..199da9599a 100644 --- a/bits/sched.h +++ b/bits/sched.h @@ -1,6 +1,6 @@ /* Definitions of constants and data structure for POSIX 1003.1b-1993 scheduling interface. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _BITS_SCHED_H #define _BITS_SCHED_H 1 diff --git a/bits/select.h b/bits/select.h index 71b771f7c9..14ea12f437 100644 --- a/bits/select.h +++ b/bits/select.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2019 Free Software Foundation, Inc. +/* Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _SYS_SELECT_H # error "Never use directly; include instead." diff --git a/bits/sem.h b/bits/sem.h index 02754c7e58..a84bfb1dd1 100644 --- a/bits/sem.h +++ b/bits/sem.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2019 Free Software Foundation, Inc. +/* Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _SYS_SEM_H # error "Never include directly; use instead." diff --git a/bits/shm.h b/bits/shm.h index 1d87421779..9fb2599174 100644 --- a/bits/shm.h +++ b/bits/shm.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2019 Free Software Foundation, Inc. +/* Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _SYS_SHM_H # error "Never include directly; use instead." diff --git a/bits/sigaction.h b/bits/sigaction.h index 804555dd58..afcbd87107 100644 --- a/bits/sigaction.h +++ b/bits/sigaction.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _BITS_SIGACTION_H #define _BITS_SIGACTION_H 1 diff --git a/bits/sigcontext.h b/bits/sigcontext.h index a46277fde7..ba7878db72 100644 --- a/bits/sigcontext.h +++ b/bits/sigcontext.h @@ -1,5 +1,5 @@ /* Structure describing state saved while handling a signal. Stub version. - Copyright (C) 1991-2019 Free Software Foundation, Inc. + Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _BITS_SIGCONTEXT_H #define _BITS_SIGCONTEXT_H 1 diff --git a/bits/sigevent-consts.h b/bits/sigevent-consts.h index 87f22b6b0f..e5f918a09f 100644 --- a/bits/sigevent-consts.h +++ b/bits/sigevent-consts.h @@ -1,5 +1,5 @@ /* sigevent constants. Stub version. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _BITS_SIGEVENT_CONSTS_H #define _BITS_SIGEVENT_CONSTS_H 1 diff --git a/bits/siginfo-consts.h b/bits/siginfo-consts.h index 4cb8416500..dbe1d18f81 100644 --- a/bits/siginfo-consts.h +++ b/bits/siginfo-consts.h @@ -1,5 +1,5 @@ /* siginfo_t constants. Stub version. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _BITS_SIGINFO_CONSTS_H #define _BITS_SIGINFO_CONSTS_H 1 diff --git a/bits/signal_ext.h b/bits/signal_ext.h index d1bed56e55..107c8dc447 100644 --- a/bits/signal_ext.h +++ b/bits/signal_ext.h @@ -1,5 +1,5 @@ /* System-specific extensions of , generic version. - Copyright (C) 2019 Free Software Foundation, Inc. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _SIGNAL_H # error "Never include directly; use instead." diff --git a/bits/signum-generic.h b/bits/signum-generic.h index 6fbbf20a31..504e5fb8c8 100644 --- a/bits/signum-generic.h +++ b/bits/signum-generic.h @@ -1,5 +1,5 @@ /* Signal number constants. Generic template. - Copyright (C) 1991-2019 Free Software Foundation, Inc. + Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _BITS_SIGNUM_GENERIC_H #define _BITS_SIGNUM_GENERIC_H 1 diff --git a/bits/signum.h b/bits/signum.h index 8c788c8e7e..183e3c0545 100644 --- a/bits/signum.h +++ b/bits/signum.h @@ -1,5 +1,5 @@ /* Signal number constants. Generic version. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _BITS_SIGNUM_H #define _BITS_SIGNUM_H 1 diff --git a/bits/sigstack.h b/bits/sigstack.h index 393dd889a1..1089019458 100644 --- a/bits/sigstack.h +++ b/bits/sigstack.h @@ -1,5 +1,5 @@ /* sigstack, sigaltstack definitions. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _BITS_SIGSTACK_H #define _BITS_SIGSTACK_H 1 diff --git a/bits/sigthread.h b/bits/sigthread.h index d130ce7ccb..3da46de73e 100644 --- a/bits/sigthread.h +++ b/bits/sigthread.h @@ -1,5 +1,5 @@ /* Signal handling function for threaded programs. Generic version. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _BITS_SIGTHREAD_H #define _BITS_SIGTHREAD_H 1 diff --git a/bits/sockaddr.h b/bits/sockaddr.h index 2505246ec5..9b4759bea7 100644 --- a/bits/sockaddr.h +++ b/bits/sockaddr.h @@ -1,5 +1,5 @@ /* Definition of struct sockaddr_* common members and sizes, generic version. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* * Never include this file directly; use instead. diff --git a/bits/socket.h b/bits/socket.h index fdcf015192..bebb2e7a57 100644 --- a/bits/socket.h +++ b/bits/socket.h @@ -1,5 +1,5 @@ /* System-specific socket constants and types. 4.4 BSD version. - Copyright (C) 1991-2019 Free Software Foundation, Inc. + Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; see the file COPYING.LIB. If - not, see . */ + not, see . */ #ifndef __BITS_SOCKET_H #define __BITS_SOCKET_H 1 diff --git a/bits/ss_flags.h b/bits/ss_flags.h index e8de847989..cde0537bf0 100644 --- a/bits/ss_flags.h +++ b/bits/ss_flags.h @@ -1,5 +1,5 @@ /* ss_flags values for stack_t. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _BITS_SS_FLAGS_H #define _BITS_SS_FLAGS_H 1 diff --git a/bits/stat.h b/bits/stat.h index c8d0665c3e..d6497c9aa7 100644 --- a/bits/stat.h +++ b/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2019 Free Software Foundation, Inc. +/* Copyright (C) 1992-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #if !defined _SYS_STAT_H && !defined _FCNTL_H # error "Never include directly; use instead." diff --git a/bits/statfs.h b/bits/statfs.h index eb7ab4ce52..78c981f27b 100644 --- a/bits/statfs.h +++ b/bits/statfs.h @@ -1,5 +1,5 @@ /* Definition of `struct statfs', information about a filesystem. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _SYS_STATFS_H # error "Never include directly; use instead." diff --git a/bits/statvfs.h b/bits/statvfs.h index abf5558946..67d21cf824 100644 --- a/bits/statvfs.h +++ b/bits/statvfs.h @@ -1,5 +1,5 @@ /* Definition of `struct statvfs', information about a filesystem. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _SYS_STATVFS_H # error "Never include directly; use instead." diff --git a/bits/stdint-intn.h b/bits/stdint-intn.h index fc7b43fc04..9e7bbc97ba 100644 --- a/bits/stdint-intn.h +++ b/bits/stdint-intn.h @@ -1,5 +1,5 @@ /* Define intN_t types. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _BITS_STDINT_INTN_H #define _BITS_STDINT_INTN_H 1 diff --git a/bits/stdint-uintn.h b/bits/stdint-uintn.h index e054f0b9f3..cd9fd65c5c 100644 --- a/bits/stdint-uintn.h +++ b/bits/stdint-uintn.h @@ -1,5 +1,5 @@ /* Define uintN_t types. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _BITS_STDINT_UINTN_H #define _BITS_STDINT_UINTN_H 1 diff --git a/bits/stdlib-bsearch.h b/bits/stdlib-bsearch.h index 60bb70c2d2..2f248a6937 100644 --- a/bits/stdlib-bsearch.h +++ b/bits/stdlib-bsearch.h @@ -1,5 +1,5 @@ /* Perform binary search - inline version. - Copyright (C) 1991-2019 Free Software Foundation, Inc. + Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ __extern_inline void * bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size, diff --git a/bits/sys_errlist.h b/bits/sys_errlist.h index 4f0bc9b596..40425a74c3 100644 --- a/bits/sys_errlist.h +++ b/bits/sys_errlist.h @@ -1,5 +1,5 @@ /* Declare sys_errlist and sys_nerr, or don't. Don't version. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _STDIO_H # error "Never include directly; use instead." diff --git a/bits/syslog-path.h b/bits/syslog-path.h index 5b97fa7db5..056db353a7 100644 --- a/bits/syslog-path.h +++ b/bits/syslog-path.h @@ -1,5 +1,5 @@ /* -- _PATH_LOG definition - Copyright (C) 2006-2019 Free Software Foundation, Inc. + Copyright (C) 2006-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _SYS_SYSLOG_H # error "Never include this file directly. Use instead" diff --git a/bits/sysmacros.h b/bits/sysmacros.h index 226023de7e..e6ba2cfe68 100644 --- a/bits/sysmacros.h +++ b/bits/sysmacros.h @@ -1,5 +1,5 @@ /* Definitions of macros to access `dev_t' values. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _BITS_SYSMACROS_H #define _BITS_SYSMACROS_H 1 diff --git a/bits/termios.h b/bits/termios.h index 760bdb9be2..7b062c2f10 100644 --- a/bits/termios.h +++ b/bits/termios.h @@ -1,5 +1,5 @@ /* termios type and macro definitions. 4.4 BSD/generic GNU version. - Copyright (C) 1993-2019 Free Software Foundation, Inc. + Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _TERMIOS_H # error "Never include directly; use instead." diff --git a/bits/time.h b/bits/time.h index 34a598659b..3473b7e653 100644 --- a/bits/time.h +++ b/bits/time.h @@ -1,5 +1,5 @@ /* System-dependent timing definitions. Generic version. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* * Never include this file directly; use instead. diff --git a/bits/time64.h b/bits/time64.h index c0f8a24d8a..42f21fc86e 100644 --- a/bits/time64.h +++ b/bits/time64.h @@ -1,5 +1,5 @@ /* bits/time64.h -- underlying types for __time64_t. Generic version. - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _BITS_TYPES_H # error "Never include directly; use instead." diff --git a/bits/timesize.h b/bits/timesize.h index 242334e4d8..71bf755069 100644 --- a/bits/timesize.h +++ b/bits/timesize.h @@ -1,5 +1,5 @@ /* Bit size of the time_t type at glibc build time, general case. - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/bits/types/error_t.h b/bits/types/error_t.h index 9c9cfe6c9b..63b452bac2 100644 --- a/bits/types/error_t.h +++ b/bits/types/error_t.h @@ -1,5 +1,5 @@ /* Define error_t. - Copyright (C) 1991-2019 Free Software Foundation, Inc. + Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef __error_t_defined # define __error_t_defined 1 diff --git a/bits/types/stack_t.h b/bits/types/stack_t.h index c9df26c931..a5aac932bb 100644 --- a/bits/types/stack_t.h +++ b/bits/types/stack_t.h @@ -1,5 +1,5 @@ /* Define stack_t. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef __stack_t_defined #define __stack_t_defined 1 diff --git a/bits/types/struct_sched_param.h b/bits/types/struct_sched_param.h index 8bf92c0fb0..db228a8d0a 100644 --- a/bits/types/struct_sched_param.h +++ b/bits/types/struct_sched_param.h @@ -1,5 +1,5 @@ /* Sched parameter structure. Generic version. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _BITS_TYPES_STRUCT_SCHED_PARAM #define _BITS_TYPES_STRUCT_SCHED_PARAM 1 diff --git a/bits/typesizes.h b/bits/typesizes.h index 41c8924336..014c9aab21 100644 --- a/bits/typesizes.h +++ b/bits/typesizes.h @@ -1,5 +1,5 @@ /* bits/typesizes.h -- underlying types for *_t. Generic version. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _BITS_TYPES_H # error "Never include directly; use instead." @@ -72,8 +72,13 @@ /* And for rlim_t and rlim64_t. */ # define __RLIM_T_MATCHES_RLIM64_T 1 + +/* And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. */ +# define __STATFS_MATCHES_STATFS64 1 #else # define __RLIM_T_MATCHES_RLIM64_T 0 + +# define __STATFS_MATCHES_STATFS64 0 #endif /* Number of descriptors that can fit in an `fd_set'. */ diff --git a/bits/uintn-identity.h b/bits/uintn-identity.h index 23824f9f77..f2fc48b63d 100644 --- a/bits/uintn-identity.h +++ b/bits/uintn-identity.h @@ -1,5 +1,5 @@ /* Inline functions to return unsigned integer values unchanged. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #if !defined _NETINET_IN_H && !defined _ENDIAN_H # error "Never use directly; include or instead." diff --git a/bits/uio-ext.h b/bits/uio-ext.h index 1ca81a17f7..1116c6682e 100644 --- a/bits/uio-ext.h +++ b/bits/uio-ext.h @@ -1,5 +1,5 @@ /* Operating system-specific extensions to sys/uio.h - generic version. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _BITS_UIO_EXT_H #define _BITS_UIO_EXT_H 1 diff --git a/bits/uio_lim.h b/bits/uio_lim.h index ca1d3332b4..4b540c05b6 100644 --- a/bits/uio_lim.h +++ b/bits/uio_lim.h @@ -1,5 +1,5 @@ /* Implementation limits related to sys/uio.h - generic version. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _BITS_UIO_LIM_H #define _BITS_UIO_LIM_H 1 diff --git a/bits/unistd_ext.h b/bits/unistd_ext.h index d6e88f3bd4..c8e10dff3f 100644 --- a/bits/unistd_ext.h +++ b/bits/unistd_ext.h @@ -1,5 +1,5 @@ /* System-specific extensions of , generic version. - Copyright (C) 2019 Free Software Foundation, Inc. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _UNISTD_H # error "Never include directly; use instead." diff --git a/bits/utmp.h b/bits/utmp.h index 4c36ca19ce..b82d14536f 100644 --- a/bits/utmp.h +++ b/bits/utmp.h @@ -1,5 +1,5 @@ -/* The `struct utmp' type, describing entries in the utmp file. Generic/BSDish - Copyright (C) 1993-2019 Free Software Foundation, Inc. +/* The `struct utmp' type, describing entries in the utmp file. + Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,36 +14,114 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _UTMP_H # error "Never include directly; use instead." #endif #include -#include +#include +#include +#include -#define UT_NAMESIZE 8 -#define UT_LINESIZE 8 -#define UT_HOSTSIZE 16 +#define UT_LINESIZE 32 +#define UT_NAMESIZE 32 +#define UT_HOSTSIZE 256 +/* The structure describing an entry in the database of + previous logins. */ struct lastlog { - time_t ll_time; +#if __WORDSIZE_TIME64_COMPAT32 + int32_t ll_time; +#else + __time_t ll_time; +#endif char ll_line[UT_LINESIZE]; char ll_host[UT_HOSTSIZE]; }; -struct utmp + +/* The structure describing the status of a terminated process. This + type is used in `struct utmp' below. */ +struct exit_status { - char ut_line[UT_LINESIZE]; - char ut_user[UT_NAMESIZE]; -#define ut_name ut_user - char ut_host[UT_HOSTSIZE]; - long int ut_time; + short int e_termination; /* Process termination status. */ + short int e_exit; /* Process exit status. */ }; -#define _HAVE_UT_HOST 1 /* We have the ut_host field. */ +/* The structure describing an entry in the user accounting database. */ +struct utmp +{ + short int ut_type; /* Type of login. */ + pid_t ut_pid; /* Process ID of login process. */ + char ut_line[UT_LINESIZE] + __attribute_nonstring__; /* Devicename. */ + char ut_id[4] + __attribute_nonstring__; /* Inittab ID. */ + char ut_user[UT_NAMESIZE] + __attribute_nonstring__; /* Username. */ + char ut_host[UT_HOSTSIZE] + __attribute_nonstring__; /* Hostname for remote login. */ + struct exit_status ut_exit; /* Exit status of a process marked + as DEAD_PROCESS. */ +/* The ut_session and ut_tv fields must be the same size when compiled + 32- and 64-bit. This allows data files and shared memory to be + shared between 32- and 64-bit applications. */ +#if __WORDSIZE_TIME64_COMPAT32 + int32_t ut_session; /* Session ID, used for windowing. */ + struct + { + int32_t tv_sec; /* Seconds. */ + int32_t tv_usec; /* Microseconds. */ + } ut_tv; /* Time entry was made. */ +#else + long int ut_session; /* Session ID, used for windowing. */ + struct timeval ut_tv; /* Time entry was made. */ +#endif + + int32_t ut_addr_v6[4]; /* Internet address of remote host. */ + char __glibc_reserved[20]; /* Reserved for future use. */ +}; + +/* Backwards compatibility hacks. */ +#define ut_name ut_user +#ifndef _NO_UT_TIME +/* We have a problem here: `ut_time' is also used otherwise. Define + _NO_UT_TIME if the compiler complains. */ +# define ut_time ut_tv.tv_sec +#endif +#define ut_xtime ut_tv.tv_sec +#define ut_addr ut_addr_v6[0] + + +/* Values for the `ut_type' field of a `struct utmp'. */ +#define EMPTY 0 /* No valid user accounting information. */ + +#define RUN_LVL 1 /* The system's runlevel. */ +#define BOOT_TIME 2 /* Time of system boot. */ +#define NEW_TIME 3 /* Time after system clock changed. */ +#define OLD_TIME 4 /* Time when system clock changed. */ + +#define INIT_PROCESS 5 /* Process spawned by the init process. */ +#define LOGIN_PROCESS 6 /* Session leader of a logged in user. */ +#define USER_PROCESS 7 /* Normal process. */ +#define DEAD_PROCESS 8 /* Terminated process. */ + +#define ACCOUNTING 9 + +/* Old Linux name for the EMPTY type. */ +#define UT_UNKNOWN EMPTY + + +/* Tell the user that we have a modern system with UT_HOST, UT_PID, + UT_TYPE, UT_ID and UT_TV fields. */ +#define _HAVE_UT_TYPE 1 +#define _HAVE_UT_PID 1 +#define _HAVE_UT_ID 1 +#define _HAVE_UT_TV 1 +#define _HAVE_UT_HOST 1 diff --git a/bits/utsname.h b/bits/utsname.h index ddd76483b1..fdcce846b3 100644 --- a/bits/utsname.h +++ b/bits/utsname.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2019 Free Software Foundation, Inc. +/* Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _SYS_UTSNAME_H # error "Never include directly; use instead." diff --git a/bits/waitflags.h b/bits/waitflags.h index 45d8fb0164..a2f9646b22 100644 --- a/bits/waitflags.h +++ b/bits/waitflags.h @@ -1,5 +1,5 @@ /* Definitions of flag bits for `waitpid' et al. - Copyright (C) 1992-2019 Free Software Foundation, Inc. + Copyright (C) 1992-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #if !defined _SYS_WAIT_H && !defined _STDLIB_H # error "Never include directly; use instead." diff --git a/bits/waitstatus.h b/bits/waitstatus.h index 9d08786c04..66d88a0be6 100644 --- a/bits/waitstatus.h +++ b/bits/waitstatus.h @@ -1,5 +1,5 @@ /* Definitions of status bits for `wait' et al. - Copyright (C) 1992-2019 Free Software Foundation, Inc. + Copyright (C) 1992-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #if !defined _SYS_WAIT_H && !defined _STDLIB_H # error "Never include directly; use instead." diff --git a/bits/wchar.h b/bits/wchar.h index f21912d2a7..c00c5014d6 100644 --- a/bits/wchar.h +++ b/bits/wchar.h @@ -1,5 +1,5 @@ /* wchar_t type related definitions. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _BITS_WCHAR_H #define _BITS_WCHAR_H 1 diff --git a/catgets/Makefile b/catgets/Makefile index c3fbf99a58..24cbdedbae 100644 --- a/catgets/Makefile +++ b/catgets/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1996-2019 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # # Makefile for catgets. diff --git a/catgets/catgets.c b/catgets/catgets.c index 9d71cdad1c..d4c427139d 100644 --- a/catgets/catgets.c +++ b/catgets/catgets.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2019 Free Software Foundation, Inc. +/* Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper, . @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/catgets/catgetsinfo.h b/catgets/catgetsinfo.h index 29eb1d8a27..7d9aa94e78 100644 --- a/catgets/catgetsinfo.h +++ b/catgets/catgetsinfo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2019 Free Software Foundation, Inc. +/* Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper, . @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/catgets/gencat.c b/catgets/gencat.c index f0d47ae057..f8bc7adbae 100644 --- a/catgets/gencat.c +++ b/catgets/gencat.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2019 Free Software Foundation, Inc. +/* Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -13,7 +13,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, see . */ + along with this program; if not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" @@ -246,7 +246,7 @@ print_version (FILE *stream, struct argp_state *state) Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\ -"), "2019"); +"), "2020"); fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper"); } diff --git a/catgets/nl_types.h b/catgets/nl_types.h index f6abf755f8..8facbda138 100644 --- a/catgets/nl_types.h +++ b/catgets/nl_types.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2019 Free Software Foundation, Inc. +/* Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _NL_TYPES_H #define _NL_TYPES_H 1 diff --git a/catgets/open_catalog.c b/catgets/open_catalog.c index 9aa6a09fd7..6b14963d78 100644 --- a/catgets/open_catalog.c +++ b/catgets/open_catalog.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2019 Free Software Foundation, Inc. +/* Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper, . @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/catgets/test-gencat.sh b/catgets/test-gencat.sh index bea0d739f4..b169468d6b 100755 --- a/catgets/test-gencat.sh +++ b/catgets/test-gencat.sh @@ -1,6 +1,6 @@ #!/bin/sh # Test escape character handling in gencat. -# Copyright (C) 2000-2019 Free Software Foundation, Inc. +# Copyright (C) 2000-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . set -e diff --git a/catgets/xopen-msg.awk b/catgets/xopen-msg.awk index e271dfe849..5eb693d93d 100644 --- a/catgets/xopen-msg.awk +++ b/catgets/xopen-msg.awk @@ -1,5 +1,5 @@ # xopen-msg.awk - Convert Uniforum style .po file to X/Open style .msg file -# Copyright (C) 2012-2019 Free Software Foundation, Inc. +# Copyright (C) 2012-2020 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -12,7 +12,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, see . +# along with this program; if not, see . # # # The first directive in the .msg should be the definition of the diff --git a/config.h.in b/config.h.in index 824dfe8d8c..dea43df438 100644 --- a/config.h.in +++ b/config.h.in @@ -47,9 +47,6 @@ #undef STACK_PROTECTOR_LEVEL #endif -/* Defined on SPARC if GCC emits GOTDATA relocations. */ -#undef HAVE_GCC_GOTDATA - /* Define if the linker supports the -z combreloc option. */ #undef HAVE_Z_COMBRELOC diff --git a/configure b/configure index c773c487b5..b959d2d988 100755 --- a/configure +++ b/configure @@ -582,7 +582,7 @@ PACKAGE_TARNAME='glibc' PACKAGE_VERSION='(see version.h)' PACKAGE_STRING='GNU C Library (see version.h)' PACKAGE_BUGREPORT='https://sourceware.org/bugzilla/' -PACKAGE_URL='http://www.gnu.org/software/glibc/' +PACKAGE_URL='https://www.gnu.org/software/glibc/' ac_unique_file="include/features.h" enable_option_checking=no @@ -1505,7 +1505,7 @@ Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . -GNU C Library home page: . +GNU C Library home page: . General help using GNU software: . _ACEOF ac_status=$? @@ -2165,7 +2165,7 @@ if test "${with_bugurl+set}" = set; then : ;; esac else - BUGURL="http://www.gnu.org/software/libc/bugs.html" + BUGURL="https://www.gnu.org/software/libc/bugs.html" fi @@ -3777,11 +3777,32 @@ else fi +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + +#ifndef __CET__ +#error no CET compiler support +#endif + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + libc_cv_compiler_default_cet=yes +else + libc_cv_compiler_default_cet=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + # Check whether --enable-cet was given. if test "${enable_cet+set}" = set; then : enableval=$enable_cet; enable_cet=$enableval else - enable_cet=no + enable_cet=$libc_cv_compiler_default_cet fi @@ -7473,7 +7494,7 @@ Configuration commands: $config_commands Report bugs to . -GNU C Library home page: . +GNU C Library home page: . General help using GNU software: ." _ACEOF diff --git a/configure.ac b/configure.ac index 598ba6c4ae..49b900c1ed 100644 --- a/configure.ac +++ b/configure.ac @@ -1,12 +1,13 @@ dnl Process this file with autoconf to produce a configure script. dnl Note we do not use AC_PREREQ here! See aclocal.m4 for what we use instead. -AC_INIT([GNU C Library], [(see version.h)], [https://sourceware.org/bugzilla/], [glibc]) +AC_INIT([GNU C Library], [(see version.h)], [https://sourceware.org/bugzilla/], + [glibc], [https://www.gnu.org/software/glibc/]) AC_CONFIG_SRCDIR([include/features.h]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_AUX_DIR([scripts]) ACX_PKGVERSION([GNU libc]) -ACX_BUGURL([http://www.gnu.org/software/libc/bugs.html]) +ACX_BUGURL([https://www.gnu.org/software/libc/bugs.html]) AC_DEFINE_UNQUOTED([PKGVERSION], ["$PKGVERSION"], [Package description]) AC_DEFINE_UNQUOTED([REPORT_BUGS_TO], ["$REPORT_BUGS_TO"], @@ -472,11 +473,18 @@ AC_ARG_ENABLE([mathvec], [build_mathvec=$enableval], [build_mathvec=notset]) +AC_TRY_COMPILE([], [ +#ifndef __CET__ +# error no CET compiler support +#endif], + [libc_cv_compiler_default_cet=yes], + [libc_cv_compiler_default_cet=no]) + AC_ARG_ENABLE([cet], AC_HELP_STRING([--enable-cet], [enable Intel Control-flow Enforcement Technology (CET), x86 only]), [enable_cet=$enableval], - [enable_cet=no]) + [enable_cet=$libc_cv_compiler_default_cet]) # We keep the original values in `$config_*' and never modify them, so we # can write them unchanged into config.make. Everything else uses diff --git a/conform/Makefile b/conform/Makefile index 59d569c4c5..0b5c4cb8ce 100644 --- a/conform/Makefile +++ b/conform/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1999-2019 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # # Sub-makefile for conform portion of the library. diff --git a/conform/check-header-lists.sh b/conform/check-header-lists.sh index ba262c33b5..2019622ecc 100755 --- a/conform/check-header-lists.sh +++ b/conform/check-header-lists.sh @@ -1,6 +1,6 @@ #!/bin/sh # Check the set of headers with conformtest expectations for a given standard. -# Copyright (C) 2014-2019 Free Software Foundation, Inc. +# Copyright (C) 2014-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . set -e diff --git a/conform/conformtest.py b/conform/conformtest.py index 53cca690d1..951e3b2420 100644 --- a/conform/conformtest.py +++ b/conform/conformtest.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 # Check header contents against the given standard. -# Copyright (C) 2018-2019 Free Software Foundation, Inc. +# Copyright (C) 2018-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # # The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ # # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . import argparse import fnmatch diff --git a/conform/data/sys/ipc.h-data b/conform/data/sys/ipc.h-data index 09e8f68f8e..1364b07e87 100644 --- a/conform/data/sys/ipc.h-data +++ b/conform/data/sys/ipc.h-data @@ -6,8 +6,7 @@ xfail[i386-gnu]-element {struct ipc_perm} uid_t uid xfail[i386-gnu]-element {struct ipc_perm} gid_t gid xfail[i386-gnu]-element {struct ipc_perm} uid_t cuid xfail[i386-gnu]-element {struct ipc_perm} gid_t cgid -// Bug 18231: wrong type for mode member. -xfail-element {struct ipc_perm} mode_t mode +xfail[i386-gnu]-element {struct ipc_perm} mode_t mode type uid_t type gid_t diff --git a/conform/glibcconform.py b/conform/glibcconform.py index a00b27dc37..6075745574 100644 --- a/conform/glibcconform.py +++ b/conform/glibcconform.py @@ -1,6 +1,6 @@ #!/usr/bin/python # Shared code for glibc conformance tests. -# Copyright (C) 2018-2019 Free Software Foundation, Inc. +# Copyright (C) 2018-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # # The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ # # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . import os.path import re diff --git a/conform/linknamespace.py b/conform/linknamespace.py index cfadfdd3ad..87cd17b1ce 100644 --- a/conform/linknamespace.py +++ b/conform/linknamespace.py @@ -2,7 +2,7 @@ # Check that use of symbols declared in a given header does not result # in any symbols being brought in that are not reserved with external # linkage for the given standard. -# Copyright (C) 2014-2019 Free Software Foundation, Inc. +# Copyright (C) 2014-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # # The GNU C Library is free software; you can redistribute it and/or @@ -17,7 +17,7 @@ # # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . import argparse from collections import defaultdict diff --git a/conform/list-header-symbols.py b/conform/list-header-symbols.py index 544b553aa3..e43c12ec40 100644 --- a/conform/list-header-symbols.py +++ b/conform/list-header-symbols.py @@ -1,7 +1,7 @@ #!/usr/bin/python # Print a list of symbols exported by some headers that would # otherwise be in the user's namespace. -# Copyright (C) 2018-2019 Free Software Foundation, Inc. +# Copyright (C) 2018-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # # The GNU C Library is free software; you can redistribute it and/or @@ -16,7 +16,7 @@ # # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . import argparse diff --git a/crypt/Makefile b/crypt/Makefile index fd36111617..6311f0c3ff 100644 --- a/crypt/Makefile +++ b/crypt/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1996-2019 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # # Sub-makefile for crypt() portion of the library. diff --git a/crypt/badsalttest.c b/crypt/badsalttest.c index 60b24abbab..110f9fc090 100644 --- a/crypt/badsalttest.c +++ b/crypt/badsalttest.c @@ -1,5 +1,5 @@ /* Test program for bad DES salt detection in crypt. - Copyright (C) 2012-2019 Free Software Foundation, Inc. + Copyright (C) 2012-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/crypt/crypt-entry.c b/crypt/crypt-entry.c index 339090d4d6..502b5846f0 100644 --- a/crypt/crypt-entry.c +++ b/crypt/crypt-entry.c @@ -1,7 +1,7 @@ /* * UFC-crypt: ultra fast crypt(3) implementation * - * Copyright (C) 1991-2019 Free Software Foundation, Inc. + * Copyright (C) 1991-2020 Free Software Foundation, Inc. * * The GNU C Library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -15,7 +15,7 @@ * * You should have received a copy of the GNU Lesser General Public * License along with the GNU C Library; if not, see - * . + * . * * crypt entry points * diff --git a/crypt/crypt-private.h b/crypt/crypt-private.h index ed4aa906e3..cf8275896a 100644 --- a/crypt/crypt-private.h +++ b/crypt/crypt-private.h @@ -1,7 +1,7 @@ /* * UFC-crypt: ultra fast crypt(3) implementation * - * Copyright (C) 1991-2019 Free Software Foundation, Inc. + * Copyright (C) 1991-2020 Free Software Foundation, Inc. * * The GNU C Library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -15,7 +15,7 @@ * * You should have received a copy of the GNU Lesser General Public * License along with the GNU C Library; if not, see - * . + * . * * @(#)crypt-private.h 1.4 12/20/96 */ diff --git a/crypt/crypt.c b/crypt/crypt.c index 43c0ae3b47..1400cd285f 100644 --- a/crypt/crypt.c +++ b/crypt/crypt.c @@ -1,7 +1,7 @@ /* * UFC-crypt: ultra fast crypt(3) implementation * - * Copyright (C) 1991-2019 Free Software Foundation, Inc. + * Copyright (C) 1991-2020 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -15,7 +15,7 @@ * * You should have received a copy of the GNU Lesser General Public * License along with this library; see the file COPYING.LIB. If not, - * see . + * see . * * @(#)crypt.c 2.25 12/20/96 * diff --git a/crypt/crypt.h b/crypt/crypt.h index 65061deb9d..ca8ad456cc 100644 --- a/crypt/crypt.h +++ b/crypt/crypt.h @@ -1,7 +1,7 @@ /* * UFC-crypt: ultra fast crypt(3) implementation * - * Copyright (C) 1991-2019 Free Software Foundation, Inc. + * Copyright (C) 1991-2020 Free Software Foundation, Inc. * * The GNU C Library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -15,7 +15,7 @@ * * You should have received a copy of the GNU Lesser General Public * License along with the GNU C Library; if not, see - * . + * . * * @(#)crypt.h 1.5 12/20/96 * diff --git a/crypt/crypt_util.c b/crypt/crypt_util.c index 8cff87b458..4b2f0a89cb 100644 --- a/crypt/crypt_util.c +++ b/crypt/crypt_util.c @@ -1,7 +1,7 @@ /* * UFC-crypt: ultra fast crypt(3) implementation * - * Copyright (C) 1991-2019 Free Software Foundation, Inc. + * Copyright (C) 1991-2020 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -15,7 +15,7 @@ * * You should have received a copy of the GNU Lesser General Public * License along with this library; see the file COPYING.LIB. If not, - * see . + * see . * * @(#)crypt_util.c 2.56 12/20/96 * diff --git a/crypt/md5-crypt.c b/crypt/md5-crypt.c index ff7d96cdc7..8c715ef410 100644 --- a/crypt/md5-crypt.c +++ b/crypt/md5-crypt.c @@ -1,6 +1,6 @@ /* One way encryption based on MD5 sum. Compatible with the behavior of MD5 crypt introduced in FreeBSD 2.0. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/crypt/md5.c b/crypt/md5.c index ef13ca948e..c74637c50d 100644 --- a/crypt/md5.c +++ b/crypt/md5.c @@ -1,6 +1,6 @@ /* Functions to compute MD5 message digest of files or memory blocks. according to the definition of MD5 in RFC 1321 from April 1992. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Written by Ulrich Drepper , 1995. */ diff --git a/crypt/md5.h b/crypt/md5.h index dd7de528d7..36f2d63ef3 100644 --- a/crypt/md5.h +++ b/crypt/md5.h @@ -1,6 +1,6 @@ /* Declaration of functions and data types used for MD5 sum computing library functions. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _MD5_H #define _MD5_H 1 diff --git a/crypt/md5test-giant.c b/crypt/md5test-giant.c index cf1b6535f8..c892b70aa6 100644 --- a/crypt/md5test-giant.c +++ b/crypt/md5test-giant.c @@ -1,5 +1,5 @@ /* Testcase for https://sourceware.org/bugzilla/show_bug.cgi?id=14090. - Copyright (C) 2012-2019 Free Software Foundation, Inc. + Copyright (C) 2012-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software; you can redistribute it and/or modify @@ -13,7 +13,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, see . */ + along with this program; if not, see . */ #include #include diff --git a/crypt/sha256-crypt.c b/crypt/sha256-crypt.c index c10061dd03..cefef173ea 100644 --- a/crypt/sha256-crypt.c +++ b/crypt/sha256-crypt.c @@ -1,5 +1,5 @@ /* One way encryption based on SHA256 sum. - Copyright (C) 2007-2019 Free Software Foundation, Inc. + Copyright (C) 2007-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2007. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/crypt/sha256.c b/crypt/sha256.c index f90650f083..d60162c049 100644 --- a/crypt/sha256.c +++ b/crypt/sha256.c @@ -1,6 +1,6 @@ /* Functions to compute SHA256 message digest of files or memory blocks. according to the definition of SHA256 in FIPS 180-2. - Copyright (C) 2007-2019 Free Software Foundation, Inc. + Copyright (C) 2007-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Written by Ulrich Drepper , 2007. */ diff --git a/crypt/sha256.h b/crypt/sha256.h index c311e5d3d7..05ccb38b3e 100644 --- a/crypt/sha256.h +++ b/crypt/sha256.h @@ -1,6 +1,6 @@ /* Declaration of functions and data types used for SHA256 sum computing library functions. - Copyright (C) 2007-2019 Free Software Foundation, Inc. + Copyright (C) 2007-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _SHA256_H #define _SHA256_H 1 diff --git a/crypt/sha512-crypt.c b/crypt/sha512-crypt.c index df665cbe21..a1878c4dd4 100644 --- a/crypt/sha512-crypt.c +++ b/crypt/sha512-crypt.c @@ -1,5 +1,5 @@ /* One way encryption based on SHA512 sum. - Copyright (C) 2007-2019 Free Software Foundation, Inc. + Copyright (C) 2007-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2007. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/crypt/sha512.c b/crypt/sha512.c index 94adbd428a..aeced8844f 100644 --- a/crypt/sha512.c +++ b/crypt/sha512.c @@ -1,6 +1,6 @@ /* Functions to compute SHA512 message digest of files or memory blocks. according to the definition of SHA512 in FIPS 180-2. - Copyright (C) 2007-2019 Free Software Foundation, Inc. + Copyright (C) 2007-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Written by Ulrich Drepper , 2007. */ diff --git a/crypt/sha512.h b/crypt/sha512.h index 4b4d89eb4f..edb93804e1 100644 --- a/crypt/sha512.h +++ b/crypt/sha512.h @@ -1,6 +1,6 @@ /* Declaration of functions and data types used for SHA512 sum computing library functions. - Copyright (C) 2007-2019 Free Software Foundation, Inc. + Copyright (C) 2007-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _SHA512_H #define _SHA512_H 1 diff --git a/crypt/ufc-crypt.h b/crypt/ufc-crypt.h index 7b511e949d..ca8a5e7123 100644 --- a/crypt/ufc-crypt.h +++ b/crypt/ufc-crypt.h @@ -1,5 +1,5 @@ /* Types for UFC-crypt. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/crypt/ufc.c b/crypt/ufc.c index bc617c3124..80752a92e1 100644 --- a/crypt/ufc.c +++ b/crypt/ufc.c @@ -1,7 +1,7 @@ /* * UFC-crypt: ultra fast crypt(3) implementation * - * Copyright (C) 1991-2019 Free Software Foundation, Inc. + * Copyright (C) 1991-2020 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -15,7 +15,7 @@ * * You should have received a copy of the GNU Lesser General Public * License along with the GNU C Library; see the file COPYING.LIB. If not, - * see . + * see . * * @(#)ufc.c 2.7 9/10/96 * diff --git a/csu/Makefile b/csu/Makefile index 73844b912f..555ae27dea 100644 --- a/csu/Makefile +++ b/csu/Makefile @@ -1,5 +1,5 @@ # Makefile for csu code for GNU C library. -# Copyright (C) 1995-2019 Free Software Foundation, Inc. +# Copyright (C) 1995-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # This directory contains the C startup code (that which calls main). This # consists of the startfile, built from start.c and installed as crt0.o diff --git a/csu/abi-note.S b/csu/abi-note.S index fa1f014a88..2b4b5f8824 100644 --- a/csu/abi-note.S +++ b/csu/abi-note.S @@ -1,5 +1,5 @@ /* Special .init and .fini section support. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -23,7 +23,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Define an ELF note identifying the operating-system ABI that the executable was created for. The ELF note information identifies a diff --git a/csu/check_fds.c b/csu/check_fds.c index fceba96b1f..30634b81a7 100644 --- a/csu/check_fds.c +++ b/csu/check_fds.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2019 Free Software Foundation, Inc. +/* Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/csu/dso_handle.c b/csu/dso_handle.c index 05960bca03..c910af4e53 100644 --- a/csu/dso_handle.c +++ b/csu/dso_handle.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2019 Free Software Foundation, Inc. +/* Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* We have to define __dso_handle ourselves since we do not use gcc's crtbegin files. */ diff --git a/csu/elf-init.c b/csu/elf-init.c index 9d192dfca0..b713c8b0fb 100644 --- a/csu/elf-init.c +++ b/csu/elf-init.c @@ -1,5 +1,5 @@ /* Startup support for ELF initializers/finalizers in the main executable. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -31,7 +31,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/csu/errno-loc.c b/csu/errno-loc.c index 76d30846d5..cf59c2bae1 100644 --- a/csu/errno-loc.c +++ b/csu/errno-loc.c @@ -1,6 +1,6 @@ /* MT support function to get address of `errno' variable, non-threaded version. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/csu/errno.c b/csu/errno.c index 89666c662f..5511279a7c 100644 --- a/csu/errno.c +++ b/csu/errno.c @@ -1,5 +1,5 @@ /* Definition of `errno' variable. Canonical version. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/csu/gmon-start.c b/csu/gmon-start.c index 347efed449..2803be342a 100644 --- a/csu/gmon-start.c +++ b/csu/gmon-start.c @@ -1,5 +1,5 @@ /* Code to enable profiling at program startup. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -31,7 +31,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/csu/init-first.c b/csu/init-first.c index 10762b61f5..1cd8a75098 100644 --- a/csu/init-first.c +++ b/csu/init-first.c @@ -1,5 +1,5 @@ /* Initialization code run first thing by the ELF startup code. Common version - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -74,10 +74,6 @@ _init (int argc, char **argv, char **envp) _dl_non_dynamic_init (); #endif -#ifdef VDSO_SETUP - VDSO_SETUP (); -#endif - __init_misc (argc, argv, envp); /* Initialize ctype data. */ diff --git a/csu/init.c b/csu/init.c index c7a6da07d0..db7598778a 100644 --- a/csu/init.c +++ b/csu/init.c @@ -1,5 +1,5 @@ /* Special startup support. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Vestigial libio version number. Some code in libio checks whether this symbol exists in the executable, but nothing looks at its diff --git a/csu/libc-start.c b/csu/libc-start.c index 5d9c3675fa..12468c5a89 100644 --- a/csu/libc-start.c +++ b/csu/libc-start.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998-2019 Free Software Foundation, Inc. +/* Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -272,7 +272,7 @@ LIBC_START_MAIN (int (*main) (int, char **, char ** MAIN_AUXVEC_DECL), for (unsigned int cnt = 0; cnt < GLRO(dl_naudit); ++cnt) { if (afct->preinit != NULL) - afct->preinit (&head->l_audit[cnt].cookie); + afct->preinit (&link_map_audit_state (head, cnt)->cookie); afct = afct->next; } diff --git a/csu/libc-tls.c b/csu/libc-tls.c index a36d1d49ac..73ade0fec5 100644 --- a/csu/libc-tls.c +++ b/csu/libc-tls.c @@ -1,5 +1,5 @@ /* Initialization code for TLS in statically linked application. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -23,7 +23,7 @@ #include #include #include - +#include #ifdef SHARED #error makefile bug, this file is for static only @@ -32,17 +32,11 @@ dtv_t _dl_static_dtv[2 + TLS_SLOTINFO_SURPLUS]; -static struct -{ - struct dtv_slotinfo_list si; - /* The dtv_slotinfo_list data structure does not include the actual - information since it is defined as an array of size zero. We define - here the necessary entries. Note that it is not important whether - there is padding or not since we will always access the information - through the 'si' element. */ - struct dtv_slotinfo info[2 + TLS_SLOTINFO_SURPLUS]; -} static_slotinfo; - +static struct dtv_slotinfo_list static_slotinfo = + { + /* Allocate an array of 2 + TLS_SLOTINFO_SURPLUS elements. */ + .slotinfo = { [array_length (_dl_static_dtv) - 1] = { 0 } }, + }; /* Highest dtv index currently needed. */ size_t _dl_tls_max_dtv_idx; @@ -72,16 +66,16 @@ TLS_INIT_HELPER static void init_slotinfo (void) { - /* Create the slotinfo list. */ - static_slotinfo.si.len = (((char *) (&static_slotinfo + 1) - - (char *) &static_slotinfo.si.slotinfo[0]) - / sizeof static_slotinfo.si.slotinfo[0]); - // static_slotinfo.si.next = NULL; already zero + /* Create the slotinfo list. Note that the type of static_slotinfo + has effectively a zero-length array, so we cannot use the size of + static_slotinfo to determine the array length. */ + static_slotinfo.len = array_length (_dl_static_dtv); + /* static_slotinfo.next = NULL; -- Already zero. */ /* The slotinfo list. Will be extended by the code doing dynamic linking. */ GL(dl_tls_max_dtv_idx) = 1; - GL(dl_tls_dtv_slotinfo_list) = &static_slotinfo.si; + GL(dl_tls_dtv_slotinfo_list) = &static_slotinfo; } static void @@ -205,8 +199,8 @@ __libc_setup_tls (void) main_map->l_tls_modid = 1; init_slotinfo (); - // static_slotinfo.si.slotinfo[1].gen = 0; already zero - static_slotinfo.si.slotinfo[1].map = main_map; + /* static_slotinfo.slotinfo[1].gen = 0; -- Already zero. */ + static_slotinfo.slotinfo[1].map = main_map; memsz = roundup (memsz, align ?: 1); diff --git a/csu/static-reloc.c b/csu/static-reloc.c index 38bbb0ff6a..b41a940142 100644 --- a/csu/static-reloc.c +++ b/csu/static-reloc.c @@ -1,5 +1,5 @@ /* Special startup support for non-PIE static executables. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #if ENABLE_STATIC_PIE #include diff --git a/csu/version.c b/csu/version.c index 5d2ae15510..57b49dfd8a 100644 --- a/csu/version.c +++ b/csu/version.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2019 Free Software Foundation, Inc. +/* Copyright (C) 1992-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include "version.h" #include @@ -25,7 +25,7 @@ static const char __libc_version[] = VERSION; static const char banner[] = "GNU C Library "PKGVERSION RELEASE" release version "VERSION".\n\ -Copyright (C) 2019 Free Software Foundation, Inc.\n\ +Copyright (C) 2020 Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions.\n\ There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\ PARTICULAR PURPOSE.\n\ diff --git a/ctype/Makefile b/ctype/Makefile index a4e216957a..daaa908329 100644 --- a/ctype/Makefile +++ b/ctype/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991-2019 Free Software Foundation, Inc. +# Copyright (C) 1991-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # # Sub-makefile for ctype portion of the library. diff --git a/ctype/ctype-c99.c b/ctype/ctype-c99.c index cab944609b..970d60719b 100644 --- a/ctype/ctype-c99.c +++ b/ctype/ctype-c99.c @@ -1,5 +1,5 @@ /* External function version of isblank. - Copyright (C) 1991-2019 Free Software Foundation, Inc. + Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define __NO_CTYPE #include diff --git a/ctype/ctype-c99_l.c b/ctype/ctype-c99_l.c index be3521bf12..8352f36434 100644 --- a/ctype/ctype-c99_l.c +++ b/ctype/ctype-c99_l.c @@ -1,5 +1,5 @@ /* External function version of isblank_l. - Copyright (C) 1991-2019 Free Software Foundation, Inc. + Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define __NO_CTYPE #include diff --git a/ctype/ctype-extn.c b/ctype/ctype-extn.c index db617b0ac0..76691ec86d 100644 --- a/ctype/ctype-extn.c +++ b/ctype/ctype-extn.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define __NO_CTYPE #include diff --git a/ctype/ctype-info.c b/ctype/ctype-info.c index 4083c7d2a6..15ee600a1a 100644 --- a/ctype/ctype-info.c +++ b/ctype/ctype-info.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define CTYPE_EXTERN_INLINE /* Define real functions for accessors. */ #include diff --git a/ctype/ctype.c b/ctype/ctype.c index 332b1312d2..e0f149ff96 100644 --- a/ctype/ctype.c +++ b/ctype/ctype.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define __NO_CTYPE #include diff --git a/ctype/ctype.h b/ctype/ctype.h index 78a455e227..351495aa4f 100644 --- a/ctype/ctype.h +++ b/ctype/ctype.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* * ISO C99 Standard 7.4: Character handling @@ -36,7 +36,7 @@ __BEGIN_DECLS endian). We define the bit value interpretations here dependent on the machine's byte order. */ -# include +# include # if __BYTE_ORDER == __BIG_ENDIAN # define _ISbit(bit) (1 << (bit)) # else /* __BYTE_ORDER == __LITTLE_ENDIAN */ diff --git a/ctype/ctype_l.c b/ctype/ctype_l.c index d785ac0b89..79aaf8cb67 100644 --- a/ctype/ctype_l.c +++ b/ctype/ctype_l.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define __NO_CTYPE #include diff --git a/ctype/isctype.c b/ctype/isctype.c index abae15d864..bc40b512a5 100644 --- a/ctype/isctype.c +++ b/ctype/isctype.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2019 Free Software Foundation, Inc. +/* Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/ctype/test_ctype.c b/ctype/test_ctype.c index e1edee6df5..9b8227e5c1 100644 --- a/ctype/test_ctype.c +++ b/ctype/test_ctype.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/Makefile b/debug/Makefile index 6351b7e9f4..c62b2154bc 100644 --- a/debug/Makefile +++ b/debug/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1998-2019 Free Software Foundation, Inc. +# Copyright (C) 1998-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # # Sub-makefile for debug portion of the library. diff --git a/debug/asprintf_chk.c b/debug/asprintf_chk.c index edd730bfa3..adb7c946c7 100644 --- a/debug/asprintf_chk.c +++ b/debug/asprintf_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/backtrace.c b/debug/backtrace.c index 87aaa4991f..cc4b9a5c90 100644 --- a/debug/backtrace.c +++ b/debug/backtrace.c @@ -1,5 +1,5 @@ /* Return backtrace of current program state. - Copyright (C) 2003-2019 Free Software Foundation, Inc. + Copyright (C) 2003-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek , 2003. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/backtracesyms.c b/debug/backtracesyms.c index 1fe7120beb..d249927e8c 100644 --- a/debug/backtracesyms.c +++ b/debug/backtracesyms.c @@ -1,5 +1,5 @@ /* Return list with names for address in backtrace. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/backtracesymsfd.c b/debug/backtracesymsfd.c index 5751d62f85..48773c896a 100644 --- a/debug/backtracesymsfd.c +++ b/debug/backtracesymsfd.c @@ -1,5 +1,5 @@ /* Write formatted list with names for addresses in backtrace to a file. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/catchsegv.sh b/debug/catchsegv.sh index 245c100f56..dcf5948400 100755 --- a/debug/catchsegv.sh +++ b/debug/catchsegv.sh @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (C) 1998-2019 Free Software Foundation, Inc. +# Copyright (C) 1998-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . if test $# -eq 0; then echo "$0: missing program name" >&2 @@ -40,7 +40,7 @@ EOF ;; --v | --ve | --ver | --vers | --versi | --versio | --version) echo 'catchsegv @PKGVERSION@@VERSION@' - echo 'Copyright (C) 2019 Free Software Foundation, Inc. + echo 'Copyright (C) 2020 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Ulrich Drepper.' diff --git a/debug/chk_fail.c b/debug/chk_fail.c index 3dad8838e4..20f084d653 100644 --- a/debug/chk_fail.c +++ b/debug/chk_fail.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2019 Free Software Foundation, Inc. +/* Copyright (C) 2004-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/confstr_chk.c b/debug/confstr_chk.c index b4230600db..f81e237797 100644 --- a/debug/confstr_chk.c +++ b/debug/confstr_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 20055. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/dprintf_chk.c b/debug/dprintf_chk.c index bf4bc048ef..fb543d0bd8 100644 --- a/debug/dprintf_chk.c +++ b/debug/dprintf_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/execinfo.h b/debug/execinfo.h index 0c361451b4..d44555a82a 100644 --- a/debug/execinfo.h +++ b/debug/execinfo.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1998-2019 Free Software Foundation, Inc. +/* Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _EXECINFO_H #define _EXECINFO_H 1 diff --git a/debug/explicit_bzero_chk.c b/debug/explicit_bzero_chk.c index 2470f8801b..7e524dedb1 100644 --- a/debug/explicit_bzero_chk.c +++ b/debug/explicit_bzero_chk.c @@ -1,5 +1,5 @@ /* Generic implementation of __explicit_bzero_chk. - Copyright (C) 1991-2019 Free Software Foundation, Inc. + Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Torbjorn Granlund (tege@sics.se). @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This is the generic definition of __explicit_bzero_chk. The __explicit_bzero_chk symbol is used as the implementation of diff --git a/debug/fdelt_chk.c b/debug/fdelt_chk.c index c71ae38e2b..f62ce73497 100644 --- a/debug/fdelt_chk.c +++ b/debug/fdelt_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2019 Free Software Foundation, Inc. +/* Copyright (C) 2011-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/fgets_chk.c b/debug/fgets_chk.c index 548bbb6fb2..34a3aaf872 100644 --- a/debug/fgets_chk.c +++ b/debug/fgets_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2019 Free Software Foundation, Inc. +/* Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . + . As a special exception, if you link the code in this file with files compiled with a GNU compiler to produce an executable, diff --git a/debug/fgets_u_chk.c b/debug/fgets_u_chk.c index a0425fc5c9..bae1aaa238 100644 --- a/debug/fgets_u_chk.c +++ b/debug/fgets_u_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2019 Free Software Foundation, Inc. +/* Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . + . As a special exception, if you link the code in this file with files compiled with a GNU compiler to produce an executable, diff --git a/debug/fgetws_chk.c b/debug/fgetws_chk.c index fe934556ee..d0bbddbce7 100644 --- a/debug/fgetws_chk.c +++ b/debug/fgetws_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2019 Free Software Foundation, Inc. +/* Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include "libioP.h" #include diff --git a/debug/fgetws_u_chk.c b/debug/fgetws_u_chk.c index e3d6e1a9e1..4360aa9672 100644 --- a/debug/fgetws_u_chk.c +++ b/debug/fgetws_u_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2019 Free Software Foundation, Inc. +/* Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . + . As a special exception, if you link the code in this file with files compiled with a GNU compiler to produce an executable, diff --git a/debug/fortify_fail.c b/debug/fortify_fail.c index 16549d6dbc..1f2fdc5c1a 100644 --- a/debug/fortify_fail.c +++ b/debug/fortify_fail.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2019 Free Software Foundation, Inc. +/* Copyright (C) 2007-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,36 +13,16 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include -#include -#include - - -extern char **__libc_argv attribute_hidden; - -void -__attribute__ ((noreturn)) -__fortify_fail_abort (_Bool need_backtrace, const char *msg) -{ - /* The loop is added only to keep gcc happy. Don't pass down - __libc_argv[0] if we aren't doing backtrace since __libc_argv[0] - may point to the corrupted stack. */ - while (1) - __libc_message (need_backtrace ? (do_abort | do_backtrace) : do_abort, - "*** %s ***: %s terminated\n", - msg, - (need_backtrace && __libc_argv[0] != NULL - ? __libc_argv[0] : "")); -} void __attribute__ ((noreturn)) __fortify_fail (const char *msg) { - __fortify_fail_abort (true, msg); + /* The loop is added only to keep gcc happy. */ + while (1) + __libc_message (do_abort, "*** %s ***: terminated\n", msg); } - libc_hidden_def (__fortify_fail) -libc_hidden_def (__fortify_fail_abort) diff --git a/debug/fprintf_chk.c b/debug/fprintf_chk.c index 105ed93846..29b8ad4783 100644 --- a/debug/fprintf_chk.c +++ b/debug/fprintf_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/fread_chk.c b/debug/fread_chk.c index 33cd4b3dda..944b68420c 100644 --- a/debug/fread_chk.c +++ b/debug/fread_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2019 Free Software Foundation, Inc. +/* Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . + . As a special exception, if you link the code in this file with files compiled with a GNU compiler to produce an executable, diff --git a/debug/fread_u_chk.c b/debug/fread_u_chk.c index b2a0017b6d..49504ac26e 100644 --- a/debug/fread_u_chk.c +++ b/debug/fread_u_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2019 Free Software Foundation, Inc. +/* Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . + . As a special exception, if you link the code in this file with files compiled with a GNU compiler to produce an executable, diff --git a/debug/fwprintf_chk.c b/debug/fwprintf_chk.c index 170208c63b..e21efdf5a6 100644 --- a/debug/fwprintf_chk.c +++ b/debug/fwprintf_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/getcwd_chk.c b/debug/getcwd_chk.c index 2fa8226a85..7f571fd916 100644 --- a/debug/getcwd_chk.c +++ b/debug/getcwd_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/getdomainname_chk.c b/debug/getdomainname_chk.c index 169d318baa..7d5dc9ab65 100644 --- a/debug/getdomainname_chk.c +++ b/debug/getdomainname_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/getgroups_chk.c b/debug/getgroups_chk.c index 8729516e20..227b3b9f05 100644 --- a/debug/getgroups_chk.c +++ b/debug/getgroups_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/gethostname_chk.c b/debug/gethostname_chk.c index 1dfe05d4af..8c3e68970f 100644 --- a/debug/gethostname_chk.c +++ b/debug/gethostname_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/gets_chk.c b/debug/gets_chk.c index fc6557a7f7..bf19b61f80 100644 --- a/debug/gets_chk.c +++ b/debug/gets_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2019 Free Software Foundation, Inc. +/* Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . + . As a special exception, if you link the code in this file with files compiled with a GNU compiler to produce an executable, diff --git a/debug/getwd_chk.c b/debug/getwd_chk.c index e2bd4c8bf4..d14a1acea3 100644 --- a/debug/getwd_chk.c +++ b/debug/getwd_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/longjmp_chk.c b/debug/longjmp_chk.c index 294ee66980..e1ce4545d2 100644 --- a/debug/longjmp_chk.c +++ b/debug/longjmp_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2019 Free Software Foundation, Inc. +/* Copyright (C) 2009-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/mbsnrtowcs_chk.c b/debug/mbsnrtowcs_chk.c index ffc36a2536..e06a4d1f88 100644 --- a/debug/mbsnrtowcs_chk.c +++ b/debug/mbsnrtowcs_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/mbsrtowcs_chk.c b/debug/mbsrtowcs_chk.c index 352fbc6a92..293f187257 100644 --- a/debug/mbsrtowcs_chk.c +++ b/debug/mbsrtowcs_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/mbstowcs_chk.c b/debug/mbstowcs_chk.c index 791764a045..925790f9be 100644 --- a/debug/mbstowcs_chk.c +++ b/debug/mbstowcs_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/memcpy_chk.c b/debug/memcpy_chk.c index 24f3ff17d2..88f633b132 100644 --- a/debug/memcpy_chk.c +++ b/debug/memcpy_chk.c @@ -1,6 +1,6 @@ /* Copy memory to memory until the specified number of bytes has been copied with error checking. Overlap is NOT handled correctly. - Copyright (C) 1991-2019 Free Software Foundation, Inc. + Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Torbjorn Granlund (tege@sics.se). @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/memmove_chk.c b/debug/memmove_chk.c index fb9c40e5b4..4d0e72f745 100644 --- a/debug/memmove_chk.c +++ b/debug/memmove_chk.c @@ -1,6 +1,6 @@ /* Copy memory to memory until the specified number of bytes has been copied with error checking. Overlap is handled correctly. - Copyright (C) 1991-2019 Free Software Foundation, Inc. + Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Torbjorn Granlund (tege@sics.se). @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/mempcpy_chk.c b/debug/mempcpy_chk.c index 759d2a14ad..16fa68e62a 100644 --- a/debug/mempcpy_chk.c +++ b/debug/mempcpy_chk.c @@ -1,7 +1,7 @@ /* Copy memory to memory until the specified number of bytes has been copied, return pointer to following byte, with error checking. Overlap is NOT handled correctly. - Copyright (C) 1991-2019 Free Software Foundation, Inc. + Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Torbjorn Granlund (tege@sics.se). @@ -17,7 +17,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/memset_chk.c b/debug/memset_chk.c index ac895f9434..4f7978bbb5 100644 --- a/debug/memset_chk.c +++ b/debug/memset_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/noophooks.c b/debug/noophooks.c index 9b36eb2149..31e3144d8b 100644 --- a/debug/noophooks.c +++ b/debug/noophooks.c @@ -1,5 +1,5 @@ /* Noop hooks for the instrumenting functions. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1999. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/obprintf_chk.c b/debug/obprintf_chk.c index bb996ce2fe..c186c10a32 100644 --- a/debug/obprintf_chk.c +++ b/debug/obprintf_chk.c @@ -1,5 +1,5 @@ /* Print output of stream to given obstack. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/pcprofile.c b/debug/pcprofile.c index 04a66e7b46..4a34d0c7e8 100644 --- a/debug/pcprofile.c +++ b/debug/pcprofile.c @@ -1,5 +1,5 @@ /* Profile PC and write result to FIFO. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1999. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/pcprofiledump.c b/debug/pcprofiledump.c index 2270c53b9a..0c9c6c1331 100644 --- a/debug/pcprofiledump.c +++ b/debug/pcprofiledump.c @@ -1,5 +1,5 @@ /* Dump information generated by PC profiling. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1999. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This is mainly an example. It shows how programs which want to use the information should read the file. */ @@ -226,6 +226,6 @@ print_version (FILE *stream, struct argp_state *state) Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\ -"), "2019"); +"), "2020"); fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper"); } diff --git a/debug/poll_chk.c b/debug/poll_chk.c index 34596de977..8f7ca5e3bd 100644 --- a/debug/poll_chk.c +++ b/debug/poll_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2019 Free Software Foundation, Inc. +/* Copyright (C) 2012-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/ppoll_chk.c b/debug/ppoll_chk.c index 68d0f1b079..4b634125ef 100644 --- a/debug/ppoll_chk.c +++ b/debug/ppoll_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2019 Free Software Foundation, Inc. +/* Copyright (C) 2012-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/pread64_chk.c b/debug/pread64_chk.c index 2fa35d64d2..0a1adc6da1 100644 --- a/debug/pread64_chk.c +++ b/debug/pread64_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/pread_chk.c b/debug/pread_chk.c index 79aa213786..0b5c88f2a8 100644 --- a/debug/pread_chk.c +++ b/debug/pread_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/printf_chk.c b/debug/printf_chk.c index 184f4d9f21..e8155e632e 100644 --- a/debug/printf_chk.c +++ b/debug/printf_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/read_chk.c b/debug/read_chk.c index 4869a4bacf..abecb0ef23 100644 --- a/debug/read_chk.c +++ b/debug/read_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/readlink_chk.c b/debug/readlink_chk.c index ac2e10650c..853b142b2a 100644 --- a/debug/readlink_chk.c +++ b/debug/readlink_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/readlinkat_chk.c b/debug/readlinkat_chk.c index 97a4534611..41240bea9a 100644 --- a/debug/readlinkat_chk.c +++ b/debug/readlinkat_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2019 Free Software Foundation, Inc. +/* Copyright (C) 2006-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/readonly-area.c b/debug/readonly-area.c index 58f25d7715..09e635d5ca 100644 --- a/debug/readonly-area.c +++ b/debug/readonly-area.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2019 Free Software Foundation, Inc. +/* Copyright (C) 2004-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/realpath_chk.c b/debug/realpath_chk.c index 2f2e5844c3..5571f4de17 100644 --- a/debug/realpath_chk.c +++ b/debug/realpath_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/recv_chk.c b/debug/recv_chk.c index b6b5b4524d..fe0c28b860 100644 --- a/debug/recv_chk.c +++ b/debug/recv_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/recvfrom_chk.c b/debug/recvfrom_chk.c index 8aecf31097..5bfb502d1d 100644 --- a/debug/recvfrom_chk.c +++ b/debug/recvfrom_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/segfault.c b/debug/segfault.c index bd1008d9af..14c64cd0bd 100644 --- a/debug/segfault.c +++ b/debug/segfault.c @@ -1,5 +1,5 @@ /* Catch segmentation faults and print backtrace. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -35,6 +35,10 @@ passed up by the signal handler. */ #include +#ifdef SA_SIGINFO +# define SIGCONTEXT siginfo_t *info, void * +#endif + /* Get code to possibly dump the content of all registers. */ #include @@ -101,7 +105,7 @@ catch_segfault (int signal, SIGCONTEXT ctx) Normally it will be found at arr[2], but it might appear later if there were some signal handler wrappers. Allow a few bytes difference to cope with as many arches as possible. */ - pc = (uintptr_t) GET_PC (ctx); + pc = sigcontext_get_pc (ctx); for (i = 0; i < cnt; ++i) if ((uintptr_t) arr[i] >= pc - 16 && (uintptr_t) arr[i] <= pc + 16) break; @@ -148,9 +152,15 @@ install_handler (void) const char *sigs = getenv ("SEGFAULT_SIGNALS"); const char *name; - sa.sa_handler = (void *) catch_segfault; +#ifdef SA_SIGINFO + sa.sa_sigaction = catch_segfault; + sa.sa_flags = SA_SIGINFO; +#else + sa.sa_handler = (void*) catch_segfault; + sa.sa_flags = 0; +#endif sigemptyset (&sa.sa_mask); - sa.sa_flags = SA_RESTART; + sa.sa_flags |= SA_RESTART; /* Maybe we are expected to use an alternative stack. */ if (getenv ("SEGFAULT_USE_ALTSTACK") != 0) diff --git a/debug/snprintf_chk.c b/debug/snprintf_chk.c index dd581fbd9b..c17ba1d9ce 100644 --- a/debug/snprintf_chk.c +++ b/debug/snprintf_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/sprintf_chk.c b/debug/sprintf_chk.c index 7ef01653ee..64351f14eb 100644 --- a/debug/sprintf_chk.c +++ b/debug/sprintf_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/stack_chk_fail.c b/debug/stack_chk_fail.c index 4485655599..fed03ee666 100644 --- a/debug/stack_chk_fail.c +++ b/debug/stack_chk_fail.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,20 +13,15 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include -#include -#include - - -extern char **__libc_argv attribute_hidden; void __attribute__ ((noreturn)) __stack_chk_fail (void) { - __fortify_fail_abort (false, "stack smashing detected"); + __fortify_fail ("stack smashing detected"); } strong_alias (__stack_chk_fail, __stack_chk_fail_local) diff --git a/debug/stack_chk_fail_local.c b/debug/stack_chk_fail_local.c index ae5aa181a3..5d6dc84e6b 100644 --- a/debug/stack_chk_fail_local.c +++ b/debug/stack_chk_fail_local.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -30,7 +30,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/stpcpy_chk.c b/debug/stpcpy_chk.c index a57b540e04..fed438072a 100644 --- a/debug/stpcpy_chk.c +++ b/debug/stpcpy_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2019 Free Software Foundation, Inc. +/* Copyright (C) 1992-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifdef HAVE_CONFIG_H # include diff --git a/debug/stpncpy_chk.c b/debug/stpncpy_chk.c index 3d61fdb29f..e23b0bd79b 100644 --- a/debug/stpncpy_chk.c +++ b/debug/stpncpy_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2019 Free Software Foundation, Inc. +/* Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This is almost copied from strncpy.c, written by Torbjorn Granlund. */ diff --git a/debug/strcat_chk.c b/debug/strcat_chk.c index 0b3d120e06..7247ba6923 100644 --- a/debug/strcat_chk.c +++ b/debug/strcat_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/strcpy_chk.c b/debug/strcpy_chk.c index 94e05d4f1d..a5594bf66d 100644 --- a/debug/strcpy_chk.c +++ b/debug/strcpy_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/strncat_chk.c b/debug/strncat_chk.c index 04cf9a2949..658a0e7ff0 100644 --- a/debug/strncat_chk.c +++ b/debug/strncat_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/strncpy_chk.c b/debug/strncpy_chk.c index 72607f4850..e03d6a74f0 100644 --- a/debug/strncpy_chk.c +++ b/debug/strncpy_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/swprintf_chk.c b/debug/swprintf_chk.c index 8edbfb10eb..f338b866d7 100644 --- a/debug/swprintf_chk.c +++ b/debug/swprintf_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/test-stpcpy_chk.c b/debug/test-stpcpy_chk.c index 443994517e..041c4886ec 100644 --- a/debug/test-stpcpy_chk.c +++ b/debug/test-stpcpy_chk.c @@ -1,5 +1,5 @@ /* Test and measure stpcpy checking functions. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Jakub Jelinek , 1999. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define STRCPY_RESULT(dst, len) ((dst) + (len)) #define TEST_MAIN diff --git a/debug/test-strcpy_chk.c b/debug/test-strcpy_chk.c index 49cf8e3b57..93504c431d 100644 --- a/debug/test-strcpy_chk.c +++ b/debug/test-strcpy_chk.c @@ -1,5 +1,5 @@ /* Test and measure __strcpy_chk functions. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Jakub Jelinek , 1999. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef STRCPY_RESULT # define STRCPY_RESULT(dst, len) dst diff --git a/debug/tst-backtrace.h b/debug/tst-backtrace.h index 54af7bbc31..04159119e6 100644 --- a/debug/tst-backtrace.h +++ b/debug/tst-backtrace.h @@ -1,6 +1,6 @@ /* Test backtrace and backtrace_symbols: common code for examining backtraces. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/tst-backtrace2.c b/debug/tst-backtrace2.c index 32ae8507db..9f712dedbe 100644 --- a/debug/tst-backtrace2.c +++ b/debug/tst-backtrace2.c @@ -1,5 +1,5 @@ /* Test backtrace and backtrace_symbols. - Copyright (C) 2009-2019 Free Software Foundation, Inc. + Copyright (C) 2009-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/tst-backtrace3.c b/debug/tst-backtrace3.c index a86700e1f1..a9b2427eaa 100644 --- a/debug/tst-backtrace3.c +++ b/debug/tst-backtrace3.c @@ -1,5 +1,5 @@ /* Test backtrace and backtrace_symbols for recursive calls. - Copyright (C) 2010-2019 Free Software Foundation, Inc. + Copyright (C) 2010-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/tst-backtrace4.c b/debug/tst-backtrace4.c index b840eb6699..ad004da239 100644 --- a/debug/tst-backtrace4.c +++ b/debug/tst-backtrace4.c @@ -1,5 +1,5 @@ /* Test backtrace and backtrace_symbols for signal frames. - Copyright (C) 2011-2019 Free Software Foundation, Inc. + Copyright (C) 2011-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/tst-backtrace5.c b/debug/tst-backtrace5.c index 5a5ce8bc79..b2f46160e7 100644 --- a/debug/tst-backtrace5.c +++ b/debug/tst-backtrace5.c @@ -1,6 +1,6 @@ /* Test backtrace and backtrace_symbols for signal frames, where a system call was interrupted by a signal. - Copyright (C) 2011-2019 Free Software Foundation, Inc. + Copyright (C) 2011-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -89,6 +89,18 @@ handle_signal (int signum) } /* Symbol names are not available for static functions, so we do not check do_test. */ + + /* Check that backtrace does not return more than what fits in the array + (bug 25423). */ + for (int j = 0; j < NUM_FUNCTIONS; j++) + { + n = backtrace (addresses, j); + if (n > j) + { + FAIL (); + return; + } + } } NO_INLINE int diff --git a/debug/tst-backtrace6.c b/debug/tst-backtrace6.c index 04290caf94..2abb576eec 100644 --- a/debug/tst-backtrace6.c +++ b/debug/tst-backtrace6.c @@ -1,6 +1,6 @@ /* Test backtrace and backtrace_symbols for signal frames, where a system call was interrupted by a signal. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/tst-chk1.c b/debug/tst-chk1.c index c6f11af1ff..5d02592978 100644 --- a/debug/tst-chk1.c +++ b/debug/tst-chk1.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2019 Free Software Foundation, Inc. +/* Copyright (C) 2004-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek , 2004. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This file tests gets. Force it to be declared. */ #include diff --git a/debug/tst-longjmp_chk3.c b/debug/tst-longjmp_chk3.c index ffcc773788..a4e210996d 100644 --- a/debug/tst-longjmp_chk3.c +++ b/debug/tst-longjmp_chk3.c @@ -1,5 +1,5 @@ /* Make sure longjmp fortification catches bad signal stacks. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/tst-ssp-1.c b/debug/tst-ssp-1.c index c012a6e2b0..8fc45460b0 100644 --- a/debug/tst-ssp-1.c +++ b/debug/tst-ssp-1.c @@ -1,5 +1,5 @@ /* Verify that __stack_chk_fail won't segfault. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Based on gcc.dg/ssp-1.c from GCC testsuite. */ diff --git a/debug/ttyname_r_chk.c b/debug/ttyname_r_chk.c index 60d508dc45..e2866262b5 100644 --- a/debug/ttyname_r_chk.c +++ b/debug/ttyname_r_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/vasprintf_chk.c b/debug/vasprintf_chk.c index 300b7ce10e..118804c739 100644 --- a/debug/vasprintf_chk.c +++ b/debug/vasprintf_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2019 Free Software Foundation, Inc. +/* Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . + . As a special exception, if you link the code in this file with files compiled with a GNU compiler to produce an executable, diff --git a/debug/vdprintf_chk.c b/debug/vdprintf_chk.c index 175b74b4a3..560f24a79b 100644 --- a/debug/vdprintf_chk.c +++ b/debug/vdprintf_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2019 Free Software Foundation, Inc. +/* Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . + . As a special exception, if you link the code in this file with files compiled with a GNU compiler to produce an executable, diff --git a/debug/vfprintf_chk.c b/debug/vfprintf_chk.c index d7dd73390d..6669ddae9f 100644 --- a/debug/vfprintf_chk.c +++ b/debug/vfprintf_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/vfwprintf_chk.c b/debug/vfwprintf_chk.c index c79f50ee78..8ea7889d37 100644 --- a/debug/vfwprintf_chk.c +++ b/debug/vfwprintf_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/vobprintf_chk.c b/debug/vobprintf_chk.c index 86d1ee1148..c343b6b798 100644 --- a/debug/vobprintf_chk.c +++ b/debug/vobprintf_chk.c @@ -1,5 +1,5 @@ /* Print output of stream to given obstack. - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/vprintf_chk.c b/debug/vprintf_chk.c index 2070febfc6..1cf45b669b 100644 --- a/debug/vprintf_chk.c +++ b/debug/vprintf_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/vsnprintf_chk.c b/debug/vsnprintf_chk.c index 23d3167212..386158c7db 100644 --- a/debug/vsnprintf_chk.c +++ b/debug/vsnprintf_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/vsprintf_chk.c b/debug/vsprintf_chk.c index c93ca4efb1..1863bc706f 100644 --- a/debug/vsprintf_chk.c +++ b/debug/vsprintf_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2019 Free Software Foundation, Inc. +/* Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/vswprintf_chk.c b/debug/vswprintf_chk.c index 742ac8299e..4f93cbf385 100644 --- a/debug/vswprintf_chk.c +++ b/debug/vswprintf_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/vwprintf_chk.c b/debug/vwprintf_chk.c index f3beea3d71..16b3ea3878 100644 --- a/debug/vwprintf_chk.c +++ b/debug/vwprintf_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/warning-nop.c b/debug/warning-nop.c index 8eeea396c3..4ab7e182b7 100644 --- a/debug/warning-nop.c +++ b/debug/warning-nop.c @@ -1,5 +1,5 @@ /* Dummy nop functions to elicit link-time warnings. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -31,7 +31,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/wcpcpy_chk.c b/debug/wcpcpy_chk.c index 0dd62560f2..ff489b4e46 100644 --- a/debug/wcpcpy_chk.c +++ b/debug/wcpcpy_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2019 Free Software Foundation, Inc. +/* Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/wcpncpy_chk.c b/debug/wcpncpy_chk.c index 63544eb58a..0a0ef5932b 100644 --- a/debug/wcpncpy_chk.c +++ b/debug/wcpncpy_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2019 Free Software Foundation, Inc. +/* Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/wcrtomb_chk.c b/debug/wcrtomb_chk.c index aff1dfb5a5..b69dd62e55 100644 --- a/debug/wcrtomb_chk.c +++ b/debug/wcrtomb_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/wcscat_chk.c b/debug/wcscat_chk.c index 7e7a5ed873..ddd9857d54 100644 --- a/debug/wcscat_chk.c +++ b/debug/wcscat_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2019 Free Software Foundation, Inc. +/* Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/wcscpy_chk.c b/debug/wcscpy_chk.c index 0435372b14..b09db7e067 100644 --- a/debug/wcscpy_chk.c +++ b/debug/wcscpy_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2019 Free Software Foundation, Inc. +/* Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/wcsncat_chk.c b/debug/wcsncat_chk.c index 6070467072..ec0a36488f 100644 --- a/debug/wcsncat_chk.c +++ b/debug/wcsncat_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2019 Free Software Foundation, Inc. +/* Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/wcsncpy_chk.c b/debug/wcsncpy_chk.c index 4e88a7948c..0a2cf31b83 100644 --- a/debug/wcsncpy_chk.c +++ b/debug/wcsncpy_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995-2019 Free Software Foundation, Inc. +/* Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1995. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/wcsnrtombs_chk.c b/debug/wcsnrtombs_chk.c index 71e590e9d6..4d4dae0aa5 100644 --- a/debug/wcsnrtombs_chk.c +++ b/debug/wcsnrtombs_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/wcsrtombs_chk.c b/debug/wcsrtombs_chk.c index 365ab8df74..920503dd96 100644 --- a/debug/wcsrtombs_chk.c +++ b/debug/wcsrtombs_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/wcstombs_chk.c b/debug/wcstombs_chk.c index ba4dd3ad76..3d6684c71f 100644 --- a/debug/wcstombs_chk.c +++ b/debug/wcstombs_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/wctomb_chk.c b/debug/wctomb_chk.c index 987d3637ff..d16c91bebd 100644 --- a/debug/wctomb_chk.c +++ b/debug/wctomb_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/wmemcpy_chk.c b/debug/wmemcpy_chk.c index 3e6b9095fb..13e980c1df 100644 --- a/debug/wmemcpy_chk.c +++ b/debug/wmemcpy_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2019 Free Software Foundation, Inc. +/* Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/wmemmove_chk.c b/debug/wmemmove_chk.c index 863d0c20e7..4a35c09199 100644 --- a/debug/wmemmove_chk.c +++ b/debug/wmemmove_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2019 Free Software Foundation, Inc. +/* Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper, @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/wmempcpy_chk.c b/debug/wmempcpy_chk.c index ef3afff34e..a9e28ec64a 100644 --- a/debug/wmempcpy_chk.c +++ b/debug/wmempcpy_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2019 Free Software Foundation, Inc. +/* Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1999. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/wmemset_chk.c b/debug/wmemset_chk.c index 4e1b34be72..76e2f6db5f 100644 --- a/debug/wmemset_chk.c +++ b/debug/wmemset_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2019 Free Software Foundation, Inc. +/* Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/debug/wprintf_chk.c b/debug/wprintf_chk.c index d53b486af8..cff5cd5284 100644 --- a/debug/wprintf_chk.c +++ b/debug/wprintf_chk.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/debug/xtrace.sh b/debug/xtrace.sh index dad1611375..e52bf35815 100755 --- a/debug/xtrace.sh +++ b/debug/xtrace.sh @@ -1,5 +1,5 @@ #! @BASH@ -# Copyright (C) 1999-2019 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # Contributed by Ulrich Drepper , 1999. @@ -15,7 +15,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . pcprofileso='@SLIBDIR@/libpcprofile.so' pcprofiledump='@BINDIR@/pcprofiledump' @@ -64,7 +64,7 @@ do_version() { printf $"Copyright (C) %s Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -" "2019" +" "2020" printf $"Written by %s. " "Ulrich Drepper" exit 0 diff --git a/dirent/Makefile b/dirent/Makefile index 144e448b3d..e917d5ceab 100644 --- a/dirent/Makefile +++ b/dirent/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991-2019 Free Software Foundation, Inc. +# Copyright (C) 1991-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # # Sub-makefile for dirent portion of the library. diff --git a/dirent/alphasort.c b/dirent/alphasort.c index 818a8ec62f..2c6011173a 100644 --- a/dirent/alphasort.c +++ b/dirent/alphasort.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2019 Free Software Foundation, Inc. +/* Copyright (C) 1992-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/dirent/alphasort64.c b/dirent/alphasort64.c index 567d647e07..702752f57c 100644 --- a/dirent/alphasort64.c +++ b/dirent/alphasort64.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2019 Free Software Foundation, Inc. +/* Copyright (C) 1992-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define alphasort __no_alphasort_decl #include diff --git a/dirent/closedir.c b/dirent/closedir.c index e37c566aa6..450f4fd374 100644 --- a/dirent/closedir.c +++ b/dirent/closedir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dirent/dirent.h b/dirent/dirent.h index d4650db17e..92d0925047 100644 --- a/dirent/dirent.h +++ b/dirent/dirent.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* * POSIX Standard: 5.1.2 Directory Operations diff --git a/dirent/dirfd.c b/dirent/dirfd.c index bd8c1dc6b8..afdbf90a61 100644 --- a/dirent/dirfd.c +++ b/dirent/dirfd.c @@ -1,5 +1,5 @@ /* Return the file descriptor used by a DIR stream. Stub version. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dirent/fdopendir.c b/dirent/fdopendir.c index 2c1a37a18e..4ed100f6c0 100644 --- a/dirent/fdopendir.c +++ b/dirent/fdopendir.c @@ -1,5 +1,5 @@ /* Open a directory stream from a file descriptor. Stub version. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dirent/getdents.c b/dirent/getdents.c index e7e95e2445..197846ff12 100644 --- a/dirent/getdents.c +++ b/dirent/getdents.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dirent/getdents64.c b/dirent/getdents64.c index 02af6ac216..ecb16a9cb6 100644 --- a/dirent/getdents64.c +++ b/dirent/getdents64.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dirent/list.c b/dirent/list.c index f1ecee5eee..6606037b80 100644 --- a/dirent/list.c +++ b/dirent/list.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dirent/opendir-tst1.c b/dirent/opendir-tst1.c index 044be66bea..726d3856b0 100644 --- a/dirent/opendir-tst1.c +++ b/dirent/opendir-tst1.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998-2019 Free Software Foundation, Inc. +/* Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dirent/opendir.c b/dirent/opendir.c index 3533310a4a..1c18b29cad 100644 --- a/dirent/opendir.c +++ b/dirent/opendir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dirent/readdir.c b/dirent/readdir.c index d06138e229..4c0c8c3439 100644 --- a/dirent/readdir.c +++ b/dirent/readdir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dirent/readdir64.c b/dirent/readdir64.c index 2d9c3ef15d..55282cc1f4 100644 --- a/dirent/readdir64.c +++ b/dirent/readdir64.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dirent/readdir64_r.c b/dirent/readdir64_r.c index e8a0f9ac2e..09ba100c63 100644 --- a/dirent/readdir64_r.c +++ b/dirent/readdir64_r.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dirent/readdir_r.c b/dirent/readdir_r.c index a0bd8df641..ec2f60b77e 100644 --- a/dirent/readdir_r.c +++ b/dirent/readdir_r.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dirent/rewinddir.c b/dirent/rewinddir.c index cffa7fae88..f5f5e4591c 100644 --- a/dirent/rewinddir.c +++ b/dirent/rewinddir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dirent/scandir-cancel.c b/dirent/scandir-cancel.c index 3c137d9af9..0a98991e83 100644 --- a/dirent/scandir-cancel.c +++ b/dirent/scandir-cancel.c @@ -1,5 +1,5 @@ /* Cancellation handler used in scandir* implementations. - Copyright (C) 1992-2019 Free Software Foundation, Inc. + Copyright (C) 1992-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/dirent/scandir-tail-common.c b/dirent/scandir-tail-common.c index f00e3473fe..65853842c1 100644 --- a/dirent/scandir-tail-common.c +++ b/dirent/scandir-tail-common.c @@ -1,5 +1,5 @@ /* Common implementation for scandir{at}. - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dirent/scandir-tail.c b/dirent/scandir-tail.c index f0505dd9f9..7ae20e673b 100644 --- a/dirent/scandir-tail.c +++ b/dirent/scandir-tail.c @@ -1,5 +1,5 @@ /* Logic guts of scandir*. - Copyright (C) 1992-2019 Free Software Foundation, Inc. + Copyright (C) 1992-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/dirent/scandir.c b/dirent/scandir.c index 5a13550fff..046c340b67 100644 --- a/dirent/scandir.c +++ b/dirent/scandir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2019 Free Software Foundation, Inc. +/* Copyright (C) 1992-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/dirent/scandir64-tail.c b/dirent/scandir64-tail.c index 5bdfe2c3e4..4897b5dd05 100644 --- a/dirent/scandir64-tail.c +++ b/dirent/scandir64-tail.c @@ -1,5 +1,5 @@ /* Logic guts of scandir*64. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/dirent/scandir64.c b/dirent/scandir64.c index f19dc5ed10..0d8a91dd5a 100644 --- a/dirent/scandir64.c +++ b/dirent/scandir64.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2019 Free Software Foundation, Inc. +/* Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define scandir __no_scandir_decl #include diff --git a/dirent/scandirat.c b/dirent/scandirat.c index 056bf1612c..8bf1da9bec 100644 --- a/dirent/scandirat.c +++ b/dirent/scandirat.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2019 Free Software Foundation, Inc. +/* Copyright (C) 1992-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/dirent/scandirat64.c b/dirent/scandirat64.c index eb81840402..2d0b281ee3 100644 --- a/dirent/scandirat64.c +++ b/dirent/scandirat64.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2019 Free Software Foundation, Inc. +/* Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define scandirat __no_scandirat_decl #include diff --git a/dirent/seekdir.c b/dirent/seekdir.c index f3530993b8..4282bd8d1b 100644 --- a/dirent/seekdir.c +++ b/dirent/seekdir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dirent/telldir.c b/dirent/telldir.c index 85a373252f..49a6fdf7ef 100644 --- a/dirent/telldir.c +++ b/dirent/telldir.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dirent/tst-scandir.c b/dirent/tst-scandir.c index b8d85d8ae0..4fcb71fc79 100644 --- a/dirent/tst-scandir.c +++ b/dirent/tst-scandir.c @@ -1,5 +1,5 @@ /* Basic test for scandir function. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dirent/versionsort.c b/dirent/versionsort.c index 9c91f69380..24b81d40a0 100644 --- a/dirent/versionsort.c +++ b/dirent/versionsort.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2019 Free Software Foundation, Inc. +/* Copyright (C) 1992-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/dirent/versionsort64.c b/dirent/versionsort64.c index 8e394b2a25..84312d62e0 100644 --- a/dirent/versionsort64.c +++ b/dirent/versionsort64.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2019 Free Software Foundation, Inc. +/* Copyright (C) 1992-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define versionsort __no_versionsort_decl #include diff --git a/dlfcn/Makefile b/dlfcn/Makefile index c49fd6d4c5..4b7e0387b3 100644 --- a/dlfcn/Makefile +++ b/dlfcn/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1995-2019 Free Software Foundation, Inc. +# Copyright (C) 1995-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . subdir := dlfcn diff --git a/dlfcn/bug-dl-leaf-lib-cb.c b/dlfcn/bug-dl-leaf-lib-cb.c index 75d8cf3ae2..0ec373bf7d 100644 --- a/dlfcn/bug-dl-leaf-lib-cb.c +++ b/dlfcn/bug-dl-leaf-lib-cb.c @@ -1,7 +1,7 @@ /* Make sure dlopen/dlclose are not marked as leaf functions. See bug-dl-leaf-lib.c for details. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Mike Frysinger @@ -17,7 +17,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ extern void check_val_init (void); extern void check_val_fini (void); diff --git a/dlfcn/bug-dl-leaf-lib.c b/dlfcn/bug-dl-leaf-lib.c index 228ac4f9ce..ce3dc9aa78 100644 --- a/dlfcn/bug-dl-leaf-lib.c +++ b/dlfcn/bug-dl-leaf-lib.c @@ -1,6 +1,6 @@ /* Make sure dlopen/dlclose are not marked as leaf functions. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Mike Frysinger @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* The bug-dl-leaf.c file will call our lib_main directly. We do this to keep things simple -- no need to use --export-dynamic with the linker diff --git a/dlfcn/bug-dl-leaf.c b/dlfcn/bug-dl-leaf.c index 4ed8e9646b..a0918131e0 100644 --- a/dlfcn/bug-dl-leaf.c +++ b/dlfcn/bug-dl-leaf.c @@ -1,7 +1,7 @@ /* Make sure dlopen/dlclose are not marked as leaf functions. See bug-dl-leaf-lib.c for details. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Mike Frysinger @@ -17,7 +17,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define TEST_FUNCTION lib_main () extern int lib_main (void); diff --git a/dlfcn/dladdr.c b/dlfcn/dladdr.c index 35f782349a..e8406616ad 100644 --- a/dlfcn/dladdr.c +++ b/dlfcn/dladdr.c @@ -1,5 +1,5 @@ /* Locate the shared object symbol nearest a given address. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dlfcn/dladdr1.c b/dlfcn/dladdr1.c index f3252d8cc3..078ba70f71 100644 --- a/dlfcn/dladdr1.c +++ b/dlfcn/dladdr1.c @@ -1,5 +1,5 @@ /* Locate the shared object symbol nearest a given address. - Copyright (C) 2003-2019 Free Software Foundation, Inc. + Copyright (C) 2003-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dlfcn/dlclose.c b/dlfcn/dlclose.c index 98e1375c43..9623b3786b 100644 --- a/dlfcn/dlclose.c +++ b/dlfcn/dlclose.c @@ -1,5 +1,5 @@ /* Close a handle opened by `dlopen'. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dlfcn/dlerror.c b/dlfcn/dlerror.c index ca42c126c1..0d38a37bf7 100644 --- a/dlfcn/dlerror.c +++ b/dlfcn/dlerror.c @@ -1,5 +1,5 @@ /* Return error detail for failing functions. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dlfcn/dlfcn.c b/dlfcn/dlfcn.c index b30f42d50d..b609c4463a 100644 --- a/dlfcn/dlfcn.c +++ b/dlfcn/dlfcn.c @@ -1,5 +1,5 @@ /* Load a shared object at run time. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/dlfcn/dlfcn.h b/dlfcn/dlfcn.h index c550371999..c629fc7f42 100644 --- a/dlfcn/dlfcn.h +++ b/dlfcn/dlfcn.h @@ -1,5 +1,5 @@ /* User functions for run-time dynamic loading. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _DLFCN_H #define _DLFCN_H 1 diff --git a/dlfcn/dlfreeres.c b/dlfcn/dlfreeres.c index ac0a86cad2..3820f33f0f 100644 --- a/dlfcn/dlfreeres.c +++ b/dlfcn/dlfreeres.c @@ -1,5 +1,5 @@ /* Clean up allocated libdl memory on demand. - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dlfcn/dlinfo.c b/dlfcn/dlinfo.c index a42b170468..ef2b1f77cc 100644 --- a/dlfcn/dlinfo.c +++ b/dlfcn/dlinfo.c @@ -1,5 +1,5 @@ /* dlinfo -- Get information from the dynamic linker. - Copyright (C) 2003-2019 Free Software Foundation, Inc. + Copyright (C) 2003-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -26,7 +26,7 @@ int dlinfo (void *handle, int request, void *arg) { - return __dlinfo (handle, request, arg, RETURN_ADDRESS (0)); + return __dlinfo (handle, request, arg); } #else @@ -35,7 +35,6 @@ dlinfo (void *handle, int request, void *arg) struct dlinfo_args { - ElfW(Addr) caller; void *handle; int request; void *arg; @@ -47,24 +46,6 @@ dlinfo_doit (void *argsblock) struct dlinfo_args *const args = argsblock; struct link_map *l = args->handle; -# if 0 - if (args->handle == RTLD_SELF) - { - Lmid_t nsid; - - /* Find the highest-addressed object that CALLER is not below. */ - for (nsid = 0; nsid < DL_NNS; ++nsid) - for (l = GL(dl_ns)[nsid]._ns_loaded; l != NULL; l = l->l_next) - if (caller >= l->l_map_start && caller < l->l_map_end - && (l->l_contiguous || _dl_addr_inside_object (l, caller))) - break; - - if (l == NULL) - _dl_signal_error (0, NULL, NULL, N_("\ -RTLD_SELF used in code not dynamically loaded")); - } -# endif - switch (args->request) { case RTLD_DI_CONFIGADDR: @@ -108,16 +89,14 @@ RTLD_SELF used in code not dynamically loaded")); } int -__dlinfo (void *handle, int request, void *arg DL_CALLER_DECL) +__dlinfo (void *handle, int request, void *arg) { # ifdef SHARED if (!rtld_active ()) - return _dlfcn_hook->dlinfo (handle, request, arg, - DL_CALLER); + return _dlfcn_hook->dlinfo (handle, request, arg); # endif - struct dlinfo_args args = { (ElfW(Addr)) DL_CALLER, - handle, request, arg }; + struct dlinfo_args args = { handle, request, arg }; return _dlerror_run (&dlinfo_doit, &args) ? -1 : 0; } # ifdef SHARED diff --git a/dlfcn/dlmopen.c b/dlfcn/dlmopen.c index db1d0922d5..1396c818ac 100644 --- a/dlfcn/dlmopen.c +++ b/dlfcn/dlmopen.c @@ -1,5 +1,5 @@ /* Load a shared object at run time. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dlfcn/dlopen.c b/dlfcn/dlopen.c index 7fd33480d3..5b4ed6798a 100644 --- a/dlfcn/dlopen.c +++ b/dlfcn/dlopen.c @@ -1,5 +1,5 @@ /* Load a shared object at run time. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dlfcn/dlopenold.c b/dlfcn/dlopenold.c index 51ec24810c..f06deec639 100644 --- a/dlfcn/dlopenold.c +++ b/dlfcn/dlopenold.c @@ -1,5 +1,5 @@ /* Load a shared object at run time. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dlfcn/dlsym.c b/dlfcn/dlsym.c index f1972429a5..e9ee596021 100644 --- a/dlfcn/dlsym.c +++ b/dlfcn/dlsym.c @@ -1,5 +1,5 @@ /* Look up a symbol in a shared object loaded by `dlopen'. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dlfcn/dlvsym.c b/dlfcn/dlvsym.c index b3ed31e8b8..021697fb75 100644 --- a/dlfcn/dlvsym.c +++ b/dlfcn/dlvsym.c @@ -1,5 +1,5 @@ /* Look up a versioned symbol in a shared object loaded by `dlopen'. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dlfcn/errmsg1.c b/dlfcn/errmsg1.c index bed4abe52c..2c6b3be40c 100644 --- a/dlfcn/errmsg1.c +++ b/dlfcn/errmsg1.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2019 Free Software Foundation, Inc. +/* Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dlfcn/errmsg1mod.c b/dlfcn/errmsg1mod.c index 80f46525d1..8927b5ed33 100644 --- a/dlfcn/errmsg1mod.c +++ b/dlfcn/errmsg1mod.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2019 Free Software Foundation, Inc. +/* Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ extern int bar (void); extern int foo (void); diff --git a/dlfcn/glreflib1.c b/dlfcn/glreflib1.c index 50bd9e0522..437c28a61e 100644 --- a/dlfcn/glreflib1.c +++ b/dlfcn/glreflib1.c @@ -1,5 +1,5 @@ /* Test for dependency tracking added by relocations. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ extern int ref1 (void); int diff --git a/dlfcn/glreflib2.c b/dlfcn/glreflib2.c index 0ad115524a..6a34591190 100644 --- a/dlfcn/glreflib2.c +++ b/dlfcn/glreflib2.c @@ -1,5 +1,5 @@ /* Test for dependency tracking added by relocations. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ extern int ref1 (void); diff --git a/dlfcn/glrefmain.c b/dlfcn/glrefmain.c index 8f118d27c9..28f1fb704a 100644 --- a/dlfcn/glrefmain.c +++ b/dlfcn/glrefmain.c @@ -1,5 +1,5 @@ /* Test for dependency tracking added by relocations. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dlfcn/modatexit.c b/dlfcn/modatexit.c index 118ccf5459..0be08f7f82 100644 --- a/dlfcn/modatexit.c +++ b/dlfcn/modatexit.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Free Software Foundation, Inc. +/* Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dlfcn/modcxaatexit.c b/dlfcn/modcxaatexit.c index ba00cd53df..a4b57b3d64 100644 --- a/dlfcn/modcxaatexit.c +++ b/dlfcn/modcxaatexit.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Free Software Foundation, Inc. +/* Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dlfcn/modstatic3.c b/dlfcn/modstatic3.c index 1105983851..e9470a529f 100644 --- a/dlfcn/modstatic3.c +++ b/dlfcn/modstatic3.c @@ -1,5 +1,5 @@ /* DSO used for dlopen testing with a static executable. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ unsigned int foo; diff --git a/dlfcn/modstatic5.c b/dlfcn/modstatic5.c index f11669a2d8..2eace6fb8f 100644 --- a/dlfcn/modstatic5.c +++ b/dlfcn/modstatic5.c @@ -1,6 +1,6 @@ /* DSO used for GLRO(dl_pagesize) initialization testing with a static executable. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/dlfcn/tst-dladdr.c b/dlfcn/tst-dladdr.c index ebd4aa0459..626eead655 100644 --- a/dlfcn/tst-dladdr.c +++ b/dlfcn/tst-dladdr.c @@ -1,5 +1,5 @@ /* Test for dladdr. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Volkmar Sieh and Andreas Jaeger . @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dlfcn/tst-dlinfo.c b/dlfcn/tst-dlinfo.c index 30a5927843..1e77dd919e 100644 --- a/dlfcn/tst-dlinfo.c +++ b/dlfcn/tst-dlinfo.c @@ -1,5 +1,5 @@ /* Test for dlinfo. - Copyright (C) 2003-2019 Free Software Foundation, Inc. + Copyright (C) 2003-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dlfcn/tst-rec-dlopen.c b/dlfcn/tst-rec-dlopen.c index 3c95db3254..f5dc7ef3a8 100644 --- a/dlfcn/tst-rec-dlopen.c +++ b/dlfcn/tst-rec-dlopen.c @@ -1,5 +1,5 @@ /* Test recursive dlopen using malloc hooks. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dlfcn/tstatexit.c b/dlfcn/tstatexit.c index c8cb272ce0..f3c1d328ed 100644 --- a/dlfcn/tstatexit.c +++ b/dlfcn/tstatexit.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Free Software Foundation, Inc. +/* Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dlfcn/tstcxaatexit.c b/dlfcn/tstcxaatexit.c index ece14e1dd4..fbc89bb8c8 100644 --- a/dlfcn/tstcxaatexit.c +++ b/dlfcn/tstcxaatexit.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Free Software Foundation, Inc. +/* Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dlfcn/tststatic3.c b/dlfcn/tststatic3.c index 7317686f25..f97d8b51e4 100644 --- a/dlfcn/tststatic3.c +++ b/dlfcn/tststatic3.c @@ -1,5 +1,5 @@ /* Global-scope DSO mapping test with a static executable (BZ #15022). - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dlfcn/tststatic4.c b/dlfcn/tststatic4.c index 51f31d954f..f4af7b7f3d 100644 --- a/dlfcn/tststatic4.c +++ b/dlfcn/tststatic4.c @@ -1,5 +1,5 @@ /* Global object symbol access tests with a static executable (BZ #15022). - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/dlfcn/tststatic5.c b/dlfcn/tststatic5.c index 5d4eac6d5b..91ef2aacc1 100644 --- a/dlfcn/tststatic5.c +++ b/dlfcn/tststatic5.c @@ -1,5 +1,5 @@ /* GLRO(dl_pagesize) initialization DSO test with a static executable. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/Makefile b/elf/Makefile index a3eefd1b1f..632a4d8b0f 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1995-2019 Free Software Foundation, Inc. +# Copyright (C) 1995-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # Makefile for elf subdirectory of GNU C Library. @@ -65,6 +65,12 @@ CFLAGS-dl-runtime.c += -fexceptions -fasynchronous-unwind-tables CFLAGS-dl-lookup.c += -fexceptions -fasynchronous-unwind-tables CFLAGS-dl-iterate-phdr.c += $(uses-callbacks) +# On targets without __builtin_memset, rtld.c uses a hand-coded loop +# in _dl_start. Make sure this isn't turned into a call to regular memset. +ifeq (yes,$(have-loop-to-function)) +CFLAGS-rtld.c += -fno-tree-loop-distribute-patterns +endif + # Compile rtld itself without stack protection. # Also compile all routines in the static library that are elided from # the shared libc because they are in libc.a in the same way. @@ -156,8 +162,9 @@ tests-static-internal := tst-tls1-static tst-tls2-static \ CRT-tst-tls1-static-non-pie := $(csu-objpfx)crt1.o tst-tls1-static-non-pie-no-pie = yes -tests-container = \ - tst-ldconfig-bad-aux-cache +tests-container := \ + tst-ldconfig-bad-aux-cache \ + tst-ldconfig-ld_so_conf-update tests := tst-tls9 tst-leaks1 \ tst-array1 tst-array2 tst-array3 tst-array4 tst-array5 \ @@ -185,25 +192,24 @@ tests += restest1 preloadtest loadfail multiload origtest resolvfail \ tst-audit1 tst-audit2 tst-audit8 tst-audit9 \ tst-addr1 tst-thrlock \ tst-unique1 tst-unique2 $(if $(CXX),tst-unique3 tst-unique4 \ - tst-nodelete) \ + tst-nodelete tst-dlopen-nodelete-reloc) \ tst-initorder tst-initorder2 tst-relsort1 tst-null-argv \ tst-tlsalign tst-tlsalign-extern tst-nodelete-opened \ tst-nodelete2 tst-audit11 tst-audit12 tst-dlsym-error tst-noload \ tst-latepthread tst-tls-manydynamic tst-nodelete-dlclose \ tst-debug1 tst-main1 tst-absolute-sym tst-absolute-zero tst-big-note \ tst-unwind-ctor tst-unwind-main tst-audit13 \ - tst-sonamemove-link tst-sonamemove-dlopen + tst-sonamemove-link tst-sonamemove-dlopen tst-dlopen-tlsmodid \ + tst-dlopen-self tst-auditmany tst-initfinilazyfail tst-dlopenfail \ + tst-dlopenfail-2 # reldep9 tests-internal += loadtest unload unload2 circleload1 \ neededtest neededtest2 neededtest3 neededtest4 \ tst-tls3 tst-tls6 tst-tls7 tst-tls8 tst-dlmopen2 \ tst-ptrguard1 tst-stackguard1 tst-libc_dlvsym \ tst-create_format1 -tests-container += tst-pldd -ifeq ($(build-hardcoded-path-in-tests),yes) -tests += tst-dlopen-aout -tst-dlopen-aout-no-pie = yes -endif +tests-container += tst-pldd tst-dlopen-tlsmodid-container \ + tst-dlopen-self-container test-srcs = tst-pathopt selinux-enabled := $(shell cat /selinux/enforce 2> /dev/null) ifneq ($(selinux-enabled),1) @@ -267,7 +273,24 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \ tst-auditmod9a tst-auditmod9b \ $(if $(CXX),tst-unique3lib tst-unique3lib2 tst-unique4lib \ tst-nodelete-uniquemod tst-nodelete-rtldmod \ - tst-nodelete-zmod) \ + tst-nodelete-zmod \ + tst-dlopen-nodelete-reloc-mod1 \ + tst-dlopen-nodelete-reloc-mod2 \ + tst-dlopen-nodelete-reloc-mod3 \ + tst-dlopen-nodelete-reloc-mod4 \ + tst-dlopen-nodelete-reloc-mod5 \ + tst-dlopen-nodelete-reloc-mod6 \ + tst-dlopen-nodelete-reloc-mod7 \ + tst-dlopen-nodelete-reloc-mod8 \ + tst-dlopen-nodelete-reloc-mod9 \ + tst-dlopen-nodelete-reloc-mod10 \ + tst-dlopen-nodelete-reloc-mod11 \ + tst-dlopen-nodelete-reloc-mod12 \ + tst-dlopen-nodelete-reloc-mod13 \ + tst-dlopen-nodelete-reloc-mod14 \ + tst-dlopen-nodelete-reloc-mod15 \ + tst-dlopen-nodelete-reloc-mod16 \ + tst-dlopen-nodelete-reloc-mod17) \ tst-initordera1 tst-initorderb1 \ tst-initordera2 tst-initorderb2 \ tst-initordera3 tst-initordera4 \ @@ -283,7 +306,13 @@ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \ tst-main1mod tst-libc_dlvsym-dso tst-absolute-sym-lib \ tst-absolute-zero-lib tst-big-note-lib tst-unwind-ctor-lib \ tst-audit13mod1 tst-sonamemove-linkmod1 \ - tst-sonamemove-runmod1 tst-sonamemove-runmod2 + tst-sonamemove-runmod1 tst-sonamemove-runmod2 \ + tst-auditmanymod1 tst-auditmanymod2 tst-auditmanymod3 \ + tst-auditmanymod4 tst-auditmanymod5 tst-auditmanymod6 \ + tst-auditmanymod7 tst-auditmanymod8 tst-auditmanymod9 \ + tst-initlazyfailmod tst-finilazyfailmod \ + tst-dlopenfailmod1 tst-dlopenfaillinkmod tst-dlopenfailmod2 \ + tst-dlopenfailmod3 tst-ldconfig-ld-mod # Most modules build with _ISOMAC defined, but those filtered out # depend on internal headers. modules-names-tests = $(filter-out ifuncmod% tst-libc_dlvsym-dso tst-tlsmod%,\ @@ -312,8 +341,9 @@ test-xfail-tst-protected1b = yes endif ifeq (yesyes,$(have-fpie)$(build-shared)) modules-names += tst-piemod1 -tests += tst-pie1 tst-pie2 tst-dlopen-pie -tests-pie += tst-pie1 tst-pie2 +tests += tst-pie1 tst-pie2 tst-dlopen-pie tst-dlopen-tlsmodid-pie \ + tst-dlopen-self-pie +tests-pie += tst-pie1 tst-pie2 tst-dlopen-tlsmodid-pie tst-dlopen-self-pie ifeq (yes,$(have-protected-data)) tests += vismain tests-pie += vismain @@ -338,6 +368,7 @@ tests-ifuncstatic := ifuncmain1static ifuncmain1picstatic \ tests-static += $(tests-ifuncstatic) tests-internal += $(tests-ifuncstatic) ifeq (yes,$(build-shared)) +tests += tst-ifunc-fault-lazy tst-ifunc-fault-bindnow # Note: sysdeps/x86_64/ifuncmain8.c uses ifuncmain8. tests-internal += \ ifuncmain1 ifuncmain1pic ifuncmain1vis ifuncmain1vispic \ @@ -679,20 +710,20 @@ $(objpfx)tst-tlsalign-extern: $(objpfx)tst-tlsalign-vars.o $(objpfx)tst-tlsalign-extern-static: $(objpfx)tst-tlsalign-vars.o tst-null-argv-ENV = LD_DEBUG=all LD_DEBUG_OUTPUT=$(objpfx)tst-null-argv.debug.out -LDFLAGS-nodel2mod3.so = $(no-as-needed) -LDFLAGS-reldepmod5.so = $(no-as-needed) -LDFLAGS-reldep6mod1.so = $(no-as-needed) -LDFLAGS-reldep6mod4.so = $(no-as-needed) -LDFLAGS-reldep8mod3.so = $(no-as-needed) -LDFLAGS-unload4mod1.so = $(no-as-needed) -LDFLAGS-unload4mod2.so = $(no-as-needed) -LDFLAGS-tst-initorder = $(no-as-needed) -LDFLAGS-tst-initordera2.so = $(no-as-needed) -LDFLAGS-tst-initordera3.so = $(no-as-needed) -LDFLAGS-tst-initordera4.so = $(no-as-needed) -LDFLAGS-tst-initorderb2.so = $(no-as-needed) -LDFLAGS-tst-tlsmod5.so = -nostdlib $(no-as-needed) -LDFLAGS-tst-tlsmod6.so = -nostdlib $(no-as-needed) +LDFLAGS-nodel2mod3.so = -Wl,--no-as-needed +LDFLAGS-reldepmod5.so = -Wl,--no-as-needed +LDFLAGS-reldep6mod1.so = -Wl,--no-as-needed +LDFLAGS-reldep6mod4.so = -Wl,--no-as-needed +LDFLAGS-reldep8mod3.so = -Wl,--no-as-needed +LDFLAGS-unload4mod1.so = -Wl,--no-as-needed +LDFLAGS-unload4mod2.so = -Wl,--no-as-needed +LDFLAGS-tst-initorder = -Wl,--no-as-needed +LDFLAGS-tst-initordera2.so = -Wl,--no-as-needed +LDFLAGS-tst-initordera3.so = -Wl,--no-as-needed +LDFLAGS-tst-initordera4.so = -Wl,--no-as-needed +LDFLAGS-tst-initorderb2.so = -Wl,--no-as-needed +LDFLAGS-tst-tlsmod5.so = -nostdlib -Wl,--no-as-needed +LDFLAGS-tst-tlsmod6.so = -nostdlib -Wl,--no-as-needed testobj1.so-no-z-defs = yes testobj3.so-no-z-defs = yes @@ -827,7 +858,7 @@ $(objpfx)vismain.out: $(addprefix $(objpfx),vismod3.so) vismain-ENV = LD_PRELOAD=$(addprefix $(objpfx),vismod3.so) $(objpfx)noload: $(objpfx)testobj1.so $(libdl) -LDFLAGS-noload = -rdynamic $(no-as-needed) +LDFLAGS-noload = -rdynamic -Wl,--no-as-needed $(objpfx)noload.out: $(objpfx)testobj5.so $(objpfx)noload-mem.out: $(objpfx)noload.out @@ -876,7 +907,7 @@ $(objpfx)reldep4: $(libdl) $(objpfx)reldep4.out: $(objpfx)reldep4mod1.so $(objpfx)reldep4mod2.so $(objpfx)next: $(objpfx)nextmod1.so $(objpfx)nextmod2.so $(libdl) -LDFLAGS-next = $(no-as-needed) +LDFLAGS-next = -Wl,--no-as-needed $(objpfx)unload2: $(libdl) $(objpfx)unload2.out: $(objpfx)unload2mod.so $(objpfx)unload2dep.so @@ -900,7 +931,7 @@ $(objpfx)tst-rtld-preload.out: tst-rtld-preload.sh $(objpfx)ld.so \ $(objpfx)preloadtest \ $(preloadtest-preloads:%=$(objpfx)%.so) $(SHELL) $< $(objpfx)ld.so $(objpfx)preloadtest \ - '$(test-wrapper)' '$(test-wrapper-env)' '$(run_program_env)' \ + '$(test-wrapper-env)' '$(run_program_env)' \ '$(rpath-link)' '$(tst-rtld-preload-OBJS)' > $@; \ $(evaluate-test) @@ -1044,8 +1075,8 @@ CFLAGS-tst-execstack-prog.c += -Wno-trampolines CFLAGS-tst-execstack-mod.c += -Wno-trampolines endif -LDFLAGS-tst-array2 = $(no-as-needed) -LDFLAGS-tst-array5 = $(no-as-needed) +LDFLAGS-tst-array2 = -Wl,--no-as-needed +LDFLAGS-tst-array5 = -Wl,--no-as-needed $(objpfx)tst-array1-cmp.out: tst-array1.exp $(objpfx)tst-array1.out cmp $^ > $@; \ @@ -1243,8 +1274,8 @@ $(objpfx)order2mod1.so: $(objpfx)order2mod4.so $(objpfx)order2mod4.so: $(objpfx)order2mod3.so $(objpfx)order2mod2.so: $(objpfx)order2mod3.so order2mod2.so-no-z-defs = yes -LDFLAGS-order2mod1.so = $(no-as-needed) -LDFLAGS-order2mod2.so = $(no-as-needed) +LDFLAGS-order2mod1.so = -Wl,--no-as-needed +LDFLAGS-order2mod2.so = -Wl,--no-as-needed tst-stackguard1-ARGS = --command "$(host-test-program-cmd) --child" tst-stackguard1-static-ARGS = --command "$(objpfx)tst-stackguard1-static --child" @@ -1271,7 +1302,22 @@ tst-leaks1-static-ENV = MALLOC_TRACE=$(objpfx)tst-leaks1-static.mtrace $(objpfx)tst-addr1: $(libdl) $(objpfx)tst-thrlock: $(libdl) $(shared-thread-library) -$(objpfx)tst-dlopen-aout: $(libdl) $(shared-thread-library) + +tst-tst-dlopen-tlsmodid-no-pie = yes +$(objpfx)tst-dlopen-tlsmodid: $(libdl) $(shared-thread-library) +$(objpfx)tst-dlopen-tlsmodid.out: $(objpfx)tst-dlopen-self +CFLAGS-tst-dlopen-tlsmodid-pie.c += $(pie-ccflag) +$(objpfx)tst-dlopen-tlsmodid-pie: $(libdl) $(shared-thread-library) +$(objpfx)tst-dlopen-tlsmodid-pie.out: $(objpfx)tst-dlopen-self-pie +$(objpfx)tst-dlopen-tlsmodid-container: $(libdl) $(shared-thread-library) +LDFLAGS-tst-dlopen-tlsmodid-container += -Wl,-rpath,\$$ORIGIN + +tst-tst-dlopen-self-no-pie = yes +$(objpfx)tst-dlopen-self: $(libdl) +CFLAGS-tst-dlopen-self-pie.c += $(pie-ccflag) +$(objpfx)tst-dlopen-self-pie: $(libdl) +$(objpfx)tst-dlopen-self-container: $(libdl) +LDFLAGS-tst-dlopen-self-container += -Wl,-rpath,\$$ORIGIN CFLAGS-ifuncmain1pic.c += $(pic-ccflag) CFLAGS-ifuncmain1picstatic.c += $(pic-ccflag) @@ -1329,6 +1375,21 @@ $(objpfx)ifuncmain5static: $(addprefix $(objpfx),ifuncdep5.o) $(objpfx)ifuncmain5staticpic: $(addprefix $(objpfx),ifuncdep5pic.o) $(objpfx)ifuncmain5picstatic: $(addprefix $(objpfx),ifuncdep5pic.o) +LDFLAGS-tst-ifunc-fault-lazy = -Wl,-z,lazy +LDFLAGS-tst-ifunc-fault-bindnow = -Wl,-z,now +define tst-ifunc-fault-script +( $(test-wrapper) $(rtld-prefix) --verify $^ \ + && $(test-wrapper-env) LD_TRACE_LOADED_OBJECTS=1 $(rtld-prefix) $^ \ + && $(test-wrapper-env) LD_TRACE_LOADED_OBJECTS=1 LD_DEBUG=unused \ + $(rtld-prefix) $^ \ +) > $@; $(evaluate-test) +endef +$(objpfx)tst-ifunc-fault-lazy.out: $(objpfx)tst-ifunc-fault-lazy $(objpfx)ld.so + $(tst-ifunc-fault-script) +$(objpfx)tst-ifunc-fault-bindnow.out: $(objpfx)tst-ifunc-fault-bindnow \ + $(objpfx)ld.so + $(tst-ifunc-fault-script) + $(objpfx)tst-unique1: $(libdl) $(objpfx)tst-unique1.out: $(objpfx)tst-unique1mod1.so \ $(objpfx)tst-unique1mod2.so @@ -1362,10 +1423,10 @@ $(objpfx)tst-initorder2: $(objpfx)tst-initorder2a.so $(objpfx)tst-initorder2d.so $(objpfx)tst-initorder2a.so: $(objpfx)tst-initorder2b.so $(objpfx)tst-initorder2b.so: $(objpfx)tst-initorder2c.so $(objpfx)tst-initorder2c.so: $(objpfx)tst-initorder2d.so -LDFLAGS-tst-initorder2 = $(no-as-needed) -LDFLAGS-tst-initorder2a.so = $(no-as-needed) -LDFLAGS-tst-initorder2b.so = $(no-as-needed) -LDFLAGS-tst-initorder2c.so = $(no-as-needed) +LDFLAGS-tst-initorder2 = -Wl,--no-as-needed +LDFLAGS-tst-initorder2a.so = -Wl,--no-as-needed +LDFLAGS-tst-initorder2b.so = -Wl,--no-as-needed +LDFLAGS-tst-initorder2c.so = -Wl,--no-as-needed define o-iterator-doit $(objpfx)tst-initorder2$o.os: tst-initorder2.c; \ $$(compile-command.c) -DNAME=\"$o\" @@ -1412,6 +1473,14 @@ $(objpfx)tst-audit13.out: $(objpfx)tst-audit13mod1.so LDFLAGS-tst-audit13mod1.so = -Wl,-z,lazy tst-audit13-ENV = LD_AUDIT=$(objpfx)tst-audit13mod1.so +$(objpfx)tst-auditmany.out: $(objpfx)tst-auditmanymod1.so \ + $(objpfx)tst-auditmanymod2.so $(objpfx)tst-auditmanymod3.so \ + $(objpfx)tst-auditmanymod4.so $(objpfx)tst-auditmanymod5.so \ + $(objpfx)tst-auditmanymod6.so $(objpfx)tst-auditmanymod7.so \ + $(objpfx)tst-auditmanymod8.so $(objpfx)tst-auditmanymod9.so +tst-auditmany-ENV = \ + LD_AUDIT=tst-auditmanymod1.so:tst-auditmanymod2.so:tst-auditmanymod3.so:tst-auditmanymod4.so:tst-auditmanymod5.so:tst-auditmanymod6.so:tst-auditmanymod7.so:tst-auditmanymod8.so:tst-auditmanymod9.so + # tst-sonamemove links against an older implementation of the library. LDFLAGS-tst-sonamemove-linkmod1.so = \ -Wl,--version-script=tst-sonamemove-linkmod1.map \ @@ -1555,3 +1624,78 @@ $(objpfx)tst-big-note-lib.so: $(objpfx)tst-big-note-lib.o $(objpfx)tst-unwind-ctor: $(objpfx)tst-unwind-ctor-lib.so CFLAGS-tst-unwind-main.c += -funwind-tables -DUSE_PTHREADS=0 + +$(objpfx)tst-initfinilazyfail: $(libdl) +$(objpfx)tst-initfinilazyfail.out: \ + $(objpfx)tst-initlazyfailmod.so $(objpfx)tst-finilazyfailmod.so +# Override -z defs, so that we can reference an undefined symbol. +# Force lazy binding for the same reason. +LDFLAGS-tst-initlazyfailmod.so = \ + -Wl,-z,lazy -Wl,--unresolved-symbols=ignore-all +LDFLAGS-tst-finilazyfailmod.so = \ + -Wl,-z,lazy -Wl,--unresolved-symbols=ignore-all + +$(objpfx)tst-dlopenfail: $(libdl) +$(objpfx)tst-dlopenfail.out: \ + $(objpfx)tst-dlopenfailmod1.so $(objpfx)tst-dlopenfailmod2.so +# Order matters here. tst-dlopenfaillinkmod.so's soname ensures a +# run-time loader failure. --as-needed breaks this test because +# nothing actually references tst-dlopenfailmod2.so (with its soname +# tst-dlopenfail-missingmod.so). +LDFLAGS-tst-dlopenfailmod1.so = -Wl,--no-as-needed +$(objpfx)tst-dlopenfailmod1.so: \ + $(shared-thread-library) $(objpfx)tst-dlopenfaillinkmod.so +LDFLAGS-tst-dlopenfaillinkmod.so = -Wl,-soname,tst-dlopenfail-missingmod.so +$(objpfx)tst-dlopenfailmod2.so: $(shared-thread-library) +$(objpfx)tst-dlopenfail-2: $(libdl) +$(objpfx)tst-dlopenfail.out: \ + $(objpfx)tst-dlopenfailmod1.so $(objpfx)tst-dlopenfailmod2.so \ + $(objpfx)tst-dlopenfailmod3.so + +$(objpfx)tst-dlopen-nodelete-reloc: $(libdl) +$(objpfx)tst-dlopen-nodelete-reloc.out: \ + $(objpfx)tst-dlopen-nodelete-reloc-mod1.so \ + $(objpfx)tst-dlopen-nodelete-reloc-mod2.so \ + $(objpfx)tst-dlopen-nodelete-reloc-mod3.so \ + $(objpfx)tst-dlopen-nodelete-reloc-mod4.so \ + $(objpfx)tst-dlopen-nodelete-reloc-mod5.so \ + $(objpfx)tst-dlopen-nodelete-reloc-mod6.so \ + $(objpfx)tst-dlopen-nodelete-reloc-mod7.so \ + $(objpfx)tst-dlopen-nodelete-reloc-mod8.so \ + $(objpfx)tst-dlopen-nodelete-reloc-mod9.so \ + $(objpfx)tst-dlopen-nodelete-reloc-mod10.so \ + $(objpfx)tst-dlopen-nodelete-reloc-mod11.so \ + $(objpfx)tst-dlopen-nodelete-reloc-mod12.so \ + $(objpfx)tst-dlopen-nodelete-reloc-mod13.so \ + $(objpfx)tst-dlopen-nodelete-reloc-mod14.so \ + $(objpfx)tst-dlopen-nodelete-reloc-mod15.so \ + $(objpfx)tst-dlopen-nodelete-reloc-mod16.so \ + $(objpfx)tst-dlopen-nodelete-reloc-mod17.so +tst-dlopen-nodelete-reloc-mod2.so-no-z-defs = yes +LDFLAGS-tst-dlopen-nodelete-reloc-mod2.so = -Wl,-z,nodelete +$(objpfx)tst-dlopen-nodelete-reloc-mod4.so: \ + $(objpfx)tst-dlopen-nodelete-reloc-mod3.so +LDFLAGS-tst-dlopen-nodelete-reloc-mod4.so = -Wl,--no-as-needed +$(objpfx)tst-dlopen-nodelete-reloc-mod5.so: \ + $(objpfx)tst-dlopen-nodelete-reloc-mod4.so +LDFLAGS-tst-dlopen-nodelete-reloc-mod5.so = -Wl,-z,nodelete,--no-as-needed +tst-dlopen-nodelete-reloc-mod5.so-no-z-defs = yes +tst-dlopen-nodelete-reloc-mod7.so-no-z-defs = yes +$(objpfx)tst-dlopen-nodelete-reloc-mod8.so: $(libdl) +$(objpfx)tst-dlopen-nodelete-reloc-mod10.so: $(libdl) +tst-dlopen-nodelete-reloc-mod11.so-no-z-defs = yes +$(objpfx)tst-dlopen-nodelete-reloc-mod13.so: \ + $(objpfx)tst-dlopen-nodelete-reloc-mod12.so +$(objpfx)tst-dlopen-nodelete-reloc-mod15.so: \ + $(objpfx)tst-dlopen-nodelete-reloc-mod14.so +tst-dlopen-nodelete-reloc-mod16.so-no-z-defs = yes +$(objpfx)tst-dlopen-nodelete-reloc-mod16.so: \ + $(objpfx)tst-dlopen-nodelete-reloc-mod15.so +LDFLAGS-tst-dlopen-nodelete-reloc-mod16.so = -Wl,--no-as-needed +$(objpfx)tst-dlopen-nodelete-reloc-mod17.so: \ + $(objpfx)tst-dlopen-nodelete-reloc-mod15.so \ + $(objpfx)tst-dlopen-nodelete-reloc-mod16.so +LDFLAGS-tst-dlopen-nodelete-reloc-mod17.so = -Wl,--no-as-needed + +$(objpfx)tst-ldconfig-ld_so_conf-update.out: $(objpfx)tst-ldconfig-ld-mod.so +$(objpfx)tst-ldconfig-ld_so_conf-update: $(libdl) diff --git a/elf/cache.c b/elf/cache.c index d0d5858448..d92b4e59c1 100644 --- a/elf/cache.c +++ b/elf/cache.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2019 Free Software Foundation, Inc. +/* Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Andreas Jaeger , 1999. @@ -13,7 +13,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, see . */ + along with this program; if not, see . */ #include #include diff --git a/elf/chroot_canon.c b/elf/chroot_canon.c index dd09393ce3..746a8a3105 100644 --- a/elf/chroot_canon.c +++ b/elf/chroot_canon.c @@ -1,5 +1,5 @@ /* Return the canonical absolute name of a given file inside chroot. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software; you can redistribute it and/or modify @@ -13,7 +13,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, see . */ + along with this program; if not, see . */ #include #include diff --git a/elf/dl-addr-obj.c b/elf/dl-addr-obj.c index ad7304ce51..9645e35a98 100644 --- a/elf/dl-addr-obj.c +++ b/elf/dl-addr-obj.c @@ -1,5 +1,5 @@ /* Determine if address is inside object load segments. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/dl-addr.c b/elf/dl-addr.c index 9d285d76a7..693cfd2a62 100644 --- a/elf/dl-addr.c +++ b/elf/dl-addr.c @@ -1,5 +1,5 @@ /* Locate the shared object symbol nearest a given address. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -42,7 +42,7 @@ determine_info (const ElfW(Addr) addr, struct link_map *match, Dl_info *info, ElfW(Word) strtabsize = match->l_info[DT_STRSZ]->d_un.d_val; const ElfW(Sym) *matchsym = NULL; - if (match->l_info[ADDRIDX (DT_GNU_HASH)] != NULL) + if (match->l_info[ELF_MACHINE_GNU_HASH_ADDRIDX] != NULL) { /* We look at all symbol table entries referenced by the hash table. */ @@ -57,6 +57,7 @@ determine_info (const ElfW(Addr) addr, struct link_map *match, Dl_info *info, { /* The hash table never references local symbols so we can omit that test here. */ + symndx = ELF_MACHINE_HASH_SYMIDX (match, hasharr); if ((symtab[symndx].st_shndx != SHN_UNDEF || symtab[symndx].st_value != 0) && symtab[symndx].st_shndx != SHN_ABS @@ -65,8 +66,6 @@ determine_info (const ElfW(Addr) addr, struct link_map *match, Dl_info *info, matchsym, addr) && symtab[symndx].st_name < strtabsize) matchsym = (ElfW(Sym) *) &symtab[symndx]; - - ++symndx; } while ((*hasharr++ & 1u) == 0); } diff --git a/elf/dl-cache.c b/elf/dl-cache.c index d8d1e2344e..3eedd9afcf 100644 --- a/elf/dl-cache.c +++ b/elf/dl-cache.c @@ -1,5 +1,5 @@ /* Support for reading /etc/ld.so.cache files written by Linux ldconfig. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/dl-close.c b/elf/dl-close.c index 4aef95a1a0..73b2817bbf 100644 --- a/elf/dl-close.c +++ b/elf/dl-close.c @@ -1,5 +1,5 @@ /* Close a shared object opened by `_dl_open'. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -106,6 +106,30 @@ remove_slotinfo (size_t idx, struct dtv_slotinfo_list *listp, size_t disp, return false; } +/* Invoke dstructors for CLOSURE (a struct link_map *). Called with + exception handling temporarily disabled, to make errors fatal. */ +static void +call_destructors (void *closure) +{ + struct link_map *map = closure; + + if (map->l_info[DT_FINI_ARRAY] != NULL) + { + ElfW(Addr) *array = + (ElfW(Addr) *) (map->l_addr + + map->l_info[DT_FINI_ARRAY]->d_un.d_ptr); + unsigned int sz = (map->l_info[DT_FINI_ARRAYSZ]->d_un.d_val + / sizeof (ElfW(Addr))); + + while (sz-- > 0) + ((fini_t) array[sz]) (); + } + + /* Next try the old-style destructor. */ + if (map->l_info[DT_FINI] != NULL) + DL_CALL_DT_FINI (map, ((void *) map->l_addr + + map->l_info[DT_FINI]->d_un.d_ptr)); +} void _dl_close_worker (struct link_map *map, bool force) @@ -144,14 +168,6 @@ _dl_close_worker (struct link_map *map, bool force) char done[nloaded]; struct link_map *maps[nloaded]; - /* Clear DF_1_NODELETE to force object deletion. We don't need to touch - l_tls_dtor_count because forced object deletion only happens when an - error occurs during object load. Destructor registration for TLS - non-POD objects should not have happened till then for this - object. */ - if (force) - map->l_flags_1 &= ~DF_1_NODELETE; - /* Run over the list and assign indexes to the link maps and enter them into the MAPS array. */ int idx = 0; @@ -181,7 +197,7 @@ _dl_close_worker (struct link_map *map, bool force) /* Check whether this object is still used. */ if (l->l_type == lt_loaded && l->l_direct_opencount == 0 - && (l->l_flags_1 & DF_1_NODELETE) == 0 + && !l->l_nodelete_active /* See CONCURRENCY NOTES in cxa_thread_atexit_impl.c to know why acquire is sufficient and correct. */ && atomic_load_acquire (&l->l_tls_dtor_count) == 0 @@ -263,11 +279,11 @@ _dl_close_worker (struct link_map *map, bool force) if (!used[i]) { - assert (imap->l_type == lt_loaded - && (imap->l_flags_1 & DF_1_NODELETE) == 0); + assert (imap->l_type == lt_loaded && !imap->l_nodelete_active); /* Call its termination function. Do not do it for - half-cooked objects. */ + half-cooked objects. Temporarily disable exception + handling, so that errors are fatal. */ if (imap->l_init_called) { /* When debugging print a message first. */ @@ -276,22 +292,9 @@ _dl_close_worker (struct link_map *map, bool force) _dl_debug_printf ("\ncalling fini: %s [%lu]\n\n", imap->l_name, nsid); - if (imap->l_info[DT_FINI_ARRAY] != NULL) - { - ElfW(Addr) *array = - (ElfW(Addr) *) (imap->l_addr - + imap->l_info[DT_FINI_ARRAY]->d_un.d_ptr); - unsigned int sz = (imap->l_info[DT_FINI_ARRAYSZ]->d_un.d_val - / sizeof (ElfW(Addr))); - - while (sz-- > 0) - ((fini_t) array[sz]) (); - } - - /* Next try the old-style destructor. */ - if (imap->l_info[DT_FINI] != NULL) - DL_CALL_DT_FINI (imap, ((void *) imap->l_addr - + imap->l_info[DT_FINI]->d_un.d_ptr)); + if (imap->l_info[DT_FINI_ARRAY] != NULL + || imap->l_info[DT_FINI] != NULL) + _dl_catch_exception (NULL, call_destructors, imap); } #ifdef SHARED @@ -302,8 +305,12 @@ _dl_close_worker (struct link_map *map, bool force) for (unsigned int cnt = 0; cnt < GLRO(dl_naudit); ++cnt) { if (afct->objclose != NULL) - /* Return value is ignored. */ - (void) afct->objclose (&imap->l_audit[cnt].cookie); + { + struct auditstate *state + = link_map_audit_state (imap, cnt); + /* Return value is ignored. */ + (void) afct->objclose (&state->cookie); + } afct = afct->next; } @@ -478,7 +485,10 @@ _dl_close_worker (struct link_map *map, bool force) for (unsigned int cnt = 0; cnt < GLRO(dl_naudit); ++cnt) { if (afct->activity != NULL) - afct->activity (&head->l_audit[cnt].cookie, LA_ACT_DELETE); + { + struct auditstate *state = link_map_audit_state (head, cnt); + afct->activity (&state->cookie, LA_ACT_DELETE); + } afct = afct->next; } @@ -746,6 +756,10 @@ _dl_close_worker (struct link_map *map, bool force) if (imap->l_runpath_dirs.dirs != (void *) -1) free (imap->l_runpath_dirs.dirs); + /* Clear GL(dl_initfirst) when freeing its link_map memory. */ + if (imap == GL(dl_initfirst)) + GL(dl_initfirst) = NULL; + free (imap); } } @@ -774,7 +788,10 @@ _dl_close_worker (struct link_map *map, bool force) for (unsigned int cnt = 0; cnt < GLRO(dl_naudit); ++cnt) { if (afct->activity != NULL) - afct->activity (&head->l_audit[cnt].cookie, LA_ACT_CONSISTENT); + { + struct auditstate *state = link_map_audit_state (head, cnt); + afct->activity (&state->cookie, LA_ACT_CONSISTENT); + } afct = afct->next; } @@ -816,7 +833,7 @@ _dl_close (void *_map) before we took the lock. There is no way to detect this (see below) so we proceed assuming this isn't the case. First see whether we can remove the object at all. */ - if (__glibc_unlikely (map->l_flags_1 & DF_1_NODELETE)) + if (__glibc_unlikely (map->l_nodelete_active)) { /* Nope. Do nothing. */ __rtld_lock_unlock_recursive (GL(dl_load_lock)); diff --git a/elf/dl-conflict.c b/elf/dl-conflict.c index bb8c228418..dc2c69d088 100644 --- a/elf/dl-conflict.c +++ b/elf/dl-conflict.c @@ -1,5 +1,5 @@ /* Resolve conflicts against already prelinked libraries. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; see the file COPYING.LIB. If - not, see . */ + not, see . */ #include #include diff --git a/elf/dl-debug.c b/elf/dl-debug.c index 1b2c778038..4b3d3ad6ba 100644 --- a/elf/dl-debug.c +++ b/elf/dl-debug.c @@ -1,5 +1,5 @@ /* Communicate dynamic linker state to the debugger at runtime. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/elf/dl-deps.c b/elf/dl-deps.c index e12c353158..5103a8a111 100644 --- a/elf/dl-deps.c +++ b/elf/dl-deps.c @@ -1,5 +1,5 @@ /* Load the dependencies of a mapped object. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/dl-dst.h b/elf/dl-dst.h index dc095f3018..0b2925a64a 100644 --- a/elf/dl-dst.h +++ b/elf/dl-dst.h @@ -1,5 +1,5 @@ /* Handling of dynamic sring tokens. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include "trusted-dirs.h" diff --git a/elf/dl-environ.c b/elf/dl-environ.c index ed2e5a8738..32f7c39c1c 100644 --- a/elf/dl-environ.c +++ b/elf/dl-environ.c @@ -1,5 +1,5 @@ /* Environment handling for dynamic loader. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/dl-error-minimal.c b/elf/dl-error-minimal.c index b5e0edee57..d5e83198ce 100644 --- a/elf/dl-error-minimal.c +++ b/elf/dl-error-minimal.c @@ -1,5 +1,5 @@ /* Error handling for runtime dynamic linker, minimal version. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This version does lives in ld.so, does not use thread-local data and supports _dl_signal_cerror and _dl_receive_error. */ diff --git a/elf/dl-error-skeleton.c b/elf/dl-error-skeleton.c index 248c185a74..c505c02adf 100644 --- a/elf/dl-error-skeleton.c +++ b/elf/dl-error-skeleton.c @@ -1,5 +1,5 @@ /* Template for error handling for runtime dynamic linker. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* The following macro needs to be defined before including this skeleton file: @@ -173,6 +173,18 @@ int _dl_catch_exception (struct dl_exception *exception, void (*operate) (void *), void *args) { + /* If exception is NULL, temporarily disable exception handling. + Exceptions during operate (args) are fatal. */ + if (exception == NULL) + { + struct catch *const old = catch_hook; + catch_hook = NULL; + operate (args); + /* If we get here, the operation was successful. */ + catch_hook = old; + return 0; + } + /* We need not handle `receiver' since setting a `catch' is handled before it. */ diff --git a/elf/dl-error.c b/elf/dl-error.c index f047618a07..e91561b785 100644 --- a/elf/dl-error.c +++ b/elf/dl-error.c @@ -1,5 +1,5 @@ /* Error handling for runtime dynamic linker, full version. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This implementation lives in libc.so because it uses thread-local data, which is not available in ld.so. It interposes the version diff --git a/elf/dl-exception.c b/elf/dl-exception.c index 7ee19a7fc8..d18110976c 100644 --- a/elf/dl-exception.c +++ b/elf/dl-exception.c @@ -1,5 +1,5 @@ /* ld.so error exception allocation and deallocation. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/dl-execstack.c b/elf/dl-execstack.c index bfd84d8e99..7e45c82f25 100644 --- a/elf/dl-execstack.c +++ b/elf/dl-execstack.c @@ -1,5 +1,5 @@ /* Stack executability handling for GNU dynamic linker. Stub version. - Copyright (C) 2003-2019 Free Software Foundation, Inc. + Copyright (C) 2003-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/dl-fini.c b/elf/dl-fini.c index 1e55d39814..226a6f077a 100644 --- a/elf/dl-fini.c +++ b/elf/dl-fini.c @@ -1,5 +1,5 @@ /* Call the termination functions of loaded shared objects. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -152,9 +152,12 @@ _dl_fini (void) for (unsigned int cnt = 0; cnt < GLRO(dl_naudit); ++cnt) { if (afct->objclose != NULL) - /* Return value is ignored. */ - (void) afct->objclose (&l->l_audit[cnt].cookie); - + { + struct auditstate *state + = link_map_audit_state (l, cnt); + /* Return value is ignored. */ + (void) afct->objclose (&state->cookie); + } afct = afct->next; } } diff --git a/elf/dl-fptr.c b/elf/dl-fptr.c index da0b734669..9fe2ef7a34 100644 --- a/elf/dl-fptr.c +++ b/elf/dl-fptr.c @@ -1,5 +1,5 @@ /* Manage function descriptors. Generic version. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/dl-hwcaps.c b/elf/dl-hwcaps.c index b1f7dc776f..71aea86700 100644 --- a/elf/dl-hwcaps.c +++ b/elf/dl-hwcaps.c @@ -1,5 +1,5 @@ /* Hardware capability support for run-time dynamic loader. - Copyright (C) 2012-2019 Free Software Foundation, Inc. + Copyright (C) 2012-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/dl-hwcaps.h b/elf/dl-hwcaps.h index fba5d4e20e..b66da59b89 100644 --- a/elf/dl-hwcaps.h +++ b/elf/dl-hwcaps.h @@ -1,5 +1,5 @@ /* Hardware capability support for run-time dynamic loader. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/elf/dl-init.c b/elf/dl-init.c index b437438b43..55d528c7a5 100644 --- a/elf/dl-init.c +++ b/elf/dl-init.c @@ -1,5 +1,5 @@ /* Run initializers for newly loaded objects. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/dl-iteratephdr.c b/elf/dl-iteratephdr.c index 6a0b7b57b3..7c783f5813 100644 --- a/elf/dl-iteratephdr.c +++ b/elf/dl-iteratephdr.c @@ -1,5 +1,5 @@ /* Get loaded objects program headers. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; see the file COPYING.LIB. If - not, see . */ + not, see . */ #include #include diff --git a/elf/dl-libc.c b/elf/dl-libc.c index 0fedee7ef5..24a715511a 100644 --- a/elf/dl-libc.c +++ b/elf/dl-libc.c @@ -1,5 +1,5 @@ /* Handle loading and unloading shared objects for internal libc purposes. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Zack Weinberg , 1999. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/dl-load.c b/elf/dl-load.c index 5abeb867f1..a6b80f9395 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c @@ -1,5 +1,5 @@ /* Map in a shared object's segments from the file. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -876,33 +876,43 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd, struct r_debug *r = _dl_debug_initialize (0, nsid); bool make_consistent = false; - /* Get file information. */ + /* Get file information. To match the kernel behavior, do not fill + in this information for the executable in case of an explicit + loader invocation. */ struct r_file_id id; - if (__glibc_unlikely (!_dl_get_file_id (fd, &id))) + if (mode & __RTLD_OPENEXEC) { - errstring = N_("cannot stat shared object"); - call_lose_errno: - errval = errno; - call_lose: - lose (errval, fd, name, realname, l, errstring, - make_consistent ? r : NULL, nsid); + assert (nsid == LM_ID_BASE); + memset (&id, 0, sizeof (id)); } + else + { + if (__glibc_unlikely (!_dl_get_file_id (fd, &id))) + { + errstring = N_("cannot stat shared object"); + call_lose_errno: + errval = errno; + call_lose: + lose (errval, fd, name, realname, l, errstring, + make_consistent ? r : NULL, nsid); + } - /* Look again to see if the real name matched another already loaded. */ - for (l = GL(dl_ns)[nsid]._ns_loaded; l != NULL; l = l->l_next) - if (!l->l_removed && _dl_file_id_match_p (&l->l_file_id, &id)) - { - /* The object is already loaded. - Just bump its reference count and return it. */ - __close_nocancel (fd); + /* Look again to see if the real name matched another already loaded. */ + for (l = GL(dl_ns)[nsid]._ns_loaded; l != NULL; l = l->l_next) + if (!l->l_removed && _dl_file_id_match_p (&l->l_file_id, &id)) + { + /* The object is already loaded. + Just bump its reference count and return it. */ + __close_nocancel (fd); - /* If the name is not in the list of names for this object add - it. */ - free (realname); - add_name_to_object (l, name); + /* If the name is not in the list of names for this object add + it. */ + free (realname); + add_name_to_object (l, name); - return l; - } + return l; + } + } #ifdef SHARED /* When loading into a namespace other than the base one we must @@ -963,7 +973,8 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd, for (unsigned int cnt = 0; cnt < GLRO(dl_naudit); ++cnt) { if (afct->activity != NULL) - afct->activity (&head->l_audit[cnt].cookie, LA_ACT_ADD); + afct->activity (&link_map_audit_state (head, cnt)->cookie, + LA_ACT_ADD); afct = afct->next; } @@ -1005,8 +1016,8 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd, else { phdr = alloca (maplength); - __lseek (fd, header->e_phoff, SEEK_SET); - if ((size_t) __read_nocancel (fd, (void *) phdr, maplength) != maplength) + if ((size_t) __pread64_nocancel (fd, (void *) phdr, maplength, + header->e_phoff) != maplength) { errstring = N_("cannot read file data"); goto call_lose_errno; @@ -1108,27 +1119,21 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd, offset. We will adjust it later. */ l->l_tls_initimage = (void *) ph->p_vaddr; - /* If not loading the initial set of shared libraries, - check whether we should permit loading a TLS segment. */ - if (__glibc_likely (l->l_type == lt_library) - /* If GL(dl_tls_dtv_slotinfo_list) == NULL, then rtld.c did - not set up TLS data structures, so don't use them now. */ - || __glibc_likely (GL(dl_tls_dtv_slotinfo_list) != NULL)) - { - /* Assign the next available module ID. */ - l->l_tls_modid = _dl_next_tls_modid (); - break; - } + /* l->l_tls_modid is assigned below, once there is no + possibility for failure. */ + if (l->l_type != lt_library + && GL(dl_tls_dtv_slotinfo_list) == NULL) + { #ifdef SHARED - /* We are loading the executable itself when the dynamic - linker was executed directly. The setup will happen - later. Otherwise, the TLS data structures are already - initialized, and we assigned a TLS modid above. */ - assert (l->l_prev == NULL || (mode & __RTLD_AUDIT) != 0); + /* We are loading the executable itself when the dynamic + linker was executed directly. The setup will happen + later. */ + assert (l->l_prev == NULL || (mode & __RTLD_AUDIT) != 0); #else - assert (false && "TLS not initialized in static application"); + assert (false && "TLS not initialized in static application"); #endif + } break; case PT_GNU_STACK: @@ -1369,6 +1374,18 @@ cannot enable executable stack as shared object requires"); add_name_to_object (l, ((const char *) D_PTR (l, l_info[DT_STRTAB]) + l->l_info[DT_SONAME]->d_un.d_val)); + /* _dl_close can only eventually undo the module ID assignment (via + remove_slotinfo) if this function returns a pointer to a link + map. Therefore, delay this step until all possibilities for + failure have been excluded. */ + if (l->l_tls_blocksize > 0 + && (__glibc_likely (l->l_type == lt_library) + /* If GL(dl_tls_dtv_slotinfo_list) == NULL, then rtld.c did + not set up TLS data structures, so don't use them now. */ + || __glibc_likely (GL(dl_tls_dtv_slotinfo_list) != NULL))) + /* Assign the next available module ID. */ + l->l_tls_modid = _dl_next_tls_modid (); + #ifdef DL_AFTER_LOAD DL_AFTER_LOAD (l); #endif @@ -1386,10 +1403,9 @@ cannot enable executable stack as shared object requires"); { if (afct->objopen != NULL) { - l->l_audit[cnt].bindflags - = afct->objopen (l, nsid, &l->l_audit[cnt].cookie); - - l->l_audit_any_plt |= l->l_audit[cnt].bindflags != 0; + struct auditstate *state = link_map_audit_state (l, cnt); + state->bindflags = afct->objopen (l, nsid, &state->cookie); + l->l_audit_any_plt |= state->bindflags != 0; } afct = afct->next; @@ -1495,8 +1511,8 @@ open_verify (const char *name, int fd, { if (afct->objsearch != NULL) { - name = afct->objsearch (name, &loader->l_audit[cnt].cookie, - whatcode); + struct auditstate *state = link_map_audit_state (loader, cnt); + name = afct->objsearch (name, &state->cookie, whatcode); if (name == NULL) /* Ignore the path. */ return -1; @@ -1636,17 +1652,6 @@ open_verify (const char *name, int fd, errstring = N_("only ET_DYN and ET_EXEC can be loaded"); goto call_lose; } - else if (__glibc_unlikely (ehdr->e_type == ET_EXEC - && (mode & __RTLD_OPENEXEC) == 0)) - { - /* BZ #16634. It is an error to dlopen ET_EXEC (unless - __RTLD_OPENEXEC is explicitly set). We return error here - so that code in _dl_map_object_from_fd does not try to set - l_tls_modid for this module. */ - - errstring = N_("cannot dynamically load executable"); - goto call_lose; - } else if (__glibc_unlikely (ehdr->e_phentsize != sizeof (ElfW(Phdr)))) { errstring = N_("ELF file's phentsize not the expected size"); @@ -1659,9 +1664,8 @@ open_verify (const char *name, int fd, else { phdr = alloca (maplength); - __lseek (fd, ehdr->e_phoff, SEEK_SET); - if ((size_t) __read_nocancel (fd, (void *) phdr, maplength) - != maplength) + if ((size_t) __pread64_nocancel (fd, (void *) phdr, maplength, + ehdr->e_phoff) != maplength) { read_error: errval = errno; @@ -1677,21 +1681,10 @@ open_verify (const char *name, int fd, /* Check .note.ABI-tag if present. */ for (ph = phdr; ph < &phdr[ehdr->e_phnum]; ++ph) - if (ph->p_type == PT_NOTE && ph->p_filesz >= 32 && ph->p_align >= 4) + if (ph->p_type == PT_NOTE && ph->p_filesz >= 32 + && (ph->p_align == 4 || ph->p_align == 8)) { ElfW(Addr) size = ph->p_filesz; - /* NB: Some PT_NOTE segment may have alignment value of 0 - or 1. gABI specifies that PT_NOTE segments should be - aligned to 4 bytes in 32-bit objects and to 8 bytes in - 64-bit objects. As a Linux extension, we also support - 4 byte alignment in 64-bit objects. If p_align is less - than 4, we treate alignment as 4 bytes since some note - segments have 0 or 1 byte alignment. */ - ElfW(Addr) align = ph->p_align; - if (align < 4) - align = 4; - else if (align != 4 && align != 8) - continue; if (ph->p_offset + size <= (size_t) fbp->len) abi_note = (void *) (fbp->buf + ph->p_offset); @@ -1710,8 +1703,8 @@ open_verify (const char *name, int fd, abi_note = abi_note_malloced; } - __lseek (fd, ph->p_offset, SEEK_SET); - if (__read_nocancel (fd, (void *) abi_note, size) != size) + if (__pread64_nocancel (fd, (void *) abi_note, size, + ph->p_offset) != size) { free (abi_note_malloced); goto read_error; @@ -1722,7 +1715,7 @@ open_verify (const char *name, int fd, { ElfW(Addr) note_size = ELF_NOTE_NEXT_OFFSET (abi_note[0], abi_note[1], - align); + ph->p_align); if (size - 32 < note_size) { @@ -1977,8 +1970,8 @@ _dl_map_object (struct link_map *loader, const char *name, if (afct->objsearch != NULL) { const char *before = name; - name = afct->objsearch (name, &loader->l_audit[cnt].cookie, - LA_SER_ORIG); + struct auditstate *state = link_map_audit_state (loader, cnt); + name = afct->objsearch (name, &state->cookie, LA_SER_ORIG); if (name == NULL) { /* Do not try anything further. */ diff --git a/elf/dl-load.h b/elf/dl-load.h index dddbcb8575..5786e17a2e 100644 --- a/elf/dl-load.h +++ b/elf/dl-load.h @@ -1,5 +1,5 @@ /* Map in a shared object's segments from the file. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _DL_LOAD_H #define _DL_LOAD_H 1 diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c index eb23cca4e3..378f28fa7d 100644 --- a/elf/dl-lookup.c +++ b/elf/dl-lookup.c @@ -1,5 +1,5 @@ /* Look up a symbol in the loaded objects. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -187,14 +187,37 @@ enter_unique_sym (struct unique_sym *table, size_t size, table[idx].map = map; } +/* Mark MAP as NODELETE according to the lookup mode in FLAGS. During + initial relocation, NODELETE state is pending only. */ +static void +mark_nodelete (struct link_map *map, int flags) +{ + if (flags & DL_LOOKUP_FOR_RELOCATE) + map->l_nodelete_pending = true; + else + map->l_nodelete_active = true; +} + +/* Return true if MAP is marked as NODELETE according to the lookup + mode in FLAGS> */ +static bool +is_nodelete (struct link_map *map, int flags) +{ + /* Non-pending NODELETE always counts. Pending NODELETE only counts + during initial relocation processing. */ + return map->l_nodelete_active + || ((flags & DL_LOOKUP_FOR_RELOCATE) && map->l_nodelete_pending); +} + /* Utility function for do_lookup_x. Lookup an STB_GNU_UNIQUE symbol in the unique symbol table, creating a new entry if necessary. Return the matching symbol in RESULT. */ static void do_lookup_unique (const char *undef_name, uint_fast32_t new_hash, - const struct link_map *map, struct sym_val *result, + struct link_map *map, struct sym_val *result, int type_class, const ElfW(Sym) *sym, const char *strtab, - const ElfW(Sym) *ref, const struct link_map *undef_map) + const ElfW(Sym) *ref, const struct link_map *undef_map, + int flags) { /* We have to determine whether we already found a symbol with this name before. If not then we have to add it to the search table. @@ -222,7 +245,7 @@ do_lookup_unique (const char *undef_name, uint_fast32_t new_hash, copy from the copy addressed through the relocation. */ result->s = sym; - result->m = (struct link_map *) map; + result->m = map; } else { @@ -310,10 +333,16 @@ do_lookup_unique (const char *undef_name, uint_fast32_t new_hash, enter_unique_sym (entries, size, new_hash, strtab + sym->st_name, sym, map); - if (map->l_type == lt_loaded) - /* Make sure we don't unload this object by - setting the appropriate flag. */ - ((struct link_map *) map)->l_flags_1 |= DF_1_NODELETE; + if (map->l_type == lt_loaded && !is_nodelete (map, flags)) + { + /* Make sure we don't unload this object by + setting the appropriate flag. */ + if (__glibc_unlikely (GLRO (dl_debug_mask) & DL_DEBUG_BINDINGS)) + _dl_debug_printf ("\ +marking %s [%lu] as NODELETE due to unique symbol\n", + map->l_name, map->l_ns); + mark_nodelete (map, flags); + } } ++tab->n_elements; @@ -403,7 +432,7 @@ do_lookup_x (const char *undef_name, uint_fast32_t new_hash, do if (((*hasharr ^ new_hash) >> 1) == 0) { - symidx = hasharr - map->l_gnu_chain_zero; + symidx = ELF_MACHINE_HASH_SYMIDX (map, hasharr); sym = check_match (undef_name, ref, version, flags, type_class, &symtab[symidx], symidx, strtab, map, &versioned_sym, @@ -525,8 +554,9 @@ do_lookup_x (const char *undef_name, uint_fast32_t new_hash, return 1; case STB_GNU_UNIQUE:; - do_lookup_unique (undef_name, new_hash, map, result, type_class, - sym, strtab, ref, undef_map); + do_lookup_unique (undef_name, new_hash, (struct link_map *) map, + result, type_class, sym, strtab, ref, + undef_map, flags); return 1; default: @@ -568,9 +598,13 @@ add_dependency (struct link_map *undef_map, struct link_map *map, int flags) if (undef_map == map) return 0; - /* Avoid references to objects which cannot be unloaded anyway. */ + /* Avoid references to objects which cannot be unloaded anyway. We + do not need to record dependencies if this object goes away + during dlopen failure, either. IFUNC resolvers with relocation + dependencies may pick an dependency which can be dlclose'd, but + such IFUNC resolvers are undefined anyway. */ assert (map->l_type == lt_loaded); - if ((map->l_flags_1 & DF_1_NODELETE) != 0) + if (is_nodelete (map, flags)) return 0; struct link_map_reldeps *l_reldeps @@ -678,16 +712,28 @@ add_dependency (struct link_map *undef_map, struct link_map *map, int flags) /* Redo the NODELETE check, as when dl_load_lock wasn't held yet this could have changed. */ - if ((map->l_flags_1 & DF_1_NODELETE) != 0) + if (is_nodelete (map, flags)) goto out; /* If the object with the undefined reference cannot be removed ever just make sure the same is true for the object which contains the definition. */ - if (undef_map->l_type != lt_loaded - || (undef_map->l_flags_1 & DF_1_NODELETE) != 0) + if (undef_map->l_type != lt_loaded || is_nodelete (map, flags)) { - map->l_flags_1 |= DF_1_NODELETE; + if (__glibc_unlikely (GLRO (dl_debug_mask) & DL_DEBUG_BINDINGS) + && !is_nodelete (map, flags)) + { + if (undef_map->l_name[0] == '\0') + _dl_debug_printf ("\ +marking %s [%lu] as NODELETE due to reference to main program\n", + map->l_name, map->l_ns); + else + _dl_debug_printf ("\ +marking %s [%lu] as NODELETE due to reference to %s [%lu]\n", + map->l_name, map->l_ns, + undef_map->l_name, undef_map->l_ns); + } + mark_nodelete (map, flags); goto out; } @@ -712,7 +758,15 @@ add_dependency (struct link_map *undef_map, struct link_map *map, int flags) no fatal problem. We simply make sure the referenced object cannot be unloaded. This is semantically the correct behavior. */ - map->l_flags_1 |= DF_1_NODELETE; + if (__glibc_unlikely (GLRO (dl_debug_mask) & DL_DEBUG_BINDINGS) + && !is_nodelete (map, flags)) + _dl_debug_printf ("\ +marking %s [%lu] as NODELETE due to memory allocation failure\n", + map->l_name, map->l_ns); + /* In case of non-lazy binding, we could actually report + the memory allocation error, but for now, we use the + conservative approximation as well. */ + mark_nodelete (map, flags); goto out; } else @@ -792,11 +846,9 @@ _dl_lookup_symbol_x (const char *undef_name, struct link_map *undef_map, bump_num_relocations (); - /* No other flag than DL_LOOKUP_ADD_DEPENDENCY or DL_LOOKUP_GSCOPE_LOCK - is allowed if we look up a versioned symbol. */ - assert (version == NULL - || (flags & ~(DL_LOOKUP_ADD_DEPENDENCY | DL_LOOKUP_GSCOPE_LOCK)) - == 0); + /* DL_LOOKUP_RETURN_NEWEST does not make sense for versioned + lookups. */ + assert (version == NULL || !(flags & DL_LOOKUP_RETURN_NEWEST)); size_t i = 0; if (__glibc_unlikely (skip_map != NULL)) @@ -909,10 +961,10 @@ _dl_setup_hash (struct link_map *map) { Elf_Symndx *hash; - if (__glibc_likely (map->l_info[ADDRIDX (DT_GNU_HASH)] != NULL)) + if (__glibc_likely (map->l_info[ELF_MACHINE_GNU_HASH_ADDRIDX] != NULL)) { Elf32_Word *hash32 - = (void *) D_PTR (map, l_info[ADDRIDX (DT_GNU_HASH)]); + = (void *) D_PTR (map, l_info[ELF_MACHINE_GNU_HASH_ADDRIDX]); map->l_nbuckets = *hash32++; Elf32_Word symbias = *hash32++; Elf32_Word bitmask_nwords = *hash32++; @@ -927,6 +979,10 @@ _dl_setup_hash (struct link_map *map) map->l_gnu_buckets = hash32; hash32 += map->l_nbuckets; map->l_gnu_chain_zero = hash32 - symbias; + + /* Initialize MIPS xhash translation table. */ + ELF_MACHINE_XHASH_SETUP (hash32, symbias, map); + return; } diff --git a/elf/dl-machine-reject-phdr.h b/elf/dl-machine-reject-phdr.h index 105c71a6a4..3f8f9fb89e 100644 --- a/elf/dl-machine-reject-phdr.h +++ b/elf/dl-machine-reject-phdr.h @@ -1,5 +1,5 @@ /* Machine-dependent program header inspection for the ELF loader. - Copyright (C) 2014-2019 Free Software Foundation, Inc. + Copyright (C) 2014-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _DL_MACHINE_REJECT_PHDR_H #define _DL_MACHINE_REJECT_PHDR_H 1 diff --git a/elf/dl-map-segments.h b/elf/dl-map-segments.h index a41f0667f0..ac9f09ab4c 100644 --- a/elf/dl-map-segments.h +++ b/elf/dl-map-segments.h @@ -1,5 +1,5 @@ /* Map in a shared object's segments. Generic version. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/elf/dl-minimal.c b/elf/dl-minimal.c index fdb1341832..42192f8a7b 100644 --- a/elf/dl-minimal.c +++ b/elf/dl-minimal.c @@ -1,5 +1,5 @@ /* Minimal replacements for basic facilities used in the dynamic linker. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/dl-misc.c b/elf/dl-misc.c index 2f08308bb6..e6cf247b46 100644 --- a/elf/dl-misc.c +++ b/elf/dl-misc.c @@ -1,5 +1,5 @@ /* Miscellaneous support functions for dynamic linker - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/dl-object.c b/elf/dl-object.c index c3f5455ab4..d2cdf135cc 100644 --- a/elf/dl-object.c +++ b/elf/dl-object.c @@ -1,5 +1,5 @@ /* Storage management for the chain of loaded shared objects. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -57,15 +57,31 @@ struct link_map * _dl_new_object (char *realname, const char *libname, int type, struct link_map *loader, int mode, Lmid_t nsid) { +#ifdef SHARED + unsigned int naudit; + if (__glibc_unlikely ((mode & __RTLD_OPENEXEC) != 0)) + { + assert (type == lt_executable); + assert (nsid == LM_ID_BASE); + + /* Ignore the specified libname for the main executable. It is + only known with an explicit loader invocation. */ + libname = ""; + + /* We create the map for the executable before we know whether + we have auditing libraries and if yes, how many. Assume the + worst. */ + naudit = DL_NNS; + } + else + naudit = GLRO (dl_naudit); +#endif + size_t libname_len = strlen (libname) + 1; struct link_map *new; struct libname_list *newname; #ifdef SHARED - /* We create the map for the executable before we know whether we have - auditing libraries and if yes, how many. Assume the worst. */ - unsigned int naudit = GLRO(dl_naudit) ?: ((mode & __RTLD_OPENEXEC) - ? DL_NNS : 0); - size_t audit_space = naudit * sizeof (new->l_audit[0]); + size_t audit_space = naudit * sizeof (struct auditstate); #else # define audit_space 0 #endif @@ -91,8 +107,20 @@ _dl_new_object (char *realname, const char *libname, int type, and won't get dumped during core file generation. Therefore to assist gdb and to create more self-contained core files we adjust l_name to point at the newly allocated copy (which will get dumped) instead of - the ld.so rodata copy. */ - new->l_name = *realname ? realname : (char *) newname->name + libname_len - 1; + the ld.so rodata copy. + + Furthermore, in case of explicit loader invocation, discard the + name of the main executable, to match the regular behavior, where + name of the executable is not known. */ +#ifdef SHARED + if (*realname != '\0' && (mode & __RTLD_OPENEXEC) == 0) +#else + if (*realname != '\0') +#endif + new->l_name = realname; + else + new->l_name = (char *) newname->name + libname_len - 1; + new->l_type = type; /* If we set the bit now since we know it is never used we avoid dirtying the cache line later. */ @@ -106,10 +134,8 @@ _dl_new_object (char *realname, const char *libname, int type, #ifdef SHARED for (unsigned int cnt = 0; cnt < naudit; ++cnt) - { - new->l_audit[cnt].cookie = (uintptr_t) new; - /* new->l_audit[cnt].bindflags = 0; */ - } + /* No need to initialize bindflags due to calloc. */ + link_map_audit_state (new, cnt)->cookie = (uintptr_t) new; #endif /* new->l_global = 0; We use calloc therefore not necessary. */ @@ -149,7 +175,14 @@ _dl_new_object (char *realname, const char *libname, int type, new->l_local_scope[0] = &new->l_searchlist; - /* Don't try to find the origin for the main map which has the name "". */ + /* Determine the origin. If allocating the link map for the main + executable, the realname is not known and "". In this case, the + origin needs to be determined by other means. However, in case + of an explicit loader invocation, the pathname of the main + executable is known and needs to be processed here: From the + point of view of the kernel, the main executable is the + dynamic loader, and this would lead to a computation of the wrong + origin. */ if (realname[0] != '\0') { size_t realname_len = strlen (realname) + 1; diff --git a/elf/dl-open.c b/elf/dl-open.c index e18ee398cb..623c9754eb 100644 --- a/elf/dl-open.c +++ b/elf/dl-open.c @@ -1,5 +1,5 @@ /* Load a shared object at runtime, relocate it, and run its initializer. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -50,22 +51,38 @@ struct dl_open_args struct link_map *map; /* Namespace ID. */ Lmid_t nsid; + + /* Original value of _ns_global_scope_pending_adds. Set by + dl_open_worker. Only valid if nsid is a real namespace + (non-negative). */ + unsigned int original_global_scope_pending_adds; + /* Original parameters to the program and the current environment. */ int argc; char **argv; char **env; }; +/* Called in case the global scope cannot be extended. */ +static void __attribute__ ((noreturn)) +add_to_global_resize_failure (struct link_map *new) +{ + _dl_signal_error (ENOMEM, new->l_libname->name, NULL, + N_ ("cannot extend global scope")); +} -static int -add_to_global (struct link_map *new) +/* Grow the global scope array for the namespace, so that all the new + global objects can be added later in add_to_global_update, without + risk of memory allocation failure. add_to_global_resize raises + exceptions for memory allocation errors. */ +static void +add_to_global_resize (struct link_map *new) { - struct link_map **new_global; - unsigned int to_add = 0; - unsigned int cnt; + struct link_namespaces *ns = &GL (dl_ns)[new->l_ns]; /* Count the objects we have to put in the global scope. */ - for (cnt = 0; cnt < new->l_searchlist.r_nlist; ++cnt) + unsigned int to_add = 0; + for (unsigned int cnt = 0; cnt < new->l_searchlist.r_nlist; ++cnt) if (new->l_searchlist.r_list[cnt]->l_global == 0) ++to_add; @@ -83,47 +100,51 @@ add_to_global (struct link_map *new) in an realloc() call. Therefore we allocate a completely new array the first time we have to add something to the locale scope. */ - struct link_namespaces *ns = &GL(dl_ns)[new->l_ns]; + if (__builtin_add_overflow (ns->_ns_global_scope_pending_adds, to_add, + &ns->_ns_global_scope_pending_adds)) + add_to_global_resize_failure (new); + + unsigned int new_size = 0; /* 0 means no new allocation. */ + void *old_global = NULL; /* Old allocation if free-able. */ + + /* Minimum required element count for resizing. Adjusted below for + an exponential resizing policy. */ + size_t required_new_size; + if (__builtin_add_overflow (ns->_ns_main_searchlist->r_nlist, + ns->_ns_global_scope_pending_adds, + &required_new_size)) + add_to_global_resize_failure (new); + if (ns->_ns_global_scope_alloc == 0) { - /* This is the first dynamic object given global scope. */ - ns->_ns_global_scope_alloc - = ns->_ns_main_searchlist->r_nlist + to_add + 8; - new_global = (struct link_map **) - malloc (ns->_ns_global_scope_alloc * sizeof (struct link_map *)); - if (new_global == NULL) - { - ns->_ns_global_scope_alloc = 0; - nomem: - _dl_signal_error (ENOMEM, new->l_libname->name, NULL, - N_("cannot extend global scope")); - return 1; - } + if (__builtin_add_overflow (required_new_size, 8, &new_size)) + add_to_global_resize_failure (new); + } + else if (required_new_size > ns->_ns_global_scope_alloc) + { + if (__builtin_mul_overflow (required_new_size, 2, &new_size)) + add_to_global_resize_failure (new); - /* Copy over the old entries. */ - ns->_ns_main_searchlist->r_list - = memcpy (new_global, ns->_ns_main_searchlist->r_list, - (ns->_ns_main_searchlist->r_nlist - * sizeof (struct link_map *))); + /* The old array was allocated with our malloc, not the minimal + malloc. */ + old_global = ns->_ns_main_searchlist->r_list; } - else if (ns->_ns_main_searchlist->r_nlist + to_add - > ns->_ns_global_scope_alloc) + + if (new_size > 0) { - /* We have to extend the existing array of link maps in the - main map. */ - struct link_map **old_global - = GL(dl_ns)[new->l_ns]._ns_main_searchlist->r_list; - size_t new_nalloc = ((ns->_ns_global_scope_alloc + to_add) * 2); - - new_global = (struct link_map **) - malloc (new_nalloc * sizeof (struct link_map *)); + size_t allocation_size; + if (__builtin_mul_overflow (new_size, sizeof (struct link_map *), + &allocation_size)) + add_to_global_resize_failure (new); + struct link_map **new_global = malloc (allocation_size); if (new_global == NULL) - goto nomem; + add_to_global_resize_failure (new); - memcpy (new_global, old_global, - ns->_ns_global_scope_alloc * sizeof (struct link_map *)); + /* Copy over the old entries. */ + memcpy (new_global, ns->_ns_main_searchlist->r_list, + ns->_ns_main_searchlist->r_nlist * sizeof (struct link_map *)); - ns->_ns_global_scope_alloc = new_nalloc; + ns->_ns_global_scope_alloc = new_size; ns->_ns_main_searchlist->r_list = new_global; if (!RTLD_SINGLE_THREAD_P) @@ -131,16 +152,28 @@ add_to_global (struct link_map *new) free (old_global); } +} + +/* Actually add the new global objects to the global scope. Must be + called after add_to_global_resize. This function cannot fail. */ +static void +add_to_global_update (struct link_map *new) +{ + struct link_namespaces *ns = &GL (dl_ns)[new->l_ns]; /* Now add the new entries. */ unsigned int new_nlist = ns->_ns_main_searchlist->r_nlist; - for (cnt = 0; cnt < new->l_searchlist.r_nlist; ++cnt) + for (unsigned int cnt = 0; cnt < new->l_searchlist.r_nlist; ++cnt) { struct link_map *map = new->l_searchlist.r_list[cnt]; if (map->l_global == 0) { map->l_global = 1; + + /* The array has been resized by add_to_global_resize. */ + assert (new_nlist < ns->_ns_global_scope_alloc); + ns->_ns_main_searchlist->r_list[new_nlist++] = map; /* We modify the global scope. Report this. */ @@ -149,10 +182,15 @@ add_to_global (struct link_map *new) map->l_name, map->l_ns); } } + + /* Some of the pending adds have been performed by the loop above. + Adjust the counter accordingly. */ + unsigned int added = new_nlist - ns->_ns_main_searchlist->r_nlist; + assert (added <= ns->_ns_global_scope_pending_adds); + ns->_ns_global_scope_pending_adds -= added; + atomic_write_barrier (); ns->_ns_main_searchlist->r_nlist = new_nlist; - - return 0; } /* Search link maps in all namespaces for the DSO that contains the object at @@ -177,6 +215,260 @@ _dl_find_dso_for_object (const ElfW(Addr) addr) } rtld_hidden_def (_dl_find_dso_for_object); +/* Return true if NEW is found in the scope for MAP. */ +static size_t +scope_has_map (struct link_map *map, struct link_map *new) +{ + size_t cnt; + for (cnt = 0; map->l_scope[cnt] != NULL; ++cnt) + if (map->l_scope[cnt] == &new->l_searchlist) + return true; + return false; +} + +/* Return the length of the scope for MAP. */ +static size_t +scope_size (struct link_map *map) +{ + size_t cnt; + for (cnt = 0; map->l_scope[cnt] != NULL; ) + ++cnt; + return cnt; +} + +/* Resize the scopes of depended-upon objects, so that the new object + can be added later without further allocation of memory. This + function can raise an exceptions due to malloc failure. */ +static void +resize_scopes (struct link_map *new) +{ + /* If the file is not loaded now as a dependency, add the search + list of the newly loaded object to the scope. */ + for (unsigned int i = 0; i < new->l_searchlist.r_nlist; ++i) + { + struct link_map *imap = new->l_searchlist.r_list[i]; + + /* If the initializer has been called already, the object has + not been loaded here and now. */ + if (imap->l_init_called && imap->l_type == lt_loaded) + { + if (scope_has_map (imap, new)) + /* Avoid duplicates. */ + continue; + + size_t cnt = scope_size (imap); + if (__glibc_unlikely (cnt + 1 >= imap->l_scope_max)) + { + /* The l_scope array is too small. Allocate a new one + dynamically. */ + size_t new_size; + struct r_scope_elem **newp; + + if (imap->l_scope != imap->l_scope_mem + && imap->l_scope_max < array_length (imap->l_scope_mem)) + { + /* If the current l_scope memory is not pointing to + the static memory in the structure, but the + static memory in the structure is large enough to + use for cnt + 1 scope entries, then switch to + using the static memory. */ + new_size = array_length (imap->l_scope_mem); + newp = imap->l_scope_mem; + } + else + { + new_size = imap->l_scope_max * 2; + newp = (struct r_scope_elem **) + malloc (new_size * sizeof (struct r_scope_elem *)); + if (newp == NULL) + _dl_signal_error (ENOMEM, "dlopen", NULL, + N_("cannot create scope list")); + } + + /* Copy the array and the terminating NULL. */ + memcpy (newp, imap->l_scope, + (cnt + 1) * sizeof (imap->l_scope[0])); + struct r_scope_elem **old = imap->l_scope; + + imap->l_scope = newp; + + if (old != imap->l_scope_mem) + _dl_scope_free (old); + + imap->l_scope_max = new_size; + } + } + } +} + +/* Second stage of resize_scopes: Add NEW to the scopes. Also print + debugging information about scopes if requested. + + This function cannot raise an exception because all required memory + has been allocated by a previous call to resize_scopes. */ +static void +update_scopes (struct link_map *new) +{ + for (unsigned int i = 0; i < new->l_searchlist.r_nlist; ++i) + { + struct link_map *imap = new->l_searchlist.r_list[i]; + int from_scope = 0; + + if (imap->l_init_called && imap->l_type == lt_loaded) + { + if (scope_has_map (imap, new)) + /* Avoid duplicates. */ + continue; + + size_t cnt = scope_size (imap); + /* Assert that resize_scopes has sufficiently enlarged the + array. */ + assert (cnt + 1 < imap->l_scope_max); + + /* First terminate the extended list. Otherwise a thread + might use the new last element and then use the garbage + at offset IDX+1. */ + imap->l_scope[cnt + 1] = NULL; + atomic_write_barrier (); + imap->l_scope[cnt] = &new->l_searchlist; + + from_scope = cnt; + } + + /* Print scope information. */ + if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES)) + _dl_show_scope (imap, from_scope); + } +} + +/* Call _dl_add_to_slotinfo with DO_ADD set to false, to allocate + space in GL (dl_tls_dtv_slotinfo_list). This can raise an + exception. The return value is true if any of the new objects use + TLS. */ +static bool +resize_tls_slotinfo (struct link_map *new) +{ + bool any_tls = false; + for (unsigned int i = 0; i < new->l_searchlist.r_nlist; ++i) + { + struct link_map *imap = new->l_searchlist.r_list[i]; + + /* Only add TLS memory if this object is loaded now and + therefore is not yet initialized. */ + if (! imap->l_init_called && imap->l_tls_blocksize > 0) + { + _dl_add_to_slotinfo (imap, false); + any_tls = true; + } + } + return any_tls; +} + +/* Second stage of TLS update, after resize_tls_slotinfo. This + function does not raise any exception. It should only be called if + resize_tls_slotinfo returned true. */ +static void +update_tls_slotinfo (struct link_map *new) +{ + unsigned int first_static_tls = new->l_searchlist.r_nlist; + for (unsigned int i = 0; i < new->l_searchlist.r_nlist; ++i) + { + struct link_map *imap = new->l_searchlist.r_list[i]; + + /* Only add TLS memory if this object is loaded now and + therefore is not yet initialized. */ + if (! imap->l_init_called && imap->l_tls_blocksize > 0) + { + _dl_add_to_slotinfo (imap, true); + + if (imap->l_need_tls_init + && first_static_tls == new->l_searchlist.r_nlist) + first_static_tls = i; + } + } + + if (__builtin_expect (++GL(dl_tls_generation) == 0, 0)) + _dl_fatal_printf (N_("\ +TLS generation counter wrapped! Please report this.")); + + /* We need a second pass for static tls data, because + _dl_update_slotinfo must not be run while calls to + _dl_add_to_slotinfo are still pending. */ + for (unsigned int i = first_static_tls; i < new->l_searchlist.r_nlist; ++i) + { + struct link_map *imap = new->l_searchlist.r_list[i]; + + if (imap->l_need_tls_init + && ! imap->l_init_called + && imap->l_tls_blocksize > 0) + { + /* For static TLS we have to allocate the memory here and + now, but we can delay updating the DTV. */ + imap->l_need_tls_init = 0; +#ifdef SHARED + /* Update the slot information data for at least the + generation of the DSO we are allocating data for. */ + + /* FIXME: This can terminate the process on memory + allocation failure. It is not possible to raise + exceptions from this context; to fix this bug, + _dl_update_slotinfo would have to be split into two + operations, similar to resize_scopes and update_scopes + above. This is related to bug 16134. */ + _dl_update_slotinfo (imap->l_tls_modid); +#endif + + GL(dl_init_static_tls) (imap); + assert (imap->l_need_tls_init == 0); + } + } +} + +/* Mark the objects as NODELETE if required. This is delayed until + after dlopen failure is not possible, so that _dl_close can clean + up objects if necessary. */ +static void +activate_nodelete (struct link_map *new) +{ + /* It is necessary to traverse the entire namespace. References to + objects in the global scope and unique symbol bindings can force + NODELETE status for objects outside the local scope. */ + for (struct link_map *l = GL (dl_ns)[new->l_ns]._ns_loaded; l != NULL; + l = l->l_next) + if (l->l_nodelete_pending) + { + if (__glibc_unlikely (GLRO (dl_debug_mask) & DL_DEBUG_FILES)) + _dl_debug_printf ("activating NODELETE for %s [%lu]\n", + l->l_name, l->l_ns); + + /* The flag can already be true at this point, e.g. a signal + handler may have triggered lazy binding and set NODELETE + status immediately. */ + l->l_nodelete_active = true; + + /* This is just a debugging aid, to indicate that + activate_nodelete has run for this map. */ + l->l_nodelete_pending = false; + } +} + +/* struct dl_init_args and call_dl_init are used to call _dl_init with + exception handling disabled. */ +struct dl_init_args +{ + struct link_map *new; + int argc; + char **argv; + char **env; +}; + +static void +call_dl_init (void *closure) +{ + struct dl_init_args *args = closure; + _dl_init (args->new, args->argc, args->argv, args->env); +} + static void dl_open_worker (void *a) { @@ -208,6 +500,10 @@ dl_open_worker (void *a) args->nsid = call_map->l_ns; } + /* Retain the old value, so that it can be restored. */ + args->original_global_scope_pending_adds + = GL (dl_ns)[args->nsid]._ns_global_scope_pending_adds; + /* One might be tempted to assert that we are RT_CONSISTENT at this point, but that may not be true if this is a recursive call to dlopen. */ _dl_debug_initialize (0, args->nsid); @@ -225,12 +521,6 @@ dl_open_worker (void *a) return; } - /* Mark the object as not deletable if the RTLD_NODELETE flags was passed. - Do this early so that we don't skip marking the object if it was - already loaded. */ - if (__glibc_unlikely (mode & RTLD_NODELETE)) - new->l_flags_1 |= DF_1_NODELETE; - if (__glibc_unlikely (mode & __RTLD_SPROF)) /* This happens only if we load a DSO for 'sprof'. */ return; @@ -246,16 +536,37 @@ dl_open_worker (void *a) _dl_debug_printf ("opening file=%s [%lu]; direct_opencount=%u\n\n", new->l_name, new->l_ns, new->l_direct_opencount); - /* If the user requested the object to be in the global namespace - but it is not so far, add it now. */ + /* If the user requested the object to be in the global + namespace but it is not so far, prepare to add it now. This + can raise an exception to do a malloc failure. */ + if ((mode & RTLD_GLOBAL) && new->l_global == 0) + add_to_global_resize (new); + + /* Mark the object as not deletable if the RTLD_NODELETE flags + was passed. */ + if (__glibc_unlikely (mode & RTLD_NODELETE)) + { + if (__glibc_unlikely (GLRO (dl_debug_mask) & DL_DEBUG_FILES) + && !new->l_nodelete_active) + _dl_debug_printf ("marking %s [%lu] as NODELETE\n", + new->l_name, new->l_ns); + new->l_nodelete_active = true; + } + + /* Finalize the addition to the global scope. */ if ((mode & RTLD_GLOBAL) && new->l_global == 0) - (void) add_to_global (new); + add_to_global_update (new); assert (_dl_debug_initialize (0, args->nsid)->r_state == RT_CONSISTENT); return; } + /* Schedule NODELETE marking for the directly loaded object if + requested. */ + if (__glibc_unlikely (mode & RTLD_NODELETE)) + new->l_nodelete_pending = true; + /* Load that object's dependencies. */ _dl_map_object_deps (new, NULL, 0, 0, mode & (__RTLD_DLOPEN | RTLD_DEEPBIND | __RTLD_AUDIT)); @@ -278,7 +589,10 @@ dl_open_worker (void *a) for (unsigned int cnt = 0; cnt < GLRO(dl_naudit); ++cnt) { if (afct->activity != NULL) - afct->activity (&head->l_audit[cnt].cookie, LA_ACT_CONSISTENT); + { + struct auditstate *state = link_map_audit_state (head, cnt); + afct->activity (&state->cookie, LA_ACT_CONSISTENT); + } afct = afct->next; } @@ -292,6 +606,8 @@ dl_open_worker (void *a) _dl_debug_state (); LIBC_PROBE (map_complete, 3, args->nsid, r, new); + _dl_open_check (new); + /* Print scope information. */ if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES)) _dl_show_scope (new, 0); @@ -327,6 +643,14 @@ dl_open_worker (void *a) int relocation_in_progress = 0; + /* Perform relocation. This can trigger lazy binding in IFUNC + resolvers. For NODELETE mappings, these dependencies are not + recorded because the flag has not been applied to the newly + loaded objects. This means that upon dlopen failure, these + NODELETE objects can be unloaded despite existing references to + them. However, such relocation dependencies in IFUNC resolvers + are undefined anyway, so this is not a problem. */ + for (unsigned int i = nmaps; i-- > 0; ) { l = maps[i]; @@ -356,7 +680,7 @@ dl_open_worker (void *a) _dl_start_profile (); /* Prevent unloading the object. */ - GL(dl_profile_map)->l_flags_1 |= DF_1_NODELETE; + GL(dl_profile_map)->l_nodelete_active = true; } } else @@ -364,139 +688,48 @@ dl_open_worker (void *a) _dl_relocate_object (l, l->l_scope, reloc_mode, 0); } - /* NB: Workaround for [BZ #20839] which doesn't remove the NODELETE - object when _dl_open_check throws an exception. Move it after - relocation to avoid leaving the NODELETE object mapped without - relocation. */ - _dl_open_check (new); - - /* If the file is not loaded now as a dependency, add the search - list of the newly loaded object to the scope. */ - bool any_tls = false; - unsigned int first_static_tls = new->l_searchlist.r_nlist; - for (unsigned int i = 0; i < new->l_searchlist.r_nlist; ++i) - { - struct link_map *imap = new->l_searchlist.r_list[i]; - int from_scope = 0; - - /* If the initializer has been called already, the object has - not been loaded here and now. */ - if (imap->l_init_called && imap->l_type == lt_loaded) - { - struct r_scope_elem **runp = imap->l_scope; - size_t cnt = 0; - - while (*runp != NULL) - { - if (*runp == &new->l_searchlist) - break; - ++cnt; - ++runp; - } - - if (*runp != NULL) - /* Avoid duplicates. */ - continue; - - if (__glibc_unlikely (cnt + 1 >= imap->l_scope_max)) - { - /* The 'r_scope' array is too small. Allocate a new one - dynamically. */ - size_t new_size; - struct r_scope_elem **newp; - -#define SCOPE_ELEMS(imap) \ - (sizeof (imap->l_scope_mem) / sizeof (imap->l_scope_mem[0])) - - if (imap->l_scope != imap->l_scope_mem - && imap->l_scope_max < SCOPE_ELEMS (imap)) - { - new_size = SCOPE_ELEMS (imap); - newp = imap->l_scope_mem; - } - else - { - new_size = imap->l_scope_max * 2; - newp = (struct r_scope_elem **) - malloc (new_size * sizeof (struct r_scope_elem *)); - if (newp == NULL) - _dl_signal_error (ENOMEM, "dlopen", NULL, - N_("cannot create scope list")); - } - - memcpy (newp, imap->l_scope, cnt * sizeof (imap->l_scope[0])); - struct r_scope_elem **old = imap->l_scope; - - imap->l_scope = newp; - - if (old != imap->l_scope_mem) - _dl_scope_free (old); - - imap->l_scope_max = new_size; - } - - /* First terminate the extended list. Otherwise a thread - might use the new last element and then use the garbage - at offset IDX+1. */ - imap->l_scope[cnt + 1] = NULL; - atomic_write_barrier (); - imap->l_scope[cnt] = &new->l_searchlist; - - /* Print only new scope information. */ - from_scope = cnt; - } - /* Only add TLS memory if this object is loaded now and - therefore is not yet initialized. */ - else if (! imap->l_init_called - /* Only if the module defines thread local data. */ - && __builtin_expect (imap->l_tls_blocksize > 0, 0)) - { - /* Now that we know the object is loaded successfully add - modules containing TLS data to the slot info table. We - might have to increase its size. */ - _dl_add_to_slotinfo (imap); - - if (imap->l_need_tls_init - && first_static_tls == new->l_searchlist.r_nlist) - first_static_tls = i; - - /* We have to bump the generation counter. */ - any_tls = true; - } - - /* Print scope information. */ - if (__glibc_unlikely (GLRO(dl_debug_mask) & DL_DEBUG_SCOPES)) - _dl_show_scope (imap, from_scope); - } - - /* Bump the generation number if necessary. */ - if (any_tls && __builtin_expect (++GL(dl_tls_generation) == 0, 0)) - _dl_fatal_printf (N_("\ -TLS generation counter wrapped! Please report this.")); + /* This only performs the memory allocations. The actual update of + the scopes happens below, after failure is impossible. */ + resize_scopes (new); - /* We need a second pass for static tls data, because _dl_update_slotinfo - must not be run while calls to _dl_add_to_slotinfo are still pending. */ - for (unsigned int i = first_static_tls; i < new->l_searchlist.r_nlist; ++i) - { - struct link_map *imap = new->l_searchlist.r_list[i]; - - if (imap->l_need_tls_init - && ! imap->l_init_called - && imap->l_tls_blocksize > 0) - { - /* For static TLS we have to allocate the memory here and - now, but we can delay updating the DTV. */ - imap->l_need_tls_init = 0; -#ifdef SHARED - /* Update the slot information data for at least the - generation of the DSO we are allocating data for. */ - _dl_update_slotinfo (imap->l_tls_modid); -#endif + /* Increase the size of the GL (dl_tls_dtv_slotinfo_list) data + structure. */ + bool any_tls = resize_tls_slotinfo (new); - GL(dl_init_static_tls) (imap); - assert (imap->l_need_tls_init == 0); - } - } + /* Perform the necessary allocations for adding new global objects + to the global scope below. */ + if (mode & RTLD_GLOBAL) + add_to_global_resize (new); + + /* Demarcation point: After this, no recoverable errors are allowed. + All memory allocations for new objects must have happened + before. */ + + /* Finalize the NODELETE status first. This comes before + update_scopes, so that lazy binding will not see pending NODELETE + state for newly loaded objects. There is a compiler barrier in + update_scopes which ensures that the changes from + activate_nodelete are visible before new objects show up in the + local scope. */ + activate_nodelete (new); + + /* Second stage after resize_scopes: Actually perform the scope + update. After this, dlsym and lazy binding can bind to new + objects. */ + update_scopes (new); + + /* FIXME: It is unclear whether the order here is correct. + Shouldn't new objects be made available for binding (and thus + execution) only after there TLS data has been set up fully? + Fixing bug 16134 will likely make this distinction less + important. */ + + /* Second stage after resize_tls_slotinfo: Update the slotinfo data + structures. */ + if (any_tls) + /* FIXME: This calls _dl_update_slotinfo, which aborts the process + on memory allocation failure. See bug 16134. */ + update_tls_slotinfo (new); /* Notify the debugger all new objects have been relocated. */ if (relocation_in_progress) @@ -506,15 +739,28 @@ TLS generation counter wrapped! Please report this.")); DL_STATIC_INIT (new); #endif - /* Run the initializer functions of new objects. */ - _dl_init (new, args->argc, args->argv, args->env); + /* Perform the necessary allocations for adding new global objects + to the global scope below, via add_to_global_update. */ + if (mode & RTLD_GLOBAL) + add_to_global_resize (new); + + /* Run the initializer functions of new objects. Temporarily + disable the exception handler, so that lazy binding failures are + fatal. */ + { + struct dl_init_args init_args = + { + .new = new, + .argc = args->argc, + .argv = args->argv, + .env = args->env + }; + _dl_catch_exception (NULL, call_dl_init, &init_args); + } /* Now we can make the new map available in the global scope. */ if (mode & RTLD_GLOBAL) - /* Move the object in the global namespace. */ - if (add_to_global (new) != 0) - /* It failed. */ - return; + add_to_global_update (new); #ifndef SHARED /* We must be the static _dl_open in libc.a. A static program that @@ -528,7 +774,6 @@ TLS generation counter wrapped! Please report this.")); new->l_name, new->l_ns, new->l_direct_opencount); } - void * _dl_open (const char *file, int mode, const void *caller_dlopen, Lmid_t nsid, int argc, char *argv[], char *env[]) @@ -596,6 +841,19 @@ no more namespaces available for dlmopen()")); _dl_unload_cache (); #endif + /* Do this for both the error and success cases. The old value has + only been determined if the namespace ID was assigned (i.e., it + is not __LM_ID_CALLER). In the success case, we actually may + have consumed more pending adds than planned (because the local + scopes overlap in case of a recursive dlopen, the inner dlopen + doing some of the globalization work of the outer dlopen), so the + old pending adds value is larger than absolutely necessary. + Since it is just a conservative upper bound, this is harmless. + The top-level dlopen call will restore the field to zero. */ + if (args.nsid >= 0) + GL (dl_ns)[args.nsid]._ns_global_scope_pending_adds + = args.original_global_scope_pending_adds; + /* See if an error occurred during loading. */ if (__glibc_unlikely (exception.errstring != NULL)) { @@ -614,6 +872,10 @@ no more namespaces available for dlmopen()")); GL(dl_tls_dtv_gaps) = true; _dl_close_worker (args.map, true); + + /* All l_nodelete_pending objects should have been deleted + at this point, which is why it is not necessary to reset + the flag here. */ } assert (_dl_debug_initialize (0, args.nsid)->r_state == RT_CONSISTENT); diff --git a/elf/dl-origin.c b/elf/dl-origin.c index 243b3d0fdf..0831c46983 100644 --- a/elf/dl-origin.c +++ b/elf/dl-origin.c @@ -1,5 +1,5 @@ /* Find path of executable. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/dl-profile.c b/elf/dl-profile.c index 42995305af..c681f5415c 100644 --- a/elf/dl-profile.c +++ b/elf/dl-profile.c @@ -1,5 +1,5 @@ /* Profiling of shared libraries. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. Based on the BSD mcount implementation. @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/dl-profstub.c b/elf/dl-profstub.c index dc413365a1..9f27da254e 100644 --- a/elf/dl-profstub.c +++ b/elf/dl-profstub.c @@ -1,5 +1,5 @@ /* Helper definitions for profiling of shared libraries. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/dl-reloc-static-pie.c b/elf/dl-reloc-static-pie.c index 95aee984e8..382482fa73 100644 --- a/elf/dl-reloc-static-pie.c +++ b/elf/dl-reloc-static-pie.c @@ -1,5 +1,5 @@ /* Support for relocating static PIE. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #if ENABLE_STATIC_PIE #include diff --git a/elf/dl-reloc.c b/elf/dl-reloc.c index e7fb8da276..ffcc84d396 100644 --- a/elf/dl-reloc.c +++ b/elf/dl-reloc.c @@ -1,5 +1,5 @@ /* Relocate a shared object and resolve its references to other loaded objects. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -244,7 +244,8 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[], v = (version); \ _lr = _dl_lookup_symbol_x (strtab + (*ref)->st_name, l, (ref), \ scope, v, _tc, \ - DL_LOOKUP_ADD_DEPENDENCY, NULL); \ + DL_LOOKUP_ADD_DEPENDENCY \ + | DL_LOOKUP_FOR_RELOCATE, NULL); \ l->l_lookup_cache.ret = (*ref); \ l->l_lookup_cache.value = _lr; })) \ : l) diff --git a/elf/dl-runtime.c b/elf/dl-runtime.c index 42a2539e64..cf5f1d3e82 100644 --- a/elf/dl-runtime.c +++ b/elf/dl-runtime.c @@ -1,5 +1,5 @@ /* On-demand PLT fixup for shared objects. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define IN_DL_RUNTIME 1 /* This can be tested in dl-machine.h. */ @@ -325,15 +325,18 @@ _dl_profile_fixup ( { /* XXX Check whether both DSOs must request action or only one */ - if ((l->l_audit[cnt].bindflags & LA_FLG_BINDFROM) != 0 - && (result->l_audit[cnt].bindflags & LA_FLG_BINDTO) != 0) + struct auditstate *l_state = link_map_audit_state (l, cnt); + struct auditstate *result_state + = link_map_audit_state (result, cnt); + if ((l_state->bindflags & LA_FLG_BINDFROM) != 0 + && (result_state->bindflags & LA_FLG_BINDTO) != 0) { if (afct->symbind != NULL) { uintptr_t new_value = afct->symbind (&sym, reloc_result->boundndx, - &l->l_audit[cnt].cookie, - &result->l_audit[cnt].cookie, + &l_state->cookie, + &result_state->cookie, &flags, strtab2 + defsym->st_name); if (new_value != (uintptr_t) sym.st_value) @@ -421,10 +424,13 @@ _dl_profile_fixup ( & (LA_SYMB_NOPLTENTER << (2 * (cnt + 1)))) == 0) { long int new_framesize = -1; + struct auditstate *l_state = link_map_audit_state (l, cnt); + struct auditstate *bound_state + = link_map_audit_state (reloc_result->bound, cnt); uintptr_t new_value = afct->ARCH_LA_PLTENTER (&sym, reloc_result->boundndx, - &l->l_audit[cnt].cookie, - &reloc_result->bound->l_audit[cnt].cookie, + &l_state->cookie, + &bound_state->cookie, regs, &flags, symname, &new_framesize); if (new_value != (uintptr_t) sym.st_value) @@ -504,9 +510,11 @@ _dl_call_pltexit (struct link_map *l, ElfW(Word) reloc_arg, && (reloc_result->enterexit & (LA_SYMB_NOPLTEXIT >> (2 * cnt))) == 0) { + struct auditstate *l_state = link_map_audit_state (l, cnt); + struct auditstate *bound_state + = link_map_audit_state (reloc_result->bound, cnt); afct->ARCH_LA_PLTEXIT (&sym, reloc_result->boundndx, - &l->l_audit[cnt].cookie, - &reloc_result->bound->l_audit[cnt].cookie, + &l_state->cookie, &bound_state->cookie, inregs, outregs, symname); } diff --git a/elf/dl-scope.c b/elf/dl-scope.c index 2b9143fea0..b20a882799 100644 --- a/elf/dl-scope.c +++ b/elf/dl-scope.c @@ -1,5 +1,5 @@ /* Memory handling for the scope data structures. - Copyright (C) 2009-2019 Free Software Foundation, Inc. + Copyright (C) 2009-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/dl-sort-maps.c b/elf/dl-sort-maps.c index 26b3fd93a3..86f1e23c85 100644 --- a/elf/dl-sort-maps.c +++ b/elf/dl-sort-maps.c @@ -1,5 +1,5 @@ /* Sort array of link maps according to dependencies. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/elf/dl-support.c b/elf/dl-support.c index 0a8b636d02..7704c101c5 100644 --- a/elf/dl-support.c +++ b/elf/dl-support.c @@ -1,5 +1,5 @@ /* Support for dynamic linking code in static libc. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This file defines some things that for the dynamic linker are defined in rtld.c and dl-sysdep.c in ways appropriate to bootstrap dynamic linking. */ @@ -34,6 +34,9 @@ #include #include #include +#include +#include +#include extern char *__progname; char **_dl_argv = &__progname; /* This is checked for some error messages. */ @@ -201,6 +204,8 @@ struct link_map *_dl_sysinfo_map; # include "get-dynamic-info.h" #endif #include "setup-vdso.h" +/* Define the vDSO function pointers. */ +#include /* During the program run we must not modify the global data of loaded shared object simultanously in two threads. Therefore we @@ -289,9 +294,7 @@ _dl_aux_init (ElfW(auxv_t) *av) case AT_RANDOM: _dl_random = (void *) av->a_un.a_val; break; -# ifdef DL_PLATFORM_AUXV DL_PLATFORM_AUXV -# endif } if (seen == 0xf) { @@ -315,6 +318,9 @@ _dl_non_dynamic_init (void) so they can influence _dl_init_paths. */ setup_vdso (NULL, NULL); + /* With vDSO setup we can initialize the function pointers. */ + setup_vdso_pointers (); + /* Initialize the data structures for the search paths for shared objects. */ _dl_init_paths (getenv ("LD_LIBRARY_PATH")); @@ -367,14 +373,24 @@ _dl_non_dynamic_init (void) if (_dl_platform != NULL) _dl_platformlen = strlen (_dl_platform); - /* Scan for a program header telling us the stack is nonexecutable. */ if (_dl_phdr != NULL) - for (uint_fast16_t i = 0; i < _dl_phnum; ++i) - if (_dl_phdr[i].p_type == PT_GNU_STACK) + for (const ElfW(Phdr) *ph = _dl_phdr; ph < &_dl_phdr[_dl_phnum]; ++ph) + switch (ph->p_type) { - _dl_stack_flags = _dl_phdr[i].p_flags; + /* Check if the stack is nonexecutable. */ + case PT_GNU_STACK: + _dl_stack_flags = ph->p_flags; + break; + + case PT_GNU_RELRO: + _dl_main_map.l_relro_addr = ph->p_vaddr; + _dl_main_map.l_relro_size = ph->p_memsz; break; } + + /* Setup relro on the binary itself. */ + if (_dl_main_map.l_relro_size != 0) + _dl_protect_relro (&_dl_main_map); } #ifdef DL_SYSINFO_IMPLEMENTATION diff --git a/elf/dl-sym.c b/elf/dl-sym.c index 19a9b95b47..b43a50e544 100644 --- a/elf/dl-sym.c +++ b/elf/dl-sym.c @@ -1,5 +1,5 @@ /* Look up a symbol in a shared object loaded by `dlopen'. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -80,6 +80,18 @@ call_dl_lookup (void *ptr) args->flags, NULL); } +/* Return the link map containing the caller address. */ +static inline struct link_map * +find_caller_link_map (ElfW(Addr) caller) +{ + struct link_map *l = _dl_find_dso_for_object (caller); + if (l != NULL) + return l; + else + /* If the address is not recognized the call comes from the main + program (we hope). */ + return GL(dl_ns)[LM_ID_BASE]._ns_loaded; +} static void * do_sym (void *handle, const char *name, void *who, @@ -89,13 +101,13 @@ do_sym (void *handle, const char *name, void *who, lookup_t result; ElfW(Addr) caller = (ElfW(Addr)) who; - struct link_map *l = _dl_find_dso_for_object (caller); - /* If the address is not recognized the call comes from the main - program (we hope). */ - struct link_map *match = l ? l : GL(dl_ns)[LM_ID_BASE]._ns_loaded; + /* Link map of the caller if needed. */ + struct link_map *match = NULL; if (handle == RTLD_DEFAULT) { + match = find_caller_link_map (caller); + /* Search the global scope. We have the simple case where we look up in the scope of an object which was part of the initial binary. And then the more complex part @@ -128,6 +140,8 @@ do_sym (void *handle, const char *name, void *who, } else if (handle == RTLD_NEXT) { + match = find_caller_link_map (caller); + if (__glibc_unlikely (match == GL(dl_ns)[LM_ID_BASE]._ns_loaded)) { if (match == NULL @@ -187,6 +201,9 @@ RTLD_NEXT used in code not dynamically loaded")); unsigned int ndx = (ref - (ElfW(Sym) *) D_PTR (result, l_info[DT_SYMTAB])); + if (match == NULL) + match = find_caller_link_map (caller); + if ((match->l_audit_any_plt | result->l_audit_any_plt) != 0) { unsigned int altvalue = 0; @@ -198,17 +215,20 @@ RTLD_NEXT used in code not dynamically loaded")); for (unsigned int cnt = 0; cnt < GLRO(dl_naudit); ++cnt) { + struct auditstate *match_audit + = link_map_audit_state (match, cnt); + struct auditstate *result_audit + = link_map_audit_state (result, cnt); if (afct->symbind != NULL - && ((match->l_audit[cnt].bindflags & LA_FLG_BINDFROM) - != 0 - || ((result->l_audit[cnt].bindflags & LA_FLG_BINDTO) + && ((match_audit->bindflags & LA_FLG_BINDFROM) != 0 + || ((result_audit->bindflags & LA_FLG_BINDTO) != 0))) { unsigned int flags = altvalue | LA_SYMB_DLSYM; uintptr_t new_value = afct->symbind (&sym, ndx, - &match->l_audit[cnt].cookie, - &result->l_audit[cnt].cookie, + &match_audit->cookie, + &result_audit->cookie, &flags, strtab + ref->st_name); if (new_value != (uintptr_t) sym.st_value) { diff --git a/elf/dl-symaddr.c b/elf/dl-symaddr.c index 4850da2dd5..973f9b850a 100644 --- a/elf/dl-symaddr.c +++ b/elf/dl-symaddr.c @@ -1,5 +1,5 @@ /* Get the symbol address. Generic version. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/dl-sysdep-open.h b/elf/dl-sysdep-open.h index acbe3cfc6e..b1778db7c9 100644 --- a/elf/dl-sysdep-open.h +++ b/elf/dl-sysdep-open.h @@ -1,5 +1,5 @@ /* System-specific call to open a shared object by name. Stub version. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _DL_SYSDEP_OPEN_H #define _DL_SYSDEP_OPEN_H 1 diff --git a/elf/dl-sysdep.c b/elf/dl-sysdep.c index 5d19b100b2..854570821c 100644 --- a/elf/dl-sysdep.c +++ b/elf/dl-sysdep.c @@ -1,5 +1,5 @@ /* Operating system support for run-time dynamic linker. Generic Unix version. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* We conditionalize the whole of this file rather than simply eliding it from the static build, because other sysdeps/ versions of this file @@ -45,6 +45,7 @@ #include #include +#include extern char **_environ attribute_hidden; extern char _end[] attribute_hidden; @@ -180,9 +181,7 @@ _dl_sysdep_start (void **start_argptr, case AT_RANDOM: _dl_random = (void *) av->a_un.a_val; break; -#ifdef DL_PLATFORM_AUXV DL_PLATFORM_AUXV -#endif } #ifndef HAVE_AUX_SECURE diff --git a/elf/dl-tls.c b/elf/dl-tls.c index b425d661be..fa03234610 100644 --- a/elf/dl-tls.c +++ b/elf/dl-tls.c @@ -1,5 +1,5 @@ /* Thread-local storage handling in the ELF dynamic linker. Generic version. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -883,7 +883,7 @@ _dl_tls_get_addr_soft (struct link_map *l) void -_dl_add_to_slotinfo (struct link_map *l) +_dl_add_to_slotinfo (struct link_map *l, bool do_add) { /* Now that we know the object is loaded successfully add modules containing TLS data to the dtv info table. We @@ -939,6 +939,9 @@ cannot create TLS data structures")); } /* Add the information into the slotinfo data structure. */ - listp->slotinfo[idx].map = l; - listp->slotinfo[idx].gen = GL(dl_tls_generation) + 1; + if (do_add) + { + listp->slotinfo[idx].map = l; + listp->slotinfo[idx].gen = GL(dl_tls_generation) + 1; + } } diff --git a/elf/dl-tunable-types.h b/elf/dl-tunable-types.h index 07c982d7fb..4bfa1625cd 100644 --- a/elf/dl-tunable-types.h +++ b/elf/dl-tunable-types.h @@ -1,6 +1,6 @@ /* Tunable type information. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _TUNABLE_TYPES_H_ # define _TUNABLE_TYPES_H_ diff --git a/elf/dl-tunables.c b/elf/dl-tunables.c index b0980c5ad9..44d06665b4 100644 --- a/elf/dl-tunables.c +++ b/elf/dl-tunables.c @@ -1,7 +1,7 @@ /* The tunable framework. See the README.tunables to know how to use the tunable in a glibc module. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -45,12 +45,11 @@ tunables_strdup (const char *in) while (in[i++] != '\0'); char *out = __sbrk (i); - /* FIXME: In reality if the allocation fails, __sbrk will crash attempting to - set the thread-local errno since the TCB has not yet been set up. This - needs to be fixed with an __sbrk implementation that does not set - errno. */ + /* For most of the tunables code, we ignore user errors. However, + this is a system error - and running out of memory at program + startup should be reported, so we do. */ if (out == (void *)-1) - return NULL; + _dl_fatal_printf ("sbrk() failure while processing tunables\n"); i--; diff --git a/elf/dl-tunables.h b/elf/dl-tunables.h index 58b3b76843..969e50327b 100644 --- a/elf/dl-tunables.h +++ b/elf/dl-tunables.h @@ -1,7 +1,7 @@ /* The tunable framework. See the README to know how to use the tunable in a glibc module. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _TUNABLES_H_ #define _TUNABLES_H_ diff --git a/elf/dl-tunables.list b/elf/dl-tunables.list index 1fc2d8886b..0d398dd251 100644 --- a/elf/dl-tunables.list +++ b/elf/dl-tunables.list @@ -1,4 +1,4 @@ -# Copyright (C) 2016-2019 Free Software Foundation, Inc. +# Copyright (C) 2016-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # Allowed attributes for tunables: # @@ -85,6 +85,11 @@ glibc { tcache_unsorted_limit { type: SIZE_T } + mxfast { + type: SIZE_T + minval: 0 + security_level: SXID_IGNORE + } } cpu { hwcap_mask { diff --git a/elf/dl-unmap-segments.h b/elf/dl-unmap-segments.h index 90ffb0852f..9f5f794366 100644 --- a/elf/dl-unmap-segments.h +++ b/elf/dl-unmap-segments.h @@ -1,5 +1,5 @@ /* Unmap a shared object's segments. Generic version. - Copyright (C) 2014-2019 Free Software Foundation, Inc. + Copyright (C) 2014-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _DL_UNMAP_SEGMENTS_H #define _DL_UNMAP_SEGMENTS_H 1 diff --git a/elf/dl-version.c b/elf/dl-version.c index 53c0af3d15..0f8bdcdb53 100644 --- a/elf/dl-version.c +++ b/elf/dl-version.c @@ -1,5 +1,5 @@ /* Handle symbol and library versioning. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/dl-writev.h b/elf/dl-writev.h index 3990361493..81c3e94c13 100644 --- a/elf/dl-writev.h +++ b/elf/dl-writev.h @@ -1,5 +1,5 @@ /* Message-writing for the dynamic linker. Generic version. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/do-rel.h b/elf/do-rel.h index 242ef95be2..1d0a1f2c5d 100644 --- a/elf/do-rel.h +++ b/elf/do-rel.h @@ -1,5 +1,5 @@ /* Do relocations for ELF dynamic linking. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This file may be included twice, to define both `elf_dynamic_do_rel' and `elf_dynamic_do_rela'. */ diff --git a/elf/dynamic-link.h b/elf/dynamic-link.h index 454b0e388c..bb7a66f4cd 100644 --- a/elf/dynamic-link.h +++ b/elf/dynamic-link.h @@ -1,5 +1,5 @@ /* Inline functions for dynamic linking. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This macro is used as a callback from elf_machine_rel{a,} when a static TLS reloc is about to be performed. Since (in dl-load.c) we diff --git a/elf/elf.h b/elf/elf.h index 7c6d6094ed..2549a177d6 100644 --- a/elf/elf.h +++ b/elf/elf.h @@ -1,5 +1,5 @@ /* This file defines standard ELF types, structures, and macros. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _ELF_H #define _ELF_H 1 @@ -1715,6 +1715,7 @@ typedef struct #define SHT_MIPS_EH_REGION 0x70000027 #define SHT_MIPS_XLATE_OLD 0x70000028 #define SHT_MIPS_PDR_EXCEPTION 0x70000029 +#define SHT_MIPS_XHASH 0x7000002b /* Legal values for sh_flags field of Elf32_Shdr. */ @@ -1962,7 +1963,9 @@ typedef struct in a PIE as it stores a relative offset from the address of the tag rather than an absolute address. */ #define DT_MIPS_RLD_MAP_REL 0x70000035 -#define DT_MIPS_NUM 0x36 +/* GNU-style hash table with xlat. */ +#define DT_MIPS_XHASH 0x70000036 +#define DT_MIPS_NUM 0x37 /* Legal values for DT_MIPS_FLAGS Elf32_Dyn entry. */ diff --git a/elf/enbl-secure.c b/elf/enbl-secure.c index 61c0b27ad8..f668ee9a2a 100644 --- a/elf/enbl-secure.c +++ b/elf/enbl-secure.c @@ -1,5 +1,5 @@ /* Define and initialize the `__libc_enable_secure' flag. Generic version. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This file is used in the static libc. For the shared library, dl-sysdep.c defines and initializes __libc_enable_secure. */ diff --git a/elf/get-dynamic-info.h b/elf/get-dynamic-info.h index 75fbb88f78..4f6a86ef37 100644 --- a/elf/get-dynamic-info.h +++ b/elf/get-dynamic-info.h @@ -1,5 +1,5 @@ /* Read the dynamic section at DYN and fill in INFO with indices DT_*. - Copyright (C) 2012-2019 Free Software Foundation, Inc. + Copyright (C) 2012-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This file is included multiple times and therefore lacks a header file inclusion guard. */ @@ -163,6 +163,8 @@ elf_get_dynamic_info (struct link_map *l, ElfW(Dyn) *temp) if (info[VERSYMIDX (DT_FLAGS_1)] != NULL) { l->l_flags_1 = info[VERSYMIDX (DT_FLAGS_1)]->d_un.d_val; + if (l->l_flags_1 & DF_1_NODELETE) + l->l_nodelete_pending = true; /* Only DT_1_SUPPORTED_MASK bits are supported, and we would like to assert this, but we can't. Users have been setting diff --git a/elf/ifuncmain9.c b/elf/ifuncmain9.c index a8a9c49dd1..0d3429341c 100644 --- a/elf/ifuncmain9.c +++ b/elf/ifuncmain9.c @@ -1,5 +1,5 @@ /* Test for IFUNC handling with local definitions. - Copyright (C) 2019 Free Software Foundation, Inc. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This test is based on gcc.dg/attr-ifunc-4.c. */ diff --git a/elf/interp.c b/elf/interp.c index 243829f5f7..331cc1df48 100644 --- a/elf/interp.c +++ b/elf/interp.c @@ -1,5 +1,5 @@ /* interp - add information about dynamic loader to shared library objects. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/elf/ldconfig.c b/elf/ldconfig.c index 3bc9e61891..681ed78496 100644 --- a/elf/ldconfig.c +++ b/elf/ldconfig.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2019 Free Software Foundation, Inc. +/* Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Andreas Jaeger , 1999. @@ -13,7 +13,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, see . */ + along with this program; if not, see . */ #define PROCINFO_CLASS static #include @@ -325,7 +325,7 @@ print_version (FILE *stream, struct argp_state *state) Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\ -"), "2019"); +"), "2020"); fprintf (stream, gettext ("Written by %s.\n"), "Andreas Jaeger"); } @@ -1079,9 +1079,10 @@ parse_conf (const char *filename, bool do_chroot) if (file == NULL) { - error (0, errno, _("\ + if (errno != ENOENT) + error (0, errno, _("\ Warning: ignoring configuration file that cannot be opened: %s"), - canon); + canon); if (canon != filename) free ((char *) canon); return; diff --git a/elf/ldd.bash.in b/elf/ldd.bash.in index 32ec62eda6..467cbf44e9 100644 --- a/elf/ldd.bash.in +++ b/elf/ldd.bash.in @@ -1,5 +1,5 @@ #! @BASH@ -# Copyright (C) 1996-2019 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # This is the `ldd' command, which lists what shared libraries are @@ -38,7 +38,7 @@ while test $# -gt 0; do printf $"Copyright (C) %s Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -" "2019" +" "2020" printf $"Written by %s and %s. " "Roland McGrath" "Ulrich Drepper" exit 0 @@ -167,7 +167,7 @@ warning: you do not have execution permission for" "\`$file'" >&2 1) # This can be a non-ELF binary or no binary at all. nonelf "$file" || { - echo $" not a dynamic executable" + echo $" not a dynamic executable" >&2 result=1 } ;; diff --git a/elf/link.h b/elf/link.h index 7a463bc2bf..0048ad5d4d 100644 --- a/elf/link.h +++ b/elf/link.h @@ -1,6 +1,6 @@ /* Data structure for communication from the run-time dynamic linker for loaded ELF shared objects. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _LINK_H #define _LINK_H 1 diff --git a/elf/pldd-xx.c b/elf/pldd-xx.c index 756f6d7a1c..657b393f20 100644 --- a/elf/pldd-xx.c +++ b/elf/pldd-xx.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2019 Free Software Foundation, Inc. +/* Copyright (C) 2011-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define E(name) E_(name, CLASS) #define E_(name, cl) E__(name, cl) diff --git a/elf/pldd.c b/elf/pldd.c index 69629bd5d2..dcf621d35d 100644 --- a/elf/pldd.c +++ b/elf/pldd.c @@ -1,5 +1,5 @@ /* List dynamic shared objects linked into given process. - Copyright (C) 2011-2019 Free Software Foundation, Inc. + Copyright (C) 2011-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define _FILE_OFFSET_BITS 64 @@ -264,7 +264,7 @@ print_version (FILE *stream, struct argp_state *state) Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\ -"), "2019"); +"), "2020"); fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper"); } diff --git a/elf/readelflib.c b/elf/readelflib.c index ca4dc6f11e..5905f6d344 100644 --- a/elf/readelflib.c +++ b/elf/readelflib.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2019 Free Software Foundation, Inc. +/* Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Andreas Jaeger , 1999 and Jakub Jelinek , 1999. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This code is a heavily simplified version of the readelf program that's part of the current binutils development version. For architectures @@ -45,7 +45,6 @@ process_elf_file (const char *file_name, const char *lib, int *flag, { int i; unsigned int j; - ElfW(Addr) loadaddr; unsigned int dynamic_addr; size_t dynamic_size; char *program_interpreter; @@ -87,7 +86,6 @@ process_elf_file (const char *file_name, const char *lib, int *flag, libc5/libc6. */ *flag = FLAG_ELF; - loadaddr = -1; dynamic_addr = 0; dynamic_size = 0; program_interpreter = NULL; @@ -98,11 +96,6 @@ process_elf_file (const char *file_name, const char *lib, int *flag, switch (segment->p_type) { - case PT_LOAD: - if (loadaddr == (ElfW(Addr)) -1) - loadaddr = segment->p_vaddr - segment->p_offset; - break; - case PT_DYNAMIC: if (dynamic_addr) error (0, 0, _("more than one dynamic segment\n")); @@ -176,11 +169,6 @@ process_elf_file (const char *file_name, const char *lib, int *flag, } } - if (loadaddr == (ElfW(Addr)) -1) - { - /* Very strange. */ - loadaddr = 0; - } /* Now we can read the dynamic sections. */ if (dynamic_size == 0) @@ -197,7 +185,29 @@ process_elf_file (const char *file_name, const char *lib, int *flag, check_ptr (dyn_entry); if (dyn_entry->d_tag == DT_STRTAB) { - dynamic_strings = (char *) (file_contents + dyn_entry->d_un.d_val - loadaddr); + /* Find the file offset of the segment containing the dynamic + string table. */ + ElfW(Off) loadoff = -1; + for (i = 0, segment = elf_pheader; + i < elf_header->e_phnum; i++, segment++) + { + if (segment->p_type == PT_LOAD + && dyn_entry->d_un.d_val >= segment->p_vaddr + && (dyn_entry->d_un.d_val - segment->p_vaddr + < segment->p_filesz)) + { + loadoff = segment->p_vaddr - segment->p_offset; + break; + } + } + if (loadoff == (ElfW(Off)) -1) + { + /* Very strange. */ + loadoff = 0; + } + + dynamic_strings = (char *) (file_contents + dyn_entry->d_un.d_val + - loadoff); check_ptr (dynamic_strings); break; } diff --git a/elf/readlib.c b/elf/readlib.c index c9743e6692..994a4426a1 100644 --- a/elf/readlib.c +++ b/elf/readlib.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2019 Free Software Foundation, Inc. +/* Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Andreas Jaeger , 1999 and Jakub Jelinek , 1999. @@ -14,7 +14,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, see . */ + along with this program; if not, see . */ /* The code in this file and in readelflib is a heavily simplified version of the readelf program that's part of the current binutils diff --git a/elf/rtld-Rules b/elf/rtld-Rules index 2dfee6827a..7e0254cc41 100644 --- a/elf/rtld-Rules +++ b/elf/rtld-Rules @@ -1,6 +1,6 @@ # Subroutine makefile for compiling libc modules linked into dynamic linker. -# Copyright (C) 2002-2019 Free Software Foundation, Inc. +# Copyright (C) 2002-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # This makefile is never used by itself, but only from the rtld-libc.a # rule in Makefile, which does make -f librtld.mk -f rtld-Rules. diff --git a/elf/rtld.c b/elf/rtld.c index c9490ff694..553cfbd1b7 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -1,5 +1,5 @@ /* Run time dynamic linker. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -39,6 +39,8 @@ #include #include #include +#include +#include #include #include #include @@ -833,7 +835,7 @@ security_init (void) _dl_random = NULL; } -#include "setup-vdso.h" +#include /* The library search path. */ static const char *library_path attribute_relro; @@ -1008,13 +1010,7 @@ ERROR: audit interface '%s' requires version %d (maximum supported version %d); /* Store the pointer. */ if (err_str == NULL && largs.result != NULL) - { - newp->fptr[cnt] = largs.result; - - /* The dynamic linker link map is statically allocated, - initialize the data now. */ - GL(dl_rtld_map).l_audit[cnt].cookie = (intptr_t) &GL(dl_rtld_map); - } + newp->fptr[cnt] = largs.result; else newp->fptr[cnt] = NULL; ++cnt; @@ -1030,6 +1026,12 @@ ERROR: audit interface '%s' requires version %d (maximum supported version %d); *last_audit = GLRO(dl_audit) = &newp->ifaces; else *last_audit = (*last_audit)->next = &newp->ifaces; + + /* The dynamic linker link map is statically allocated, so the + cookie in _dl_new_object has not happened. */ + link_map_audit_state (&GL (dl_rtld_map), GLRO (dl_naudit))->cookie + = (intptr_t) &GL (dl_rtld_map); + ++GLRO(dl_naudit); /* Mark the DSO as being used for auditing. */ @@ -1046,9 +1048,9 @@ notify_audit_modules_of_loaded_object (struct link_map *map) { if (afct->objopen != NULL) { - map->l_audit[cnt].bindflags - = afct->objopen (map, LM_ID_BASE, &map->l_audit[cnt].cookie); - map->l_audit_any_plt |= map->l_audit[cnt].bindflags != 0; + struct auditstate *state = link_map_audit_state (map, cnt); + state->bindflags = afct->objopen (map, LM_ID_BASE, &state->cookie); + map->l_audit_any_plt |= state->bindflags != 0; } afct = afct->next; @@ -1538,6 +1540,9 @@ ERROR: '%s': cannot process note segment.\n", _dl_argv[0]); so they can influence _dl_init_paths. */ setup_vdso (main_map, &first_preload); + /* With vDSO setup we can initialize the function pointers. */ + setup_vdso_pointers (); + #ifdef DL_SYSDEP_OSCHECK DL_SYSDEP_OSCHECK (_dl_fatal_printf); #endif @@ -1662,7 +1667,8 @@ ERROR: '%s': cannot process note segment.\n", _dl_argv[0]); for (unsigned int cnt = 0; cnt < GLRO(dl_naudit); ++cnt) { if (afct->activity != NULL) - afct->activity (&main_map->l_audit[cnt].cookie, LA_ACT_ADD); + afct->activity (&link_map_audit_state (main_map, cnt)->cookie, + LA_ACT_ADD); afct = afct->next; } @@ -2214,7 +2220,7 @@ ERROR: '%s': cannot process note segment.\n", _dl_argv[0]); /* Add object to slot information data if necessasy. */ if (l->l_tls_blocksize != 0 && tls_init_tp_called) - _dl_add_to_slotinfo (l); + _dl_add_to_slotinfo (l, true); } } else @@ -2259,7 +2265,7 @@ ERROR: '%s': cannot process note segment.\n", _dl_argv[0]); /* Add object to slot information data if necessasy. */ if (l->l_tls_blocksize != 0 && tls_init_tp_called) - _dl_add_to_slotinfo (l); + _dl_add_to_slotinfo (l, true); } rtld_timer_stop (&relocate_time, start); @@ -2333,7 +2339,8 @@ ERROR: '%s': cannot process note segment.\n", _dl_argv[0]); for (unsigned int cnt = 0; cnt < GLRO(dl_naudit); ++cnt) { if (afct->activity != NULL) - afct->activity (&head->l_audit[cnt].cookie, LA_ACT_CONSISTENT); + afct->activity (&link_map_audit_state (head, cnt)->cookie, + LA_ACT_CONSISTENT); afct = afct->next; } diff --git a/elf/setup-vdso.h b/elf/setup-vdso.h index 53be502024..d0c3dd0916 100644 --- a/elf/setup-vdso.h +++ b/elf/setup-vdso.h @@ -1,5 +1,5 @@ /* Set up the data structures for the system-supplied DSO. - Copyright (C) 2012-2019 Free Software Foundation, Inc. + Copyright (C) 2012-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ static inline void __attribute__ ((always_inline)) setup_vdso (struct link_map *main_map __attribute__ ((unused)), diff --git a/elf/sln.c b/elf/sln.c index 57d29e94e2..f6fbda764e 100644 --- a/elf/sln.c +++ b/elf/sln.c @@ -1,5 +1,5 @@ /* `sln' program to create symbolic links between files. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/sotruss-lib.c b/elf/sotruss-lib.c index d1c9a95baa..eea797752e 100644 --- a/elf/sotruss-lib.c +++ b/elf/sotruss-lib.c @@ -1,5 +1,5 @@ /* Trace calls through PLTs and show caller, callee, and parameters. - Copyright (C) 2011-2019 Free Software Foundation, Inc. + Copyright (C) 2011-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/sotruss.sh b/elf/sotruss.sh index 6e06eae00c..bfce293214 100755 --- a/elf/sotruss.sh +++ b/elf/sotruss.sh @@ -1,5 +1,5 @@ #! @BASH@ -# Copyright (C) 2011-2019 Free Software Foundation, Inc. +# Copyright (C) 2011-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # We should be able to find the translation right at the beginning. TEXTDOMAIN=libc @@ -75,7 +75,7 @@ while test $# -gt 0; do printf $"Copyright (C) %s Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -" "2019" +" "2020" printf $"Written by %s.\n" "Ulrich Drepper" exit 0 ;; diff --git a/elf/sprof.c b/elf/sprof.c index 06d5ca2aff..364d7069ec 100644 --- a/elf/sprof.c +++ b/elf/sprof.c @@ -1,5 +1,5 @@ /* Read and display shared object profiling data. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -88,7 +88,7 @@ static const struct argp_option options[] = /* Short description of program. */ static const char doc[] = N_("Read and display shared object profiling data."); //For bug reporting instructions, please see:\n -//.\n"); +//.\n"); /* Strings for arguments in help texts. */ static const char args_doc[] = N_("SHOBJ [PROFDATA]"); @@ -391,7 +391,7 @@ Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\ "), - "2019"); + "2020"); fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper"); } diff --git a/elf/static-stubs.c b/elf/static-stubs.c index c100cb1455..336479bec3 100644 --- a/elf/static-stubs.c +++ b/elf/static-stubs.c @@ -1,6 +1,6 @@ /* Stub implementations of functions to link into statically linked programs without needing libgcc_eh. - Copyright (C) 2012-2019 Free Software Foundation, Inc. + Copyright (C) 2012-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Avoid backtrace (and so _Unwind_Backtrace) dependencies from sysdeps/unix/sysv/linux/libc_fatal.c. */ diff --git a/elf/tlsdeschtab.h b/elf/tlsdeschtab.h index 1154fd3c07..6238aea713 100644 --- a/elf/tlsdeschtab.h +++ b/elf/tlsdeschtab.h @@ -1,5 +1,5 @@ /* Hash table for TLS descriptors. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Alexandre Oliva @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef TLSDESCHTAB_H # define TLSDESCHTAB_H 1 diff --git a/elf/tst-_dl_addr_inside_object.c b/elf/tst-_dl_addr_inside_object.c index a603fe01ff..a2166cc212 100644 --- a/elf/tst-_dl_addr_inside_object.c +++ b/elf/tst-_dl_addr_inside_object.c @@ -1,5 +1,5 @@ /* Unit test for _dl_addr_inside_object. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-absolute-sym-lib.c b/elf/tst-absolute-sym-lib.c index e0becab58e..65daf73080 100644 --- a/elf/tst-absolute-sym-lib.c +++ b/elf/tst-absolute-sym-lib.c @@ -1,5 +1,5 @@ /* BZ #19818 absolute symbol calculation shared module. - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ extern char absolute; diff --git a/elf/tst-absolute-sym-lib.lds b/elf/tst-absolute-sym-lib.lds index fcb990116a..7f5f2e4757 100644 --- a/elf/tst-absolute-sym-lib.lds +++ b/elf/tst-absolute-sym-lib.lds @@ -1,5 +1,5 @@ /* BZ #19818 absolute symbol calculation linker script. - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,6 +14,6 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ "absolute" = 0x55aa; diff --git a/elf/tst-absolute-sym.c b/elf/tst-absolute-sym.c index c641f7ecdf..bbabf9cafb 100644 --- a/elf/tst-absolute-sym.c +++ b/elf/tst-absolute-sym.c @@ -1,5 +1,5 @@ /* BZ #19818 absolute symbol calculation main executable. - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-absolute-zero-lib.c b/elf/tst-absolute-zero-lib.c index b04a05de79..55e9017f7f 100644 --- a/elf/tst-absolute-zero-lib.c +++ b/elf/tst-absolute-zero-lib.c @@ -1,5 +1,5 @@ /* BZ #23307 absolute zero symbol calculation shared module. - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ extern char absolute; diff --git a/elf/tst-absolute-zero.c b/elf/tst-absolute-zero.c index 59ab099d01..63a3487e12 100644 --- a/elf/tst-absolute-zero.c +++ b/elf/tst-absolute-zero.c @@ -1,5 +1,5 @@ /* BZ #23307 absolute zero symbol calculation main executable. - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-align.c b/elf/tst-align.c index 0bf8087e90..2d2952cacd 100644 --- a/elf/tst-align.c +++ b/elf/tst-align.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2019 Free Software Foundation, Inc. +/* Copyright (C) 2003-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek , 2003. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-align2.c b/elf/tst-align2.c index 6bfb577124..1f37628622 100644 --- a/elf/tst-align2.c +++ b/elf/tst-align2.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek , 2005. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-alignmod.c b/elf/tst-alignmod.c index 3f5f3ae9b6..e8de483a4a 100644 --- a/elf/tst-alignmod.c +++ b/elf/tst-alignmod.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2019 Free Software Foundation, Inc. +/* Copyright (C) 2003-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek , 2003. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-alignmod2.c b/elf/tst-alignmod2.c index 7428c5f8ca..fef803096c 100644 --- a/elf/tst-alignmod2.c +++ b/elf/tst-alignmod2.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2019 Free Software Foundation, Inc. +/* Copyright (C) 2003-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek , 2003. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-audit11.c b/elf/tst-audit11.c index f17d9c66e9..0564dacd52 100644 --- a/elf/tst-audit11.c +++ b/elf/tst-audit11.c @@ -1,5 +1,5 @@ /* Test version symbol binding can find a DSO replaced by la_objsearch. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-audit11mod1.c b/elf/tst-audit11mod1.c index 370be9d5d4..f384d23b06 100644 --- a/elf/tst-audit11mod1.c +++ b/elf/tst-audit11mod1.c @@ -1,5 +1,5 @@ /* DSO directly opened by tst-audit11. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ extern int f2 (void); int diff --git a/elf/tst-audit11mod2.c b/elf/tst-audit11mod2.c index dc23feed58..6c88fe3427 100644 --- a/elf/tst-audit11mod2.c +++ b/elf/tst-audit11mod2.c @@ -1,5 +1,5 @@ /* DSO indirectly opened by tst-audit11, with symbol versioning. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ int f2 (void) diff --git a/elf/tst-audit11mod2.map b/elf/tst-audit11mod2.map index 9d471fbcdf..7386b6177a 100644 --- a/elf/tst-audit11mod2.map +++ b/elf/tst-audit11mod2.map @@ -1,5 +1,5 @@ /* Symbol versioning for the DSO indirectly opened by tst-audit11. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ V1 { global: f2; diff --git a/elf/tst-audit12.c b/elf/tst-audit12.c index cd10b914b5..3c0f7cd37a 100644 --- a/elf/tst-audit12.c +++ b/elf/tst-audit12.c @@ -1,5 +1,5 @@ /* Test that symbol is bound to a DSO replaced by la_objsearch. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-audit12mod1.c b/elf/tst-audit12mod1.c index 095d2d649f..e898af8a74 100644 --- a/elf/tst-audit12mod1.c +++ b/elf/tst-audit12mod1.c @@ -1,5 +1,5 @@ /* DSO directly opened by tst-audit12. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ extern int f2 (void); int diff --git a/elf/tst-audit12mod2.c b/elf/tst-audit12mod2.c index 21b40a8718..93d4761762 100644 --- a/elf/tst-audit12mod2.c +++ b/elf/tst-audit12mod2.c @@ -1,5 +1,5 @@ /* Replaced DSO referenced by tst-audit12mod1.so, for tst-audit12. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ int f2 (void) diff --git a/elf/tst-audit12mod2.map b/elf/tst-audit12mod2.map index f7bf90df31..79d8e8b774 100644 --- a/elf/tst-audit12mod2.map +++ b/elf/tst-audit12mod2.map @@ -1,5 +1,5 @@ /* Symbol versioning for tst-audit12mod2.so used by tst-audit12. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ V1 { global: f2; diff --git a/elf/tst-audit12mod3.c b/elf/tst-audit12mod3.c index df3c9909c1..94dc6a1884 100644 --- a/elf/tst-audit12mod3.c +++ b/elf/tst-audit12mod3.c @@ -1,5 +1,5 @@ /* Replacement DSO loaded by the audit module, for tst-audit12. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ int f2 (void) diff --git a/elf/tst-audit13.c b/elf/tst-audit13.c index 6f587baf58..db66f0694c 100644 --- a/elf/tst-audit13.c +++ b/elf/tst-audit13.c @@ -1,5 +1,5 @@ /* Check for invalid audit version (BZ#24122). - Copyright (C) 2019 Free Software Foundation, Inc. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/elf/tst-audit13mod1.c b/elf/tst-audit13mod1.c index cf017e235c..1fe8f16ea8 100644 --- a/elf/tst-audit13mod1.c +++ b/elf/tst-audit13mod1.c @@ -1,5 +1,5 @@ /* Check for invalid audit version (BZ#24122). - Copyright (C) 2019 Free Software Foundation, Inc. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-auditmany.c b/elf/tst-auditmany.c new file mode 100644 index 0000000000..0eb3770e81 --- /dev/null +++ b/elf/tst-auditmany.c @@ -0,0 +1,26 @@ +/* Check cookie initialization for many auditors. Main program. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* It does not make sense to use the test harness for this test + because the testing happens in auditors. */ + +int +main (void) +{ + return 0; +} diff --git a/elf/tst-auditmanymod.h b/elf/tst-auditmanymod.h new file mode 100644 index 0000000000..3a0c80a229 --- /dev/null +++ b/elf/tst-auditmanymod.h @@ -0,0 +1,64 @@ +/* Check cookie initialization for many auditors. Auditor template. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* The macro MOD must be defined to the number of this auditor (an + integer) before including this file. */ + +#include +#include +#include + +/* Error counter for delayed error reporting. */ +static int errors; + +unsigned int +la_version (unsigned int version) +{ + return version; +} + +unsigned int +la_objopen (struct link_map *map, Lmid_t lmid, + uintptr_t *cookie) +{ + struct link_map *cookie_map = (struct link_map *) *cookie; + printf ("info: %d, la_objopen: map=%p name=%s cookie=%p:%p diff=%td\n", + MOD, map, map->l_name, cookie, cookie_map, + (char *) cookie - (char *) map); + fflush (stdout); + if (map != cookie_map) + { + printf ("error: %d, la_objopen:" + " map address does not match cookie value\n", + MOD); + fflush (stdout); + ++errors; + } + return 0; +} + +extern unsigned int +la_objclose (uintptr_t *__cookie) +{ + if (errors != 0) + { + printf ("error: exiting due to previous errors"); + _exit (1); + } + return 0; +} diff --git a/sysdeps/unix/sysv/linux/ia64/ipc_priv.h b/elf/tst-auditmanymod1.c similarity index 75% rename from sysdeps/unix/sysv/linux/ia64/ipc_priv.h rename to elf/tst-auditmanymod1.c index 6b2438cd03..bcad54a5b3 100644 --- a/sysdeps/unix/sysv/linux/ia64/ipc_priv.h +++ b/elf/tst-auditmanymod1.c @@ -1,5 +1,5 @@ -/* Old SysV permission definition for Linux. IA64 version. - Copyright (C) 2017-2019 Free Software Foundation, Inc. +/* Check cookie initialization for many auditors. Auditor 1. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,8 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ -#include /* For __key_t */ - -#define __IPC_64 0x0 +#define MOD 1 +#include "tst-auditmanymod.h" diff --git a/elf/tst-auditmanymod2.c b/elf/tst-auditmanymod2.c new file mode 100644 index 0000000000..e2c4bee0be --- /dev/null +++ b/elf/tst-auditmanymod2.c @@ -0,0 +1,20 @@ +/* Check cookie initialization for many auditors. Auditor 2. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#define MOD 2 +#include "tst-auditmanymod.h" diff --git a/elf/tst-auditmanymod3.c b/elf/tst-auditmanymod3.c new file mode 100644 index 0000000000..5aca66c81e --- /dev/null +++ b/elf/tst-auditmanymod3.c @@ -0,0 +1,20 @@ +/* Check cookie initialization for many auditors. Auditor 3. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#define MOD 3 +#include "tst-auditmanymod.h" diff --git a/elf/tst-auditmanymod4.c b/elf/tst-auditmanymod4.c new file mode 100644 index 0000000000..ef7c06c6de --- /dev/null +++ b/elf/tst-auditmanymod4.c @@ -0,0 +1,20 @@ +/* Check cookie initialization for many auditors. Auditor 4. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#define MOD 4 +#include "tst-auditmanymod.h" diff --git a/elf/tst-auditmanymod5.c b/elf/tst-auditmanymod5.c new file mode 100644 index 0000000000..7e7f901476 --- /dev/null +++ b/elf/tst-auditmanymod5.c @@ -0,0 +1,20 @@ +/* Check cookie initialization for many auditors. Auditor 5. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#define MOD 5 +#include "tst-auditmanymod.h" diff --git a/elf/tst-auditmanymod6.c b/elf/tst-auditmanymod6.c new file mode 100644 index 0000000000..09a42c2e9e --- /dev/null +++ b/elf/tst-auditmanymod6.c @@ -0,0 +1,20 @@ +/* Check cookie initialization for many auditors. Auditor 6. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#define MOD 6 +#include "tst-auditmanymod.h" diff --git a/elf/tst-auditmanymod7.c b/elf/tst-auditmanymod7.c new file mode 100644 index 0000000000..6d4b68780a --- /dev/null +++ b/elf/tst-auditmanymod7.c @@ -0,0 +1,20 @@ +/* Check cookie initialization for many auditors. Auditor 7. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#define MOD 7 +#include "tst-auditmanymod.h" diff --git a/elf/tst-auditmanymod8.c b/elf/tst-auditmanymod8.c new file mode 100644 index 0000000000..e97510fcb1 --- /dev/null +++ b/elf/tst-auditmanymod8.c @@ -0,0 +1,20 @@ +/* Check cookie initialization for many auditors. Auditor 8. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#define MOD 8 +#include "tst-auditmanymod.h" diff --git a/elf/tst-auditmanymod9.c b/elf/tst-auditmanymod9.c new file mode 100644 index 0000000000..8ec296b8f4 --- /dev/null +++ b/elf/tst-auditmanymod9.c @@ -0,0 +1,20 @@ +/* Check cookie initialization for many auditors. Auditor 9. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#define MOD 9 +#include "tst-auditmanymod.h" diff --git a/elf/tst-auditmod11.c b/elf/tst-auditmod11.c index 3d9867e4a8..7c54afa040 100644 --- a/elf/tst-auditmod11.c +++ b/elf/tst-auditmod11.c @@ -1,5 +1,5 @@ /* Audit module for tst-audit11. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-auditmod12.c b/elf/tst-auditmod12.c index 886f20af5a..cfc9f6bd0b 100644 --- a/elf/tst-auditmod12.c +++ b/elf/tst-auditmod12.c @@ -1,5 +1,5 @@ /* Audit module for tst-audit12. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-auxv.c b/elf/tst-auxv.c index 1003998e2e..f73d9568cb 100644 --- a/elf/tst-auxv.c +++ b/elf/tst-auxv.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2019 Free Software Foundation, Inc. +/* Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-big-note-lib.S b/elf/tst-big-note-lib.S index 721686fa0e..e1de05a715 100644 --- a/elf/tst-big-note-lib.S +++ b/elf/tst-big-note-lib.S @@ -1,5 +1,5 @@ /* Bug 20419: test for stack overflow in elf/dl-load.c open_verify() - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This creates a .so with 8MiB PT_NOTE segment. On a typical Linux system with 8MiB "ulimit -s", that was enough diff --git a/elf/tst-big-note.c b/elf/tst-big-note.c index 7ecc94edcd..53ab49e1f3 100644 --- a/elf/tst-big-note.c +++ b/elf/tst-big-note.c @@ -1,5 +1,5 @@ /* Bug 20419: test for stack overflow in elf/dl-load.c open_verify() - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This file must be run from within a directory called "elf". */ diff --git a/elf/tst-create_format1.c b/elf/tst-create_format1.c index e61ea94a11..295799b02a 100644 --- a/elf/tst-create_format1.c +++ b/elf/tst-create_format1.c @@ -1,5 +1,5 @@ /* Check _dl_exception_create_format. - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-debug1.c b/elf/tst-debug1.c index f76cb20320..7fb4335783 100644 --- a/elf/tst-debug1.c +++ b/elf/tst-debug1.c @@ -1,5 +1,5 @@ /* Unit test for dlopen on ELF object from "objcopy --only-keep-debug". - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-dl-iter-static.c b/elf/tst-dl-iter-static.c index d5241307ba..16514741f1 100644 --- a/elf/tst-dl-iter-static.c +++ b/elf/tst-dl-iter-static.c @@ -1,5 +1,5 @@ /* BZ #16046 dl_iterate_phdr static executable test. - Copyright (C) 2014-2019 Free Software Foundation, Inc. + Copyright (C) 2014-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/elf/tst-dlmodcount.c b/elf/tst-dlmodcount.c index 18c3625aa1..0beca23b1d 100644 --- a/elf/tst-dlmodcount.c +++ b/elf/tst-dlmodcount.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2019 Free Software Foundation, Inc. +/* Copyright (C) 2004-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by David Mosberger , 2004. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-dlopen-nodelete-reloc-mod1.c b/elf/tst-dlopen-nodelete-reloc-mod1.c new file mode 100644 index 0000000000..c422f45f1a --- /dev/null +++ b/elf/tst-dlopen-nodelete-reloc-mod1.c @@ -0,0 +1,39 @@ +/* Test propagation of NODELETE to an already-loaded object via relocation. + Non-NODELETE helper module. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include +#include +#include + +/* Globally exported. Set by the main program to true before + termination, and used by tst-dlopen-nodelete-reloc-mod2.so to + trigger marking this module as NODELETE (and also for its destructor + check). */ +bool may_finalize_mod1 = false; + +static void __attribute__ ((destructor)) +fini (void) +{ + if (!may_finalize_mod1) + { + puts ("error: tst-dlopen-nodelete-reloc-mod1.so destructor" + " called too early"); + _exit (1); + } +} diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c b/elf/tst-dlopen-nodelete-reloc-mod10.c similarity index 56% rename from sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c rename to elf/tst-dlopen-nodelete-reloc-mod10.c index c473ff7514..e82405e2d2 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/sigprocmask.c +++ b/elf/tst-dlopen-nodelete-reloc-mod10.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1997-2019 Free Software Foundation, Inc. +/* Helper module to load tst-dlopen-nodelete-reloc-mod11.so. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,22 +14,28 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ -#include -#include +#include +#include +#include #include -#include -#include +static void *handle; -/* Get and/or change the set of blocked signals. */ -int -__sigprocmask (int how, const sigset_t *set, sigset_t *oset) +static void __attribute__ ((constructor)) +init (void) { - /* XXX The size argument hopefully will have to be changed to the - real size of the user-level sigset_t. */ - return INLINE_SYSCALL (rt_sigprocmask, 4, how, set, oset, _NSIG / 8); + handle = dlopen ("tst-dlopen-nodelete-reloc-mod11.so", RTLD_NOW); + if (handle == NULL) + { + printf ("error: dlopen in module 10: %s\n", dlerror ()); + _exit (1); + } +} + +static void __attribute__ ((destructor)) +fini (void) +{ + dlclose (handle); } -libc_hidden_def (__sigprocmask) -weak_alias (__sigprocmask, sigprocmask) diff --git a/elf/tst-dlopen-nodelete-reloc-mod11.cc b/elf/tst-dlopen-nodelete-reloc-mod11.cc new file mode 100644 index 0000000000..8ec3eaf264 --- /dev/null +++ b/elf/tst-dlopen-nodelete-reloc-mod11.cc @@ -0,0 +1,49 @@ +/* Second module defining a unique symbol (loaded indirectly). + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include "tst-dlopen-nodelete-reloc.h" + +#include +#include +#include + +/* Just a flag here, not used for NODELETE processing. */ +bool may_finalize_mod11 = false; + +/* Trigger the creation of a unique symbol reference. This should + cause tst-dlopen-nodelete-reloc-mod9.so to be marked as + NODELETE. */ + +extern template struct unique_symbol<9>; + +int +global_function_mod11 (void) +{ + return unique_symbol<9>::value; +} + +static void __attribute__ ((destructor)) +fini (void) +{ + if (!may_finalize_mod11) + { + puts ("error: tst-dlopen-nodelete-reloc-mod11.so destructor" + " called too early"); + _exit (1); + } +} diff --git a/elf/tst-dlopen-nodelete-reloc-mod12.cc b/elf/tst-dlopen-nodelete-reloc-mod12.cc new file mode 100644 index 0000000000..85e767823e --- /dev/null +++ b/elf/tst-dlopen-nodelete-reloc-mod12.cc @@ -0,0 +1,42 @@ +/* First module for NODELETE test defining a unique symbol (with DT_NEEDED). + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include "tst-dlopen-nodelete-reloc.h" + +#include +#include +#include + +/* Just a flag here, not used for NODELETE processing. */ +bool may_finalize_mod12 = false; + +/* Explicit instantiation. This produces a unique symbol definition + which is not referenced by the library itself, so the library is + not marked NODELETE. */ +template struct unique_symbol<12>; + +static void __attribute__ ((destructor)) +fini (void) +{ + if (!may_finalize_mod12) + { + puts ("error: tst-dlopen-nodelete-reloc-mod12.so destructor" + " called too early"); + _exit (1); + } +} diff --git a/elf/tst-dlopen-nodelete-reloc-mod13.cc b/elf/tst-dlopen-nodelete-reloc-mod13.cc new file mode 100644 index 0000000000..4bd37e09e4 --- /dev/null +++ b/elf/tst-dlopen-nodelete-reloc-mod13.cc @@ -0,0 +1,48 @@ +/* Second module for NODELETE test defining a unique symbol (with DT_NEEDED). + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include "tst-dlopen-nodelete-reloc.h" + +#include +#include +#include + +/* Just a flag here, not used for NODELETE processing. */ +bool may_finalize_mod13 = false; + +extern template struct unique_symbol<12>; + +/* Trigger the creation of a unique symbol reference. This should + cause tst-dlopen-nodelete-reloc-mod12.so to be marked as + NODELETE. */ +int +global_function_mod13 (void) +{ + return unique_symbol<12>::value; +} + +static void __attribute__ ((destructor)) +fini (void) +{ + if (!may_finalize_mod13) + { + puts ("error: tst-dlopen-nodelete-reloc-mod13.so destructor" + " called too early"); + _exit (1); + } +} diff --git a/elf/tst-dlopen-nodelete-reloc-mod13.h b/elf/tst-dlopen-nodelete-reloc-mod13.h new file mode 100644 index 0000000000..47421e2d83 --- /dev/null +++ b/elf/tst-dlopen-nodelete-reloc-mod13.h @@ -0,0 +1,24 @@ +/* Inline function which produces a unique symbol. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +inline char * +third_function_with_local_static (void) +{ + static char local; + return &local; +} diff --git a/elf/tst-dlopen-nodelete-reloc-mod14.cc b/elf/tst-dlopen-nodelete-reloc-mod14.cc new file mode 100644 index 0000000000..63d3cce25c --- /dev/null +++ b/elf/tst-dlopen-nodelete-reloc-mod14.cc @@ -0,0 +1,42 @@ +/* This object must retain NODELETE status after a dlopen failure. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include "tst-dlopen-nodelete-reloc.h" + +#include +#include +#include + +/* Just a flag here, not used for NODELETE processing. */ +bool may_finalize_mod14 = false; + +/* Explicit instantiation. This produces a unique symbol definition + which is not referenced by the library itself, so the library is + not marked NODELETE. */ +template struct unique_symbol<14>; + +static void __attribute__ ((destructor)) +fini (void) +{ + if (!may_finalize_mod14) + { + puts ("error: tst-dlopen-nodelete-reloc-mod14.so destructor" + " called too early"); + _exit (1); + } +} diff --git a/elf/tst-dlopen-nodelete-reloc-mod15.cc b/elf/tst-dlopen-nodelete-reloc-mod15.cc new file mode 100644 index 0000000000..95ddc6a1ae --- /dev/null +++ b/elf/tst-dlopen-nodelete-reloc-mod15.cc @@ -0,0 +1,42 @@ +/* Helper object to mark tst-dlopen-nodelete-reloc-mod14.so as NODELETE. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include "tst-dlopen-nodelete-reloc.h" + +#include +#include +#include + +extern template struct unique_symbol<14>; + +/* Trigger the creation of a unique symbol reference. This should + cause tst-dlopen-nodelete-reloc-mod14.so to be marked as + NODELETE. */ +int +global_function_mod15 (void) +{ + return unique_symbol<14>::value; +} + +static void __attribute__ ((destructor)) +fini (void) +{ + /* This object is never loaded completely. */ + puts ("error: tst-dlopen-nodelete-reloc-mod15.so destructor invoked"); + _exit (1); +} diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/profil-counter.h b/elf/tst-dlopen-nodelete-reloc-mod16.c similarity index 68% rename from sysdeps/unix/sysv/linux/s390/s390-64/profil-counter.h rename to elf/tst-dlopen-nodelete-reloc-mod16.c index 41301afe9c..282625d1b1 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/profil-counter.h +++ b/elf/tst-dlopen-nodelete-reloc-mod16.c @@ -1,5 +1,5 @@ -/* Low-level statistical profiling support function. Linux/s390 version. - Copyright (C) 2000-2019 Free Software Foundation, Inc. +/* Object with an undefined symbol to trigger a relocation failure. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,13 +14,14 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ -#include -#include +/* The reference to undefined_mod16 triggers a relocation failure. */ -static void -__profil_counter (int signo, SIGCONTEXT scp) +extern int undefined_mod16; + +int +global_function_mod16 (void) { - profil_count ((void *) GET_PC (scp)); + return undefined_mod16; } diff --git a/elf/tst-dlopen-nodelete-reloc-mod17.c b/elf/tst-dlopen-nodelete-reloc-mod17.c new file mode 100644 index 0000000000..1b2e050768 --- /dev/null +++ b/elf/tst-dlopen-nodelete-reloc-mod17.c @@ -0,0 +1,19 @@ +/* Top-level object with dependency on an object that fails relocation. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* The dependencies do all the work. */ diff --git a/elf/tst-dlopen-nodelete-reloc-mod2.c b/elf/tst-dlopen-nodelete-reloc-mod2.c new file mode 100644 index 0000000000..7e1350560d --- /dev/null +++ b/elf/tst-dlopen-nodelete-reloc-mod2.c @@ -0,0 +1,38 @@ +/* Test propagation of NODELETE to an already-loaded object via relocation. + NODELETE helper module. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include +#include +#include + +/* Defined in tst-dlopen-nodelete-reloc-mod1.so. This dependency is + not expressed via DT_NEEDED, so this reference marks the other + object as NODELETE dynamically, during initially relocation. */ +extern bool may_finalize_mod1; + +static void __attribute__ ((destructor)) +fini (void) +{ + if (!may_finalize_mod1) + { + puts ("error: tst-dlopen-nodelete-reloc-mod2.so destructor" + " called too early"); + _exit (1); + } +} diff --git a/elf/tst-dlopen-nodelete-reloc-mod3.c b/elf/tst-dlopen-nodelete-reloc-mod3.c new file mode 100644 index 0000000000..3fe3f3e4aa --- /dev/null +++ b/elf/tst-dlopen-nodelete-reloc-mod3.c @@ -0,0 +1,38 @@ +/* Test propagation of NODELETE to an already-loaded object via relocation. + Non-NODELETE helper module. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include +#include +#include + +/* Globally exported. Set by the main program to true before + termination, and used by tst-dlopen-nodelete-reloc-mod4.so, + tst-dlopen-nodelete-reloc-mod5.so. */ +bool may_finalize_mod3 = false; + +static void __attribute__ ((destructor)) +fini (void) +{ + if (!may_finalize_mod3) + { + puts ("error: tst-dlopen-nodelete-reloc-mod3.so destructor" + " called too early"); + _exit (1); + } +} diff --git a/elf/tst-dlopen-nodelete-reloc-mod4.c b/elf/tst-dlopen-nodelete-reloc-mod4.c new file mode 100644 index 0000000000..2a5f87dfe0 --- /dev/null +++ b/elf/tst-dlopen-nodelete-reloc-mod4.c @@ -0,0 +1,37 @@ +/* Test propagation of NODELETE to an already-loaded object via relocation. + Intermediate helper module. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include +#include +#include + +/* Defined in tst-dlopen-nodelete-reloc-mod3.so. The dependency is + expressed via DT_NEEDED. */ +extern bool may_finalize_mod3; + +static void __attribute__ ((destructor)) +fini (void) +{ + if (!may_finalize_mod3) + { + puts ("error: tst-dlopen-nodelete-reloc-mod4.so destructor" + " called too early"); + _exit (1); + } +} diff --git a/elf/tst-dlopen-nodelete-reloc-mod5.c b/elf/tst-dlopen-nodelete-reloc-mod5.c new file mode 100644 index 0000000000..9987e4292e --- /dev/null +++ b/elf/tst-dlopen-nodelete-reloc-mod5.c @@ -0,0 +1,38 @@ +/* Test propagation of NODELETE to an already-loaded object via relocation. + NODELETE helper module. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include +#include +#include + +/* Defined in tst-dlopen-nodelete-reloc-mod3.so. The dependency is + expressed via DT_NEEDED on the intermediate DSO + tst-dlopen-nodelete-reloc-mod3.so. */ +extern bool may_finalize_mod3; + +static void __attribute__ ((destructor)) +fini (void) +{ + if (!may_finalize_mod3) + { + puts ("error: tst-dlopen-nodelete-reloc-mod5.so destructor" + " called too early"); + _exit (1); + } +} diff --git a/elf/tst-dlopen-nodelete-reloc-mod6.cc b/elf/tst-dlopen-nodelete-reloc-mod6.cc new file mode 100644 index 0000000000..a0f460bbba --- /dev/null +++ b/elf/tst-dlopen-nodelete-reloc-mod6.cc @@ -0,0 +1,42 @@ +/* First module for NODELETE test defining a unique symbol. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include "tst-dlopen-nodelete-reloc.h" + +#include +#include +#include + +/* Just a flag here, not used for NODELETE processing. */ +bool may_finalize_mod6 = false; + +/* Explicit instantiation. This produces a unique symbol definition + which is not referenced by the library itself, so the library is + not marked NODELETE. */ +template struct unique_symbol<6>; + +static void __attribute__ ((destructor)) +fini (void) +{ + if (!may_finalize_mod6) + { + puts ("error: tst-dlopen-nodelete-reloc-mod6.so destructor" + " called too early"); + _exit (1); + } +} diff --git a/elf/tst-dlopen-nodelete-reloc-mod7.cc b/elf/tst-dlopen-nodelete-reloc-mod7.cc new file mode 100644 index 0000000000..124e0eac6d --- /dev/null +++ b/elf/tst-dlopen-nodelete-reloc-mod7.cc @@ -0,0 +1,48 @@ +/* Second module for NODELETE test defining a unique symbol. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include "tst-dlopen-nodelete-reloc.h" + +#include +#include +#include + +/* Just a flag here, not used for NODELETE processing. */ +bool may_finalize_mod7 = false; + +extern template struct unique_symbol<6>; + +/* Trigger the creation of a unique symbol reference. This should + cause tst-dlopen-nodelete-reloc-mod6.so to be marked as + NODELETE. */ +int +global_function_mod7 (void) +{ + return unique_symbol<6>::value; +} + +static void __attribute__ ((destructor)) +fini (void) +{ + if (!may_finalize_mod7) + { + puts ("error: tst-dlopen-nodelete-reloc-mod7.so destructor" + " called too early"); + _exit (1); + } +} diff --git a/sysdeps/unix/bsd/wait.c b/elf/tst-dlopen-nodelete-reloc-mod8.c similarity index 56% rename from sysdeps/unix/bsd/wait.c rename to elf/tst-dlopen-nodelete-reloc-mod8.c index 45efce639c..94354d6990 100644 --- a/sysdeps/unix/bsd/wait.c +++ b/elf/tst-dlopen-nodelete-reloc-mod8.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Helper module to load tst-dlopen-nodelete-reloc-mod9.so. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,20 +14,28 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ -#include -#include -#include +#include #include +#include +#include -/* Wait for a child to die. When one does, put its status in *STAT_LOC - and return its process ID. For errors, return (pid_t) -1. */ -__pid_t -__libc_wait (int *stat_loc) +static void *handle; + +static void __attribute__ ((constructor)) +init (void) { - return __wait4 (WAIT_ANY, stat_loc, 0, (struct rusage *) NULL); + handle = dlopen ("tst-dlopen-nodelete-reloc-mod9.so", RTLD_NOW); + if (handle == NULL) + { + printf ("error: dlopen in module 8: %s\n", dlerror ()); + _exit (1); + } } -weak_alias (__libc_wait, __wait) -weak_alias (__libc_wait, wait) +static void __attribute__ ((destructor)) +fini (void) +{ + dlclose (handle); +} diff --git a/elf/tst-dlopen-nodelete-reloc-mod9.cc b/elf/tst-dlopen-nodelete-reloc-mod9.cc new file mode 100644 index 0000000000..c59ecff38a --- /dev/null +++ b/elf/tst-dlopen-nodelete-reloc-mod9.cc @@ -0,0 +1,42 @@ +/* First module defining a unique symbol (loaded indirectly). + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include "tst-dlopen-nodelete-reloc.h" + +#include +#include +#include + +/* Just a flag here, not used for NODELETE processing. */ +bool may_finalize_mod9 = false; + +/* Explicit instantiation. This produces a unique symbol definition + which is not referenced by the library itself, so the library is + not marked NODELETE. */ +template struct unique_symbol<9>; + +static void __attribute__ ((destructor)) +fini (void) +{ + if (!may_finalize_mod9) + { + puts ("error: tst-dlopen-nodelete-reloc-mod9.so destructor" + " called too early"); + _exit (1); + } +} diff --git a/elf/tst-dlopen-nodelete-reloc.c b/elf/tst-dlopen-nodelete-reloc.c new file mode 100644 index 0000000000..5a59d6921e --- /dev/null +++ b/elf/tst-dlopen-nodelete-reloc.c @@ -0,0 +1,179 @@ +/* Test interactions of dlopen, NODELETE, and relocations. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* This test exercises NODELETE propagation due to data relocations + and unique symbols, and the interaction with already-loaded + objects. Some test objects are written in C++, to produce unique + symbol definitions. + + First test: Global scope variant, data relocation as the NODELETE + trigger. mod1 is loaded first with a separate dlopen call. + + mod2 ---(may_finalize_mod1 relocation dependency)---> mod1 + (NODELETE) (marked as NODELETE) + + Second test: Local scope variant, data relocation. mod3 is loaded + first, then mod5. + + mod5 ---(DT_NEEDED)---> mod4 ---(DT_NEEDED)---> mod3 + (NODELETE) (not NODELETE) ^ + \ / (marked as + `--(may_finalize_mod3 relocation dependency)--/ NODELETE) + + Third test: Shared local scope with unique symbol. mod6 is loaded + first, then mod7. No explicit dependencies between the two + objects, so first object has to be opened with RTLD_GLOBAL. + + mod7 ---(unique symbol)---> mod6 + (marked as NODELETE) + + Forth test: Non-shared scopes with unique symbol. mod8 and mod10 + are loaded from the main program. mod8 loads mod9 from an ELF + constructor, mod10 loads mod11. There are no DT_NEEDED + dependencies. mod9 is promoted to the global scope form the main + program. The unique symbol dependency is: + + mod9 ---(unique symbol)---> mod11 + (marked as NODELETE) + + Fifth test: Shared local scope with unique symbol, like test 3, but + this time, there is also a DT_NEEDED dependency (so no RTLD_GLOBAL + needed): + + DT_NEEDED + mod13 ---(unique symbol)---> mod12 + (marked as NODELETE) + + Sixth test: NODELETE status is retained after relocation failure + with unique symbol dependency. The object graph ensures that the + unique symbol binding is processed before the dlopen failure. + + DT_NEEDED + mod17 --(DT_NEEDED)--> mod15 --(unique symbol)--> mod14 + \ ^ (RTLD_NODELETE) + \ (DT_NEEDED) + \ | + `---(DT_NEEDED)--> mod16 + (fails to relocate) + + mod14 is loaded first, and the loading mod17 is attempted. + mod14 must remain NODELETE after opening mod17 failed. */ + +#include +#include +#include +#include +#include + +static int +do_test (void) +{ + /* First case: global scope, regular data symbol. Open the object + which is not NODELETE initially. */ + void *mod1 = xdlopen ("tst-dlopen-nodelete-reloc-mod1.so", + RTLD_NOW | RTLD_GLOBAL); + /* This is used to indicate that the ELF destructor may be + called. */ + bool *may_finalize_mod1 = xdlsym (mod1, "may_finalize_mod1"); + /* Open the NODELETE object. */ + void *mod2 = xdlopen ("tst-dlopen-nodelete-reloc-mod2.so", RTLD_NOW); + /* This has no effect because the DSO is directly marked as + NODELETE. */ + xdlclose (mod2); + /* This has no effect because the DSO has been indirectly marked as + NODELETE due to a relocation dependency. */ + xdlclose (mod1); + + /* Second case: local scope, regular data symbol. Open the object + which is not NODELETE initially. */ + void *mod3 = xdlopen ("tst-dlopen-nodelete-reloc-mod3.so", RTLD_NOW); + bool *may_finalize_mod3 = xdlsym (mod3, "may_finalize_mod3"); + /* Open the NODELETE object. */ + void *mod5 = xdlopen ("tst-dlopen-nodelete-reloc-mod5.so", RTLD_NOW); + /* Again those have no effect because of NODELETE. */ + xdlclose (mod5); + xdlclose (mod3); + + /* Third case: Unique symbol. */ + void *mod6 = xdlopen ("tst-dlopen-nodelete-reloc-mod6.so", + RTLD_NOW | RTLD_GLOBAL); + bool *may_finalize_mod6 = xdlsym (mod6, "may_finalize_mod6"); + void *mod7 = xdlopen ("tst-dlopen-nodelete-reloc-mod7.so", RTLD_NOW); + bool *may_finalize_mod7 = xdlsym (mod7, "may_finalize_mod7"); + /* This should not have any effect because of the unique symbol and + the resulting NODELETE status. */ + xdlclose (mod6); + /* mod7 is not NODELETE and can be closed. */ + *may_finalize_mod7 = true; + xdlclose (mod7); + + /* Fourth case: Unique symbol, indirect loading. */ + void *mod8 = xdlopen ("tst-dlopen-nodelete-reloc-mod8.so", RTLD_NOW); + /* Also promote to global scope. */ + void *mod9 = xdlopen ("tst-dlopen-nodelete-reloc-mod9.so", + RTLD_NOW | RTLD_NOLOAD | RTLD_GLOBAL); + bool *may_finalize_mod9 = xdlsym (mod9, "may_finalize_mod9"); + xdlclose (mod9); /* Drop mod9 reference. */ + void *mod10 = xdlopen ("tst-dlopen-nodelete-reloc-mod10.so", RTLD_NOW); + void *mod11 = xdlopen ("tst-dlopen-nodelete-reloc-mod11.so", + RTLD_NOW | RTLD_NOLOAD); + bool *may_finalize_mod11 = xdlsym (mod11, "may_finalize_mod11"); + xdlclose (mod11); /* Drop mod11 reference. */ + /* mod11 is not NODELETE and can be closed. */ + *may_finalize_mod11 = true; + /* Trigger closing of mod11, too. */ + xdlclose (mod10); + /* Does not trigger closing of mod9. */ + xdlclose (mod8); + + /* Fifth case: Unique symbol, with DT_NEEDED dependency. */ + void *mod12 = xdlopen ("tst-dlopen-nodelete-reloc-mod12.so", RTLD_NOW); + bool *may_finalize_mod12 = xdlsym (mod12, "may_finalize_mod12"); + void *mod13 = xdlopen ("tst-dlopen-nodelete-reloc-mod13.so", RTLD_NOW); + bool *may_finalize_mod13 = xdlsym (mod13, "may_finalize_mod13"); + /* This should not have any effect because of the unique symbol. */ + xdlclose (mod12); + /* mod13 is not NODELETE and can be closed. */ + *may_finalize_mod13 = true; + xdlclose (mod13); + + /* Sixth case: Unique symbol binding must not cause loss of NODELETE + status. */ + void *mod14 = xdlopen ("tst-dlopen-nodelete-reloc-mod14.so", + RTLD_NOW | RTLD_NODELETE); + bool *may_finalize_mod14 = xdlsym (mod14, "may_finalize_mod14"); + TEST_VERIFY (dlopen ("tst-dlopen-nodelete-reloc-mod17.so", RTLD_NOW) + == NULL); + const char *message = dlerror (); + printf ("info: test 6 message: %s\n", message); + /* This must not close the object, it must still be NODELETE. */ + xdlclose (mod14); + xdlopen ("tst-dlopen-nodelete-reloc-mod14.so", RTLD_NOW | RTLD_NOLOAD); + + /* Prepare for process exit. Destructors for NODELETE objects will + be invoked. */ + *may_finalize_mod1 = true; + *may_finalize_mod3 = true; + *may_finalize_mod6 = true; + *may_finalize_mod9 = true; + *may_finalize_mod12 = true; + *may_finalize_mod14 = true; + return 0; +} + +#include diff --git a/elf/tst-dlopen-nodelete-reloc.h b/elf/tst-dlopen-nodelete-reloc.h new file mode 100644 index 0000000000..96317218a5 --- /dev/null +++ b/elf/tst-dlopen-nodelete-reloc.h @@ -0,0 +1,35 @@ +/* Template to produce unique symbols. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* This template produces a unique symbol definition for an explicit + template instantiation (without also incorporating a reference), + and an extern template declaration can be used to reference that + symbol from another object. The modid parameter is just a + placeholder to create different symbols (because it affects the + name mangling of the static value member). By convention, it + should match the number of the module that contains the + definition. */ + +template +struct unique_symbol +{ + static int value; +}; + +template +int unique_symbol::value; diff --git a/elf/tst-dlopen-pie.c b/elf/tst-dlopen-pie.c index 6a41c731cb..53500da025 100644 --- a/elf/tst-dlopen-pie.c +++ b/elf/tst-dlopen-pie.c @@ -1,5 +1,5 @@ /* dlopen test for PIE objects. - Copyright (C) 2019 Free Software Foundation, Inc. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This test attempts to open the (otherwise unrelated) PIE test program elf/tst-pie1 and expects the attempt to fail. */ diff --git a/elf/tst-dlopen-self-container.c b/elf/tst-dlopen-self-container.c new file mode 100644 index 0000000000..5ec3a67b89 --- /dev/null +++ b/elf/tst-dlopen-self-container.c @@ -0,0 +1,19 @@ +/* Check dlopen'ing the executable itself fails (bug 24900); container version. + Copyright (C) 2014-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include "tst-dlopen-self.c" diff --git a/elf/tst-dlopen-self-pie.c b/elf/tst-dlopen-self-pie.c new file mode 100644 index 0000000000..3590a9c62d --- /dev/null +++ b/elf/tst-dlopen-self-pie.c @@ -0,0 +1,19 @@ +/* Check that dlopen'ing the executable itself fails (bug 24900); PIE version. + Copyright (C) 2014-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include "tst-dlopen-self.c" diff --git a/elf/tst-dlopen-self.c b/elf/tst-dlopen-self.c new file mode 100644 index 0000000000..4ee6fc7e35 --- /dev/null +++ b/elf/tst-dlopen-self.c @@ -0,0 +1,55 @@ +/* Check that dlopen'ing the executable itself fails (bug 24900). + Copyright (C) 2014-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include +#include +#include +#include + +/* Call dlopen and check that fails with an error message indicating + an attempt to open an ET_EXEC or PIE object. */ +static void +check_dlopen_failure (const char *path) +{ + void *handle = dlopen (path, RTLD_LAZY); + if (handle != NULL) + FAIL_EXIT1 ("dlopen succeeded unexpectedly: %s", path); + + const char *message = dlerror (); + TEST_VERIFY_EXIT (message != NULL); + if ((strstr (message, + "cannot dynamically load position-independent executable") + == NULL) + && strstr (message, "cannot dynamically load executable") == NULL) + FAIL_EXIT1 ("invalid dlopen error message: \"%s\"", message); +} + +static int +do_test (int argc, char *argv[]) +{ + check_dlopen_failure (argv[0]); + + char *full_path = realpath (argv[0], NULL); + check_dlopen_failure (full_path); + free (full_path); + + return 0; +} + +#define TEST_FUNCTION_ARGV do_test +#include diff --git a/sysdeps/x86_64/fpu/test-double-libmvec-alias-mod.c b/elf/tst-dlopen-tlsmodid-container.c similarity index 55% rename from sysdeps/x86_64/fpu/test-double-libmvec-alias-mod.c rename to elf/tst-dlopen-tlsmodid-container.c index e57c00d924..451fe7e992 100644 --- a/sysdeps/x86_64/fpu/test-double-libmvec-alias-mod.c +++ b/elf/tst-dlopen-tlsmodid-container.c @@ -1,6 +1,5 @@ -/* Part of test to build shared library to ensure link against - *_finite aliases from libmvec. - Copyright (C) 2016-2019 Free Software Foundation, Inc. +/* Test case for BZ #16634. Container version. + Copyright (C) 2014-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,11 +14,26 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ + +/* This test uses the iconv program as the test binary. */ -#include #include -#include +#include + +static char *iconv_path; + +static __attribute__ ((constructor)) void +iconv_path_init (void) +{ + iconv_path = xasprintf ("%s/iconv", support_bindir_prefix); +} + +static __attribute__ ((destructor)) void +iconv_path_fini (void) +{ + free (iconv_path); +} -#include "test-double.h" -#include "test-libmvec-alias-mod.c" +#define TST_DLOPEN_TLSMODID_PATH iconv_path +#include "tst-dlopen-tlsmodid.h" diff --git a/sysdeps/unix/sysv/linux/hppa/ipc_priv.h b/elf/tst-dlopen-tlsmodid-pie.c similarity index 79% rename from sysdeps/unix/sysv/linux/hppa/ipc_priv.h rename to elf/tst-dlopen-tlsmodid-pie.c index 5e170a9a2b..3030dbe17c 100644 --- a/sysdeps/unix/sysv/linux/hppa/ipc_priv.h +++ b/elf/tst-dlopen-tlsmodid-pie.c @@ -1,5 +1,5 @@ -/* Old SysV permission definition for Linux. Hppa version. - Copyright (C) 2017-2019 Free Software Foundation, Inc. +/* Test case for BZ #16634. PIE version. + Copyright (C) 2014-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,6 +16,5 @@ License along with the GNU C Library; if not, see . */ -#include /* For __key_t */ - -#define __IPC_64 0x0 +#define TST_DLOPEN_TLSMODID_PATH "tst-dlopen-self-pie" +#include "tst-dlopen-tlsmodid.h" diff --git a/elf/tst-dlopen-tlsmodid.c b/elf/tst-dlopen-tlsmodid.c new file mode 100644 index 0000000000..55fbbbda6e --- /dev/null +++ b/elf/tst-dlopen-tlsmodid.c @@ -0,0 +1,25 @@ +/* Test case for BZ #16634. Non-PIE version. + + Verify that incorrectly dlopen()ing an executable without + __RTLD_OPENEXEC does not cause assertion in ld.so, and that it + actually results in an error. + + Copyright (C) 2014-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#define TST_DLOPEN_TLSMODID_PATH "tst-dlopen-self" +#include "tst-dlopen-tlsmodid.h" diff --git a/elf/tst-dlopen-aout.c b/elf/tst-dlopen-tlsmodid.h similarity index 51% rename from elf/tst-dlopen-aout.c rename to elf/tst-dlopen-tlsmodid.h index deedd11ad0..f5cf9e7ddd 100644 --- a/elf/tst-dlopen-aout.c +++ b/elf/tst-dlopen-tlsmodid.h @@ -1,9 +1,11 @@ -/* Test case for BZ #16634. +/* Common code for tst-dlopen-tlsmodid, tst-dlopen-tlsmodid-pie, + tst-dlopen-tlsmodid-container. Verify that incorrectly dlopen()ing an executable without - __RTLD_OPENEXEC does not cause assertion in ld.so. + __RTLD_OPENEXEC does not cause assertion in ld.so, and that it + actually results in an error. - Copyright (C) 2014-2019 Free Software Foundation, Inc. + Copyright (C) 2014-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -18,15 +20,18 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . + . */ - Note: this test currently only fails when glibc is configured with - --enable-hardcoded-path-in-tests. */ +/* Before including this file, the macro TST_DLOPEN_TLSMODID_PATH must + be defined, to specify the path used for the open operation. */ -#include #include -#include #include +#include +#include +#include +#include +#include #include __thread int x; @@ -37,6 +42,24 @@ fn (void *p) return p; } +/* Call dlopen and check that fails with an error message indicating + an attempt to open an ET_EXEC or PIE object. */ +static void +check_dlopen_failure (void) +{ + void *handle = dlopen (TST_DLOPEN_TLSMODID_PATH, RTLD_LAZY); + if (handle != NULL) + FAIL_EXIT1 ("dlopen succeeded unexpectedly: %s", TST_DLOPEN_TLSMODID_PATH); + + const char *message = dlerror (); + TEST_VERIFY_EXIT (message != NULL); + if ((strstr (message, + "cannot dynamically load position-independent executable") + == NULL) + && strstr (message, "cannot dynamically load executable") == NULL) + FAIL_EXIT1 ("invalid dlopen error message: \"%s\"", message); +} + static int do_test (int argc, char *argv[]) { @@ -45,14 +68,9 @@ do_test (int argc, char *argv[]) for (j = 0; j < 100; ++j) { pthread_t thr; - void *p; - - p = dlopen (argv[0], RTLD_LAZY); - if (p != NULL) - { - fprintf (stderr, "dlopen unexpectedly succeeded\n"); - return 1; - } + + check_dlopen_failure (); + /* We create threads to force TLS allocation, which triggers the original bug i.e. running out of surplus slotinfo entries for TLS. */ @@ -60,6 +78,8 @@ do_test (int argc, char *argv[]) xpthread_join (thr); } + check_dlopen_failure (); + return 0; } diff --git a/elf/tst-dlopenfail-2.c b/elf/tst-dlopenfail-2.c new file mode 100644 index 0000000000..35bbde64ab --- /dev/null +++ b/elf/tst-dlopenfail-2.c @@ -0,0 +1,59 @@ +/* Test unrelated dlopen after dlopen failure involving NODELETE. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include +#include +#include +#include +#include +#include +#include +#include + +static int +do_test (void) +{ + /* This test uses libpthread as the canonical NODELETE module. If + libpthread is no longer NODELETE because it has been merged into + libc, the test needs to be updated. */ + TEST_VERIFY (dlsym (NULL, "pthread_create") == NULL); + + /* This is expected to fail because of the missing dependency. */ + puts ("info: attempting to load tst-dlopenfailmod1.so"); + TEST_VERIFY (dlopen ("tst-dlopenfailmod1.so", RTLD_LAZY) == NULL); + const char *message = dlerror (); + TEST_COMPARE_STRING (message, + "tst-dlopenfail-missingmod.so:" + " cannot open shared object file:" + " No such file or directory"); + + /* Open a small shared object. With a dangling GL (dl_initfirst) + pointer, this is likely to crash because there is no longer any + mapped text segment there (bug 25396). */ + + puts ("info: attempting to load tst-dlopenfailmod3.so"); + xdlclose (xdlopen ("tst-dlopenfailmod3.so", RTLD_NOW)); + + return 0; +} + +/* Do not perturb the dangling link map. With M_PERTURB, the link map + appears to have l_init_called set, so there are no constructor + calls and no crashes. */ +#define TEST_NO_MALLOPT +#include diff --git a/elf/tst-dlopenfail.c b/elf/tst-dlopenfail.c new file mode 100644 index 0000000000..e8275ed7fb --- /dev/null +++ b/elf/tst-dlopenfail.c @@ -0,0 +1,79 @@ +/* Test dlopen rollback after failures involving NODELETE objects (bug 20839). + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include +#include +#include +#include +#include +#include +#include +#include + +static int +do_test (void) +{ + /* This test uses libpthread as the canonical NODELETE module. If + libpthread is no longer NODELETE because it has been merged into + libc, the test needs to be updated. */ + TEST_VERIFY (dlsym (NULL, "pthread_create") == NULL); + + /* This is expected to fail because of the missing dependency. */ + puts ("info: attempting to load tst-dlopenfailmod1.so"); + TEST_VERIFY (dlopen ("tst-dlopenfailmod1.so", RTLD_LAZY) == NULL); + const char *message = dlerror (); + TEST_COMPARE_STRING (message, + "tst-dlopenfail-missingmod.so:" + " cannot open shared object file:" + " No such file or directory"); + + /* Do not probe for the presence of libpthread at this point because + that might trigger relocation if bug 20839 is present, obscuring + a subsequent crash. */ + + /* This is expected to succeed. */ + puts ("info: loading tst-dlopenfailmod2.so"); + void *handle = xdlopen ("tst-dlopenfailmod2.so", RTLD_NOW); + xdlclose (handle); + + /* libpthread should remain loaded. */ + TEST_VERIFY (dlopen (LIBPTHREAD_SO, RTLD_LAZY | RTLD_NOLOAD) != NULL); + TEST_VERIFY (dlsym (NULL, "pthread_create") == NULL); + + /* We can make libpthread global, and then the symbol should become + available. */ + TEST_VERIFY (dlopen (LIBPTHREAD_SO, RTLD_LAZY | RTLD_GLOBAL) != NULL); + TEST_VERIFY (dlsym (NULL, "pthread_create") != NULL); + + /* sem_open is sufficiently complex to depend on relocations. */ + void *(*sem_open_ptr) (const char *, int flag, ...) + = dlsym (NULL, "sem_open"); + if (sem_open_ptr == NULL) + /* Hurd does not implement sem_open. */ + puts ("warning: sem_open not found, further testing not possible"); + else + { + errno = 0; + TEST_VERIFY (sem_open_ptr ("/", 0) == NULL); + TEST_COMPARE (errno, EINVAL); + } + + return 0; +} + +#include diff --git a/elf/tst-dlopenfaillinkmod.c b/elf/tst-dlopenfaillinkmod.c new file mode 100644 index 0000000000..5b345be921 --- /dev/null +++ b/elf/tst-dlopenfaillinkmod.c @@ -0,0 +1,17 @@ +/* Empty module with a soname which is not available at run time. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ diff --git a/elf/tst-dlopenfailmod1.c b/elf/tst-dlopenfailmod1.c new file mode 100644 index 0000000000..9da4c967bf --- /dev/null +++ b/elf/tst-dlopenfailmod1.c @@ -0,0 +1,36 @@ +/* Module which depends on two modules: one NODELETE, one missing. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* Note: Due to the missing second module, this object cannot be + loaded at run time. */ + +#include +#include +#include + +/* Force linking against libpthread. */ +void *pthread_create_reference = pthread_create; + +/* The constructor will never be executed because the module cannot be + loaded. */ +static void __attribute__ ((constructor)) +init (void) +{ + puts ("tst-dlopenfailmod1 constructor executed"); + _exit (1); +} diff --git a/elf/tst-dlopenfailmod2.c b/elf/tst-dlopenfailmod2.c new file mode 100644 index 0000000000..8dc3a9f5af --- /dev/null +++ b/elf/tst-dlopenfailmod2.c @@ -0,0 +1,29 @@ +/* Module which depends on on a NODELETE module, and can be loaded. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include +#include + +/* Force linking against libpthread. */ +void *pthread_create_reference = pthread_create; + +static void __attribute__ ((constructor)) +init (void) +{ + puts ("info: tst-dlopenfailmod2.so constructor invoked"); +} diff --git a/elf/tst-dlopenfailmod3.c b/elf/tst-dlopenfailmod3.c new file mode 100644 index 0000000000..636e971264 --- /dev/null +++ b/elf/tst-dlopenfailmod3.c @@ -0,0 +1,17 @@ +/* Empty module for the tst-dlopenfail-2 test. + Copyright (C) 2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ diff --git a/elf/tst-dlopenrpath.c b/elf/tst-dlopenrpath.c index e65b1d7c54..8e8115fbb0 100644 --- a/elf/tst-dlopenrpath.c +++ b/elf/tst-dlopenrpath.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2019 Free Software Foundation, Inc. +/* Copyright (C) 2004-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2004. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-dlopenrpathmod.c b/elf/tst-dlopenrpathmod.c index 416e8ad744..72e9955b82 100644 --- a/elf/tst-dlopenrpathmod.c +++ b/elf/tst-dlopenrpathmod.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2019 Free Software Foundation, Inc. +/* Copyright (C) 2004-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2004. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-dlsym-error.c b/elf/tst-dlsym-error.c index 78c6719fe5..05ca42f873 100644 --- a/elf/tst-dlsym-error.c +++ b/elf/tst-dlsym-error.c @@ -1,5 +1,5 @@ /* Test error reporting for dlsym, dlvsym failures. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-env-setuid-tunables.c b/elf/tst-env-setuid-tunables.c index e92e9f5fbf..971d5892b1 100644 --- a/elf/tst-env-setuid-tunables.c +++ b/elf/tst-env-setuid-tunables.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2017-2019 Free Software Foundation, Inc. +/* Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Verify that tunables correctly filter out unsafe tunables like glibc.malloc.check and glibc.malloc.mmap_threshold but also retain diff --git a/elf/tst-env-setuid.c b/elf/tst-env-setuid.c index a080d2fa1c..41dc79e83a 100644 --- a/elf/tst-env-setuid.c +++ b/elf/tst-env-setuid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2012-2019 Free Software Foundation, Inc. +/* Copyright (C) 2012-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Verify that tunables correctly filter out unsafe environment variables like MALLOC_CHECK_ and MALLOC_MMAP_THRESHOLD_ but also retain diff --git a/elf/tst-finilazyfailmod.c b/elf/tst-finilazyfailmod.c new file mode 100644 index 0000000000..78c05999a2 --- /dev/null +++ b/elf/tst-finilazyfailmod.c @@ -0,0 +1,27 @@ +/* Helper module for tst-initfinilazyfail: lazy binding failure in destructor. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* An undefined function. Calling it will cause a lazy binding + failure. */ +void undefined_function (void); + +static void __attribute__ ((destructor)) +fini (void) +{ + undefined_function (); +} diff --git a/elf/tst-gnu2-tls1.c b/elf/tst-gnu2-tls1.c index 9ca2cedd4e..e02c8b33b4 100644 --- a/elf/tst-gnu2-tls1.c +++ b/elf/tst-gnu2-tls1.c @@ -1,5 +1,5 @@ /* Test local and global dynamic models for GNU2 TLS. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-gnu2-tls1mod.c b/elf/tst-gnu2-tls1mod.c index 974f532da8..a7d545118a 100644 --- a/elf/tst-gnu2-tls1mod.c +++ b/elf/tst-gnu2-tls1mod.c @@ -1,5 +1,5 @@ /* DSO used by tst-gnu2-tls1. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ static __thread int ld; diff --git a/elf/tst-ifunc-fault-bindnow.c b/elf/tst-ifunc-fault-bindnow.c new file mode 100644 index 0000000000..81d2f4feee --- /dev/null +++ b/elf/tst-ifunc-fault-bindnow.c @@ -0,0 +1,21 @@ +/* Program with local IFUNC resolver which crashes. BIND_NOW variant. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* The code is the same as the lazy variant. It is just linked + differently. */ +#include "tst-ifunc-fault-lazy.c" diff --git a/elf/tst-ifunc-fault-lazy.c b/elf/tst-ifunc-fault-lazy.c new file mode 100644 index 0000000000..432aaaeccd --- /dev/null +++ b/elf/tst-ifunc-fault-lazy.c @@ -0,0 +1,57 @@ +/* Program with local IFUNC resolver which crashes, for testing bug 24214. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* The construct below is expected to produce an IRELATIVE relocation + with an IFUNC resolver that crashes. ldd should not performs such + relocations. */ + +#include + +#ifdef HAVE_GCC_IFUNC + +# include + +static void +implementation (void) +{ + /* Produce a crash, without depending on any relocations. */ + volatile char *volatile p = NULL; + *p = 0; +} + +static __typeof__ (implementation) * +resolver (void) +{ + /* Produce a crash, without depending on any relocations. */ + volatile char *volatile p = NULL; + *p = 0; + return implementation; +} + +static void magic (void) __attribute__ ((ifunc ("resolver"))); + +void (*magic_ptr) (void) = magic; + +#endif /* HAVE_GCC_IFUNC */ + +/* The program is expected not to run. */ +int +main (void) +{ + return 1; +} diff --git a/elf/tst-ifunc-textrel.c b/elf/tst-ifunc-textrel.c index 8c9f5498e7..fbb023a9b5 100644 --- a/elf/tst-ifunc-textrel.c +++ b/elf/tst-ifunc-textrel.c @@ -1,5 +1,5 @@ /* Check DT_TEXTREL/DF_TEXTREL support with ifunc. - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/elf/tst-initfinilazyfail.c b/elf/tst-initfinilazyfail.c new file mode 100644 index 0000000000..077f72a617 --- /dev/null +++ b/elf/tst-initfinilazyfail.c @@ -0,0 +1,84 @@ +/* Test that lazy binding failures in constructors and destructors are fatal. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include +#include +#include +#include +#include + +static void +test_constructor (void *closure) +{ + void *handle = dlopen ("tst-initlazyfailmod.so", RTLD_LAZY); + if (handle == NULL) + FAIL_EXIT (2, "dlopen did not terminate the process: %s", dlerror ()); + else + FAIL_EXIT (2, "dlopen did not terminate the process (%p)", handle); +} + +static void +test_destructor (void *closure) +{ + void *handle = xdlopen ("tst-finilazyfailmod.so", RTLD_LAZY); + int ret = dlclose (handle); + const char *message = dlerror (); + if (message != NULL) + FAIL_EXIT (2, "dlclose did not terminate the process: %d, %s", + ret, message); + else + FAIL_EXIT (2, "dlopen did not terminate the process: %d", ret); +} + +static int +do_test (void) +{ + { + struct support_capture_subprocess proc + = support_capture_subprocess (test_constructor, NULL); + support_capture_subprocess_check (&proc, "constructor", 127, + sc_allow_stderr); + printf ("info: constructor failure output: [[%s]]\n", proc.err.buffer); + TEST_VERIFY (strstr (proc.err.buffer, + "tst-initfinilazyfail: symbol lookup error: ") + != NULL); + TEST_VERIFY (strstr (proc.err.buffer, + "tst-initlazyfailmod.so: undefined symbol:" + " undefined_function\n") != NULL); + support_capture_subprocess_free (&proc); + } + + { + struct support_capture_subprocess proc + = support_capture_subprocess (test_destructor, NULL); + support_capture_subprocess_check (&proc, "destructor", 127, + sc_allow_stderr); + printf ("info: destructor failure output: [[%s]]\n", proc.err.buffer); + TEST_VERIFY (strstr (proc.err.buffer, + "tst-initfinilazyfail: symbol lookup error: ") + != NULL); + TEST_VERIFY (strstr (proc.err.buffer, + "tst-finilazyfailmod.so: undefined symbol:" + " undefined_function\n") != NULL); + support_capture_subprocess_free (&proc); + } + + return 0; +} + +#include diff --git a/elf/tst-initlazyfailmod.c b/elf/tst-initlazyfailmod.c new file mode 100644 index 0000000000..5254868bdf --- /dev/null +++ b/elf/tst-initlazyfailmod.c @@ -0,0 +1,27 @@ +/* Helper module for tst-initfinilazyfail: lazy binding failure in constructor. + Copyright (C) 2019-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +/* An undefined function. Calling it will cause a lazy binding + failure. */ +void undefined_function (void); + +static void __attribute__ ((constructor)) +init (void) +{ + undefined_function (); +} diff --git a/elf/tst-latepthread.c b/elf/tst-latepthread.c index c18aadfe18..16a40ebb31 100644 --- a/elf/tst-latepthread.c +++ b/elf/tst-latepthread.c @@ -1,5 +1,5 @@ /* Test that loading libpthread does not break ld.so exceptions (bug 16628). - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-latepthreadmod.c b/elf/tst-latepthreadmod.c index a0d66c222c..9aba6bd256 100644 --- a/elf/tst-latepthreadmod.c +++ b/elf/tst-latepthreadmod.c @@ -1,5 +1,5 @@ /* DSO which links against libpthread and triggers a lazy binding. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This file is compiled into a DSO which loads libpthread, but fails the dynamic linker afterwards. */ diff --git a/elf/tst-ldconfig-X.sh b/elf/tst-ldconfig-X.sh index 7ad41c3baf..bb468e35a9 100644 --- a/elf/tst-ldconfig-X.sh +++ b/elf/tst-ldconfig-X.sh @@ -1,6 +1,6 @@ #!/bin/sh # Test that ldconfig -X does not remove stale symbolic links. -# Copyright (C) 2000-2019 Free Software Foundation, Inc. +# Copyright (C) 2000-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . set -ex diff --git a/elf/tst-ldconfig-bad-aux-cache.c b/elf/tst-ldconfig-bad-aux-cache.c index 68ce90a956..18636a0ed7 100644 --- a/elf/tst-ldconfig-bad-aux-cache.c +++ b/elf/tst-ldconfig-bad-aux-cache.c @@ -1,5 +1,5 @@ /* Test ldconfig does not segfault when aux-cache is corrupted (Bug 18093). - Copyright (C) 2019 Free Software Foundation, Inc. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; see the file COPYING.LIB. If - not, see . */ + not, see . */ /* This test does the following: Run ldconfig to create the caches. @@ -31,6 +31,7 @@ #include #include +#include #include #include #include @@ -52,6 +53,15 @@ display_info (const char *fpath, const struct stat *sb, return 0; } +static void +execv_wrapper (void *args) +{ + char **argv = args; + + execv (argv[0], argv); + FAIL_EXIT1 ("execv: %m"); +} + /* Run ldconfig with a corrupt aux-cache, in particular we test for size truncation that might happen if a previous ldconfig run failed or if there were storage or power issues while we were writing the file. @@ -61,53 +71,38 @@ static int do_test (void) { char *prog = xasprintf ("%s/ldconfig", support_install_rootsbindir); - char *const args[] = { prog, NULL }; + char *args[] = { prog, NULL }; const char *path = "/var/cache/ldconfig/aux-cache"; struct stat64 fs; long int size, new_size, i; - int status; - pid_t pid; /* Create the needed directories. */ xmkdirp ("/var/cache/ldconfig", 0777); - pid = xfork (); - /* Run ldconfig fist to generate the aux-cache. */ - if (pid == 0) - { - execv (args[0], args); - _exit (1); - } - else + /* Run ldconfig first to generate the aux-cache. */ + struct support_capture_subprocess result; + result = support_capture_subprocess (execv_wrapper, args); + support_capture_subprocess_check (&result, "execv", 0, sc_allow_none); + support_capture_subprocess_free (&result); + + xstat (path, &fs); + + size = fs.st_size; + /* Run 3 tests, each truncating aux-cache shorter and shorter. */ + for (i = 3; i > 0; i--) { - xwaitpid (pid, &status, 0); - TEST_COMPARE(status, 0); - xstat (path, &fs); - - size = fs.st_size; - /* Run 3 tests, each truncating aux-cache shorter and shorter. */ - for (i = 3; i > 0; i--) - { - new_size = size * i / 4; - if (truncate (path, new_size)) - FAIL_EXIT1 ("truncation failed: %m"); - if (nftw (path, display_info, 1000, 0) == -1) - FAIL_EXIT1 ("nftw failed."); - - pid = xfork (); - /* Verify that ldconfig can run with a truncated - aux-cache and doesn't crash. */ - if (pid == 0) - { - execv (args[0], args); - _exit (1); - } - else - { - xwaitpid (pid, &status, 0); - TEST_COMPARE(status, 0); - } - } + new_size = size * i / 4; + if (truncate (path, new_size)) + FAIL_EXIT1 ("truncation failed: %m"); + if (nftw (path, display_info, 1000, 0) == -1) + FAIL_EXIT1 ("nftw failed."); + + /* Verify that ldconfig can run with a truncated + aux-cache and doesn't crash. */ + struct support_capture_subprocess result; + result = support_capture_subprocess (execv_wrapper, args); + support_capture_subprocess_check (&result, "execv", 0, sc_allow_none); + support_capture_subprocess_free (&result); } free (prog); diff --git a/elf/tst-ldconfig-ld-mod.c b/elf/tst-ldconfig-ld-mod.c new file mode 100644 index 0000000000..f8f658d03b --- /dev/null +++ b/elf/tst-ldconfig-ld-mod.c @@ -0,0 +1,8 @@ +#include +#include + +void +bar (void) +{ + printf ("Called DSO.\n"); +} diff --git a/elf/tst-ldconfig-ld_so_conf-update.c b/elf/tst-ldconfig-ld_so_conf-update.c new file mode 100644 index 0000000000..ff2ee217d9 --- /dev/null +++ b/elf/tst-ldconfig-ld_so_conf-update.c @@ -0,0 +1,117 @@ +/* Test ldconfig after /etc/ld.so.conf update and verify that a running process + observes changes to /etc/ld.so.cache. + + Copyright (C) 2019 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; see the file COPYING.LIB. If + not, see . */ + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + + +#define DSO "libldconfig-ld-mod.so" +#define DSO_DIR "/tmp/tst-ldconfig" +#define CONF "/etc/ld.so.conf" + + +static void +run_ldconfig (void *x __attribute__((unused))) +{ + char *prog = xasprintf ("%s/ldconfig", support_install_rootsbindir); + char *args[] = { prog, NULL }; + + execv (args[0], args); + FAIL_EXIT1 ("execv: %m"); +} + + +/* Create a new directory. + Copy a test shared object there. + Try to dlopen it by soname. This should fail. + (Directory is not searched.) + Run ldconfig. + Try to dlopen it again. It should still fail. + (Directory is still not searched.) + Add the directory to /etc/ld.so.conf. + Try to dlopen it again. It should still fail. + (The loader does not read /etc/ld.so.conf, only /etc/ld.so.cache.) + Run ldconfig. + Try to dlopen it again. This should finally succeed. */ +static int +do_test (void) +{ + struct support_capture_subprocess result; + + /* Create the needed directories. */ + xmkdirp ("/var/cache/ldconfig", 0777); + xmkdirp (DSO_DIR, 0777); + + /* Rename the DSO to start with "lib" because there's an undocumented + filter in ldconfig where it ignores any file that doesn't start with + "lib" (for regular shared libraries) or "ld-" (for ld-linux-*). */ + char *mod_src_path = xasprintf ("%s/tst-ldconfig-ld-mod.so", + support_libdir_prefix); + if (rename (mod_src_path, "/tmp/tst-ldconfig/libldconfig-ld-mod.so")) + FAIL_EXIT1 ("Renaming/moving the DSO failed: %m"); + free (mod_src_path); + + + /* Open the DSO. We expect this to fail - tst-ldconfig directory + is not searched. */ + TEST_VERIFY_EXIT (dlopen (DSO, RTLD_NOW | RTLD_GLOBAL) == NULL); + + FILE *fp = xfopen (CONF, "a+"); + if (!fp) + FAIL_EXIT1 ("creating /etc/ld.so.conf failed: %m"); + xfclose (fp); + + /* Run ldconfig. */ + result = support_capture_subprocess (run_ldconfig, NULL); + support_capture_subprocess_check (&result, "execv", 0, sc_allow_none); + + /* Try to dlopen the same DSO again, we expect this to fail again. */ + TEST_VERIFY_EXIT (dlopen (DSO, RTLD_NOW | RTLD_GLOBAL) == NULL); + + /* Add tst-ldconfig directory to /etc/ld.so.conf. */ + fp = xfopen (CONF, "w"); + if (!(fwrite (DSO_DIR, 1, sizeof (DSO_DIR), fp))) + FAIL_EXIT1 ("updating /etc/ld.so.conf failed: %m"); + xfclose (fp); + + /* Try to dlopen the same DSO again, we expect this to still fail. */ + TEST_VERIFY_EXIT (dlopen (DSO, RTLD_NOW | RTLD_GLOBAL) == NULL); + + /* Run ldconfig again. */ + result = support_capture_subprocess (run_ldconfig, NULL); + support_capture_subprocess_check (&result, "execv", 0, sc_allow_none); + support_capture_subprocess_free (&result); + + /* Finally, we expect dlopen to pass now. */ + TEST_VERIFY_EXIT (dlopen (DSO, RTLD_NOW | RTLD_GLOBAL) != NULL); + + return 0; +} + +#include diff --git a/elf/tst-ldconfig-ld_so_conf-update.root/postclean.req b/elf/tst-ldconfig-ld_so_conf-update.root/postclean.req new file mode 100644 index 0000000000..e69de29bb2 diff --git a/elf/tst-ldconfig-ld_so_conf-update.root/tst-ldconfig-ld_so_conf-update.script b/elf/tst-ldconfig-ld_so_conf-update.root/tst-ldconfig-ld_so_conf-update.script new file mode 100644 index 0000000000..be562ba554 --- /dev/null +++ b/elf/tst-ldconfig-ld_so_conf-update.root/tst-ldconfig-ld_so_conf-update.script @@ -0,0 +1 @@ +cp $B/elf/tst-ldconfig-ld-mod.so $L/tst-ldconfig-ld-mod.so diff --git a/elf/tst-libc_dlvsym-dso.c b/elf/tst-libc_dlvsym-dso.c index e4fd4f007b..40f85b747e 100644 --- a/elf/tst-libc_dlvsym-dso.c +++ b/elf/tst-libc_dlvsym-dso.c @@ -1,5 +1,5 @@ /* Compare dlvsym and __libc_dlvsym results. Shared object code. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include "tst-libc_dlvsym.h" diff --git a/elf/tst-libc_dlvsym-static.c b/elf/tst-libc_dlvsym-static.c index 0f28549eea..73f9f8842b 100644 --- a/elf/tst-libc_dlvsym-static.c +++ b/elf/tst-libc_dlvsym-static.c @@ -1,5 +1,5 @@ /* Compare dlvsym and __libc_dlvsym results. Static version. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/elf/tst-libc_dlvsym.c b/elf/tst-libc_dlvsym.c index 93f307dc6b..fef5ddd922 100644 --- a/elf/tst-libc_dlvsym.c +++ b/elf/tst-libc_dlvsym.c @@ -1,5 +1,5 @@ /* Compare dlvsym and __libc_dlvsym results. Dynamic version. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include "tst-libc_dlvsym.h" diff --git a/elf/tst-libc_dlvsym.h b/elf/tst-libc_dlvsym.h index 31275f180b..6b132dd7c3 100644 --- a/elf/tst-libc_dlvsym.h +++ b/elf/tst-libc_dlvsym.h @@ -1,5 +1,5 @@ /* Compare dlvsym and __libc_dlvsym results. Common code. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* compare_vsyms is the main entry point for these tests. diff --git a/elf/tst-linkall-static.c b/elf/tst-linkall-static.c index fbeefe7e43..c9ee9c28f8 100644 --- a/elf/tst-linkall-static.c +++ b/elf/tst-linkall-static.c @@ -1,5 +1,5 @@ /* Test static linking against multiple libraries, to find symbol conflicts. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; see the file COPYING.LIB. If - not, see . */ + not, see . */ #include #include diff --git a/elf/tst-main1.c b/elf/tst-main1.c index 798cc57c59..e5481ee741 100644 --- a/elf/tst-main1.c +++ b/elf/tst-main1.c @@ -1,5 +1,5 @@ /* Unit test for main () in a shared object. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,6 +14,6 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This is empty. */ diff --git a/elf/tst-main1mod.c b/elf/tst-main1mod.c index 1a204c9f98..65422f57b8 100644 --- a/elf/tst-main1mod.c +++ b/elf/tst-main1mod.c @@ -1,5 +1,5 @@ /* Unit test for main () in a shared object. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ static int do_test (void) diff --git a/elf/tst-nodelete-dlclose-dso.c b/elf/tst-nodelete-dlclose-dso.c index 1d65fc4992..c8eef76b74 100644 --- a/elf/tst-nodelete-dlclose-dso.c +++ b/elf/tst-nodelete-dlclose-dso.c @@ -1,5 +1,5 @@ /* Bug 11941: Improper assert map->l_init_called in dlclose. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This is the primary DSO that is loaded by the appliation. This DSO then loads a plugin with RTLD_NODELETE. This plugin depends on this diff --git a/elf/tst-nodelete-dlclose-plugin.c b/elf/tst-nodelete-dlclose-plugin.c index cd078a31cd..cc8a2fbaf7 100644 --- a/elf/tst-nodelete-dlclose-plugin.c +++ b/elf/tst-nodelete-dlclose-plugin.c @@ -1,5 +1,5 @@ /* Bug 11941: Improper assert map->l_init_called in dlclose. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This DSO simulates a plugin with a dependency on the primary DSO loaded by the appliation. */ diff --git a/elf/tst-nodelete-dlclose.c b/elf/tst-nodelete-dlclose.c index 38f8969f0e..74e2263ff4 100644 --- a/elf/tst-nodelete-dlclose.c +++ b/elf/tst-nodelete-dlclose.c @@ -1,5 +1,5 @@ /* Bug 11941: Improper assert map->l_init_called in dlclose. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This simulates an application using the primary DSO which loads the plugin DSO. */ diff --git a/elf/tst-nodelete-opened-lib.c b/elf/tst-nodelete-opened-lib.c index b4164cc1c7..34c299f360 100644 --- a/elf/tst-nodelete-opened-lib.c +++ b/elf/tst-nodelete-opened-lib.c @@ -1,5 +1,5 @@ /* Verify that objects opened with RTLD_NODELETE are not unloaded - the DSO. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,6 +14,6 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ int foo_var = 42; diff --git a/elf/tst-nodelete-opened.c b/elf/tst-nodelete-opened.c index d720f97f66..ecc58aa233 100644 --- a/elf/tst-nodelete-opened.c +++ b/elf/tst-nodelete-opened.c @@ -1,7 +1,7 @@ /* Verify that an already opened DSO opened agained with RTLD_NODELETE actually sets the NODELETE flag. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-noload.c b/elf/tst-noload.c index b588b97de4..a56299926e 100644 --- a/elf/tst-noload.c +++ b/elf/tst-noload.c @@ -1,6 +1,6 @@ /* Verify that RTLD_NOLOAD works as expected. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-null-argv-lib.c b/elf/tst-null-argv-lib.c index f7bceb3510..70b1aa2a3e 100644 --- a/elf/tst-null-argv-lib.c +++ b/elf/tst-null-argv-lib.c @@ -1,6 +1,6 @@ /* Verify that program does not crash when LD_DEBUG is set and the program name is not available. This is the library. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ void foo (void) diff --git a/elf/tst-null-argv.c b/elf/tst-null-argv.c index 26494401e3..2ea85d455c 100644 --- a/elf/tst-null-argv.c +++ b/elf/tst-null-argv.c @@ -1,6 +1,6 @@ /* Verify that program does not crash when LD_DEBUG is set and the program name is not available. - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ extern void foo (void); diff --git a/elf/tst-pathopt.sh b/elf/tst-pathopt.sh index b8baddaf40..332bd1e293 100755 --- a/elf/tst-pathopt.sh +++ b/elf/tst-pathopt.sh @@ -1,6 +1,6 @@ #!/bin/sh # Test lookup path optimization. -# Copyright (C) 2000-2019 Free Software Foundation, Inc. +# Copyright (C) 2000-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . set -e diff --git a/elf/tst-pie2.c b/elf/tst-pie2.c index 1cd9103afb..02956fc687 100644 --- a/elf/tst-pie2.c +++ b/elf/tst-pie2.c @@ -1,6 +1,6 @@ /* Test case for BZ #16381 - Copyright (C) 2014-2019 Free Software Foundation, Inc. + Copyright (C) 2014-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/elf/tst-pldd.c b/elf/tst-pldd.c index 6b7c94a1c0..b247e8d604 100644 --- a/elf/tst-pldd.c +++ b/elf/tst-pldd.c @@ -1,5 +1,5 @@ /* Basic tests for pldd program. - Copyright (C) 2019 Free Software Foundation, Inc. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -30,6 +30,11 @@ #include #include #include +#include +#include +#include +#include +#include static void target_process (void *arg) @@ -37,6 +42,34 @@ target_process (void *arg) pause (); } +static void +pldd_process (void *arg) +{ + pid_t *target_pid_ptr = (pid_t *) arg; + + /* Create a copy of current test to check with pldd. As the + target_process is a child of this pldd_process, pldd is also able + to attach to target_process if YAMA is configured to 1 = + "restricted ptrace". */ + struct support_subprocess target = support_subprocess (target_process, NULL); + + /* Store the pid of target-process as do_test needs it in order to + e.g. terminate it at end of the test. */ + *target_pid_ptr = target.pid; + + /* Three digits per byte plus null terminator. */ + char pid[3 * sizeof (uint32_t) + 1]; + snprintf (pid, array_length (pid), "%d", target.pid); + + char *prog = xasprintf ("%s/pldd", support_bindir_prefix); + + /* Run pldd and use the pid of target_process as argument. */ + execve (prog, (char *const []) { (char *) prog, pid, NULL }, + (char *const []) { NULL }); + + FAIL_EXIT1 ("Returned from execve: errno=%d=%m\n", errno); +} + /* The test runs in a container because pldd does not support tracing a binary started by the loader iself (as with testrun.sh). */ @@ -52,25 +85,22 @@ in_str_list (const char *libname, const char *const strlist[]) static int do_test (void) { - /* Create a copy of current test to check with pldd. */ - struct support_subprocess target = support_subprocess (target_process, NULL); - - /* Run 'pldd' on test subprocess. */ - struct support_capture_subprocess pldd; + /* Check if our subprocess can be debugged with ptrace. */ { - /* Three digits per byte plus null terminator. */ - char pid[3 * sizeof (uint32_t) + 1]; - snprintf (pid, array_length (pid), "%d", target.pid); - - char *prog = xasprintf ("%s/pldd", support_bindir_prefix); - - pldd = support_capture_subprogram (prog, - (char *const []) { (char *) prog, pid, NULL }); + int ptrace_scope = support_ptrace_scope (); + if (ptrace_scope >= 2) + FAIL_UNSUPPORTED ("/proc/sys/kernel/yama/ptrace_scope >= 2"); + } - support_capture_subprocess_check (&pldd, "pldd", 0, sc_allow_stdout); + pid_t *target_pid_ptr = (pid_t *) xmmap (NULL, sizeof (pid_t), + PROT_READ | PROT_WRITE, + MAP_SHARED | MAP_ANONYMOUS, -1); - free (prog); - } + /* Run 'pldd' on test subprocess which will be created in pldd_process. + The pid of the subprocess will be written to target_pid_ptr. */ + struct support_capture_subprocess pldd; + pldd = support_capture_subprocess (pldd_process, target_pid_ptr); + support_capture_subprocess_check (&pldd, "pldd", 0, sc_allow_stdout); /* Check 'pldd' output. The test is expected to be linked against only loader and libc. */ @@ -85,7 +115,7 @@ do_test (void) /* First line is in the form of : */ TEST_COMPARE (fscanf (out, "%u: " STRINPUT (512), &pid, buffer), 2); - TEST_COMPARE (pid, target.pid); + TEST_COMPARE (pid, *target_pid_ptr); TEST_COMPARE (strcmp (basename (buffer), "tst-pldd"), 0); /* It expects only one loader and libc loaded by the program. */ @@ -93,7 +123,7 @@ do_test (void) while (fgets (buffer, array_length (buffer), out) != NULL) { /* Ignore vDSO. */ - if (buffer[0] != '/') + if (buffer[0] != '/') continue; /* Remove newline so baseline (buffer) can compare against the @@ -128,7 +158,9 @@ do_test (void) } support_capture_subprocess_free (&pldd); - support_process_terminate (&target); + if (kill (*target_pid_ptr, SIGKILL) != 0) + FAIL_EXIT1 ("Unable to kill target_process: errno=%d=%m\n", errno); + xmunmap (target_pid_ptr, sizeof (pid_t)); return 0; } diff --git a/elf/tst-prelink.c b/elf/tst-prelink.c index 918e2baac1..4738f79c27 100644 --- a/elf/tst-prelink.c +++ b/elf/tst-prelink.c @@ -1,6 +1,6 @@ /* Test the output from the environment variable, LD_TRACE_PRELINKING, for prelink. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/elf/tst-protected1a.c b/elf/tst-protected1a.c index 86c0bc1389..01073975b5 100644 --- a/elf/tst-protected1a.c +++ b/elf/tst-protected1a.c @@ -7,7 +7,7 @@ 4. Symbol, protected2, defined in main, is used in main. 5. Symbol, protected3, defined in moda, is also used in main. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -22,7 +22,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This file must be compiled as PIE to avoid copy relocation when accessing protected symbols defined in shared libaries since copy diff --git a/elf/tst-protected1b.c b/elf/tst-protected1b.c index 4ea9ca6f00..f063569e94 100644 --- a/elf/tst-protected1b.c +++ b/elf/tst-protected1b.c @@ -7,7 +7,7 @@ 4. Symbol, protected2, defined in main, is used in main. 5. Symbol, protected3, defined in modb, is also used in main. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -22,7 +22,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This file must be compiled as PIE to avoid copy relocation when accessing protected symbols defined in shared libaries since copy diff --git a/elf/tst-protected1mod.h b/elf/tst-protected1mod.h index 98c1bf7e03..91d16fb12a 100644 --- a/elf/tst-protected1mod.h +++ b/elf/tst-protected1mod.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2019 Free Software Foundation, Inc. +/* Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Prototypes for the functions in the DSOs. */ extern int protected1; diff --git a/elf/tst-protected1moda.c b/elf/tst-protected1moda.c index 86b346d17e..c3266a1c07 100644 --- a/elf/tst-protected1moda.c +++ b/elf/tst-protected1moda.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2019 Free Software Foundation, Inc. +/* Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include "tst-protected1mod.h" diff --git a/elf/tst-protected1modb.c b/elf/tst-protected1modb.c index 61645756e2..ef9ed0cffe 100644 --- a/elf/tst-protected1modb.c +++ b/elf/tst-protected1modb.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2015-2019 Free Software Foundation, Inc. +/* Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include "tst-protected1mod.h" diff --git a/elf/tst-ptrguard1.c b/elf/tst-ptrguard1.c index c2c16d8a98..5b361d769d 100644 --- a/elf/tst-ptrguard1.c +++ b/elf/tst-ptrguard1.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2013-2019 Free Software Foundation, Inc. +/* Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-rtld-load-self.sh b/elf/tst-rtld-load-self.sh index 5afcec7216..1fbc39e21c 100755 --- a/elf/tst-rtld-load-self.sh +++ b/elf/tst-rtld-load-self.sh @@ -1,6 +1,6 @@ #!/bin/sh # Test how rtld loads itself. -# Copyright (C) 2012-2019 Free Software Foundation, Inc. +# Copyright (C) 2012-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # @@ -16,7 +16,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . set -e diff --git a/elf/tst-rtld-preload.sh b/elf/tst-rtld-preload.sh index f0c0ca11ba..190d35c2ea 100755 --- a/elf/tst-rtld-preload.sh +++ b/elf/tst-rtld-preload.sh @@ -1,6 +1,6 @@ #!/bin/sh # Test --preload argument ld.so. -# Copyright (C) 2019 Free Software Foundation, Inc. +# Copyright (C) 2019-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # # The GNU C Library is free software; you can redistribute it and/or @@ -15,23 +15,22 @@ # # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . set -e rtld=$1 test_program=$2 -test_wrapper=$3 -test_wrapper_env=$4 -run_program_env=$5 -library_path=$6 -preload=$7 +test_wrapper_env=$3 +run_program_env=$4 +library_path=$5 +preload=$6 -echo "# [${test_wrapper}] [$rtld] [--library-path] [$library_path]" \ - "[--preload] [$preload] [$test_program]" +echo "# [${test_wrapper_env}] [${run_program_env}] [$rtld] [--library-path]" \ + "[$library_path] [--preload] [$preload] [$test_program]" ${test_wrapper_env} \ ${run_program_env} \ -${test_wrapper} $rtld --library-path "$library_path" \ +$rtld --library-path "$library_path" \ --preload "$preload" $test_program 2>&1 && rc=0 || rc=$? echo "# exit status $rc" diff --git a/elf/tst-sonamemove-dlopen.c b/elf/tst-sonamemove-dlopen.c index c496705044..453fbfbe51 100644 --- a/elf/tst-sonamemove-dlopen.c +++ b/elf/tst-sonamemove-dlopen.c @@ -1,5 +1,5 @@ /* Check that a moved versioned symbol can be found using dlsym, dlvsym. - Copyright (C) 2019 Free Software Foundation, Inc. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-sonamemove-link.c b/elf/tst-sonamemove-link.c index 4bc3bf32f8..d9f56ec607 100644 --- a/elf/tst-sonamemove-link.c +++ b/elf/tst-sonamemove-link.c @@ -1,5 +1,5 @@ /* Check that a versioned symbol can move from one library to another. - Copyright (C) 2019 Free Software Foundation, Inc. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* At link time, moved_function is bound to the symbol version SONAME_MOVE in tst-sonamemove-runmod1.so, using the diff --git a/elf/tst-sonamemove-linkmod1.c b/elf/tst-sonamemove-linkmod1.c index b8a354e5e3..72ce1df988 100644 --- a/elf/tst-sonamemove-linkmod1.c +++ b/elf/tst-sonamemove-linkmod1.c @@ -1,5 +1,5 @@ /* Link interface for (lack of) soname matching in versioned symbol refs. - Copyright (C) 2019 Free Software Foundation, Inc. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This function moved from tst-sonamemove-runmod1.so. This module is intended for linking only, to simulate an old application which was diff --git a/elf/tst-sonamemove-runmod1.c b/elf/tst-sonamemove-runmod1.c index 5c409e2289..fea0f5e009 100644 --- a/elf/tst-sonamemove-runmod1.c +++ b/elf/tst-sonamemove-runmod1.c @@ -1,5 +1,5 @@ /* Run-time module whose moved_function moved to a library dependency. - Copyright (C) 2019 Free Software Foundation, Inc. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Dummy function to add the required symbol version. */ void diff --git a/elf/tst-sonamemove-runmod2.c b/elf/tst-sonamemove-runmod2.c index b5e482eff5..3fdee25d12 100644 --- a/elf/tst-sonamemove-runmod2.c +++ b/elf/tst-sonamemove-runmod2.c @@ -1,5 +1,5 @@ /* Run-time module with the actual implementation of moved_function. - Copyright (C) 2019 Free Software Foundation, Inc. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* In the test scenario, this function was originally in tst-sonamemove-runmod1.so. */ diff --git a/elf/tst-stackguard1.c b/elf/tst-stackguard1.c index 8a8e4719d6..481850a991 100644 --- a/elf/tst-stackguard1.c +++ b/elf/tst-stackguard1.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2005-2019 Free Software Foundation, Inc. +/* Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jakub Jelinek , 2005. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-tls-manydynamic.c b/elf/tst-tls-manydynamic.c index 752f66e633..563e142dd0 100644 --- a/elf/tst-tls-manydynamic.c +++ b/elf/tst-tls-manydynamic.c @@ -1,5 +1,5 @@ /* Test with many dynamic TLS variables. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This test intends to exercise dynamic TLS variable allocation. It achieves this by combining dlopen (to avoid static TLS allocation diff --git a/elf/tst-tls-manydynamic.h b/elf/tst-tls-manydynamic.h index 2709c3b7f3..73ea9fab13 100644 --- a/elf/tst-tls-manydynamic.h +++ b/elf/tst-tls-manydynamic.h @@ -1,5 +1,5 @@ /* Interfaces for test with many dynamic TLS variables. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef TST_TLS_MANYDYNAMIC_H #define TST_TLS_MANYDYNAMIC_H diff --git a/elf/tst-tls-manydynamicmod.c b/elf/tst-tls-manydynamicmod.c index 7f64e8349d..3ee6fb8355 100644 --- a/elf/tst-tls-manydynamicmod.c +++ b/elf/tst-tls-manydynamicmod.c @@ -1,5 +1,5 @@ /* Module for test with many dynamic TLS variables. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This file is parameterized by macros NAME, SETTER, GETTER, which are set form the Makefile. */ diff --git a/elf/tst-tlsalign-extern.c b/elf/tst-tlsalign-extern.c index 6d695a6f72..d1f8701668 100644 --- a/elf/tst-tlsalign-extern.c +++ b/elf/tst-tlsalign-extern.c @@ -1,5 +1,5 @@ /* Test for large alignment in TLS blocks (extern case), BZ#18383. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-tlsalign.c b/elf/tst-tlsalign.c index 10681361e8..fc0a56e420 100644 --- a/elf/tst-tlsalign.c +++ b/elf/tst-tlsalign.c @@ -1,5 +1,5 @@ /* Test for large alignment in TLS blocks, BZ#18383. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-unwind-ctor-lib.c b/elf/tst-unwind-ctor-lib.c index fbafc863cc..6618533b01 100644 --- a/elf/tst-unwind-ctor-lib.c +++ b/elf/tst-unwind-ctor-lib.c @@ -1,5 +1,5 @@ /* Unit test for _Unwind_Backtrace in a shared object constructor. - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/tst-unwind-ctor.c b/elf/tst-unwind-ctor.c index 8d48ce7011..15ec726cc0 100644 --- a/elf/tst-unwind-ctor.c +++ b/elf/tst-unwind-ctor.c @@ -1,5 +1,5 @@ /* Unit test for _Unwind_Backtrace in a shared object constructor. - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ extern void dummy (void); diff --git a/elf/tst-unwind-main.c b/elf/tst-unwind-main.c index 0c345dc31f..7c1ff9ed1d 100644 --- a/elf/tst-unwind-main.c +++ b/elf/tst-unwind-main.c @@ -1,5 +1,5 @@ /* Test unwinding through main. - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/elf/vismain.c b/elf/vismain.c index e6bdab9980..63b511f966 100644 --- a/elf/vismain.c +++ b/elf/vismain.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2019 Free Software Foundation, Inc. +/* Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This file must be compiled as PIE to avoid copy relocation when accessing protected symbols defined in shared libaries since copy diff --git a/elf/vismod1.c b/elf/vismod1.c index dd328d6fa1..58f71deacf 100644 --- a/elf/vismod1.c +++ b/elf/vismod1.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2019 Free Software Foundation, Inc. +/* Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include "vismod.h" diff --git a/elf/vismod2.c b/elf/vismod2.c index 8c274236c4..972b35c12c 100644 --- a/elf/vismod2.c +++ b/elf/vismod2.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2019 Free Software Foundation, Inc. +/* Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include "vismod.h" diff --git a/elf/vismod3.c b/elf/vismod3.c index c700567c92..d9888a7f8f 100644 --- a/elf/vismod3.c +++ b/elf/vismod3.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2019 Free Software Foundation, Inc. +/* Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include "vismod.h" diff --git a/gmon/Makefile b/gmon/Makefile index 178a36be61..43d116e51f 100644 --- a/gmon/Makefile +++ b/gmon/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1995-2019 Free Software Foundation, Inc. +# Copyright (C) 1995-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # # Sub-makefile for gmon portion of the library. diff --git a/gmon/Versions b/gmon/Versions index d0b63334f2..cc705bd978 100644 --- a/gmon/Versions +++ b/gmon/Versions @@ -19,4 +19,6 @@ libc { GLIBC_2.2.3 { sprofil; } + GLIBC_2.31 { + } } diff --git a/gmon/profil.c b/gmon/profil.c index d4f00ae83e..7431873aa6 100644 --- a/gmon/profil.c +++ b/gmon/profil.c @@ -1,5 +1,5 @@ /* Low-level statistical profiling support function. Stub version. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/gmon/sprofil.c b/gmon/sprofil.c index 8d787e6e7f..4978b9f296 100644 --- a/gmon/sprofil.c +++ b/gmon/sprofil.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Free Software Foundation, Inc. +/* Copyright (C) 2001-2020 Free Software Foundation, Inc. Contributed by David Mosberger-Tang . This file is part of the GNU C Library. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/gmon/sys/gmon_out.h b/gmon/sys/gmon_out.h index 417c6c8c04..b8d013f2e4 100644 --- a/gmon/sys/gmon_out.h +++ b/gmon/sys/gmon_out.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2019 Free Software Foundation, Inc. +/* Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by David Mosberger . @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This file specifies the format of gmon.out files. It should have as few external dependencies as possible as it is going to be included diff --git a/gmon/sys/profil.h b/gmon/sys/profil.h index ba99ac8634..9f71e6d081 100644 --- a/gmon/sys/profil.h +++ b/gmon/sys/profil.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Free Software Foundation, Inc. +/* Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _PROFIL_H #define _PROFIL_H 1 diff --git a/gmon/tst-gmon-gprof.sh b/gmon/tst-gmon-gprof.sh index fe2d9f2a17..90313a5b02 100644 --- a/gmon/tst-gmon-gprof.sh +++ b/gmon/tst-gmon-gprof.sh @@ -1,6 +1,6 @@ #!/bin/sh # Check the output of gprof against a carfully crafted binary. -# Copyright (C) 2017-2019 Free Software Foundation, Inc. +# Copyright (C) 2017-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . LC_ALL=C export LC_ALL diff --git a/gmon/tst-gmon-static-gprof.sh b/gmon/tst-gmon-static-gprof.sh index a8ab263d1e..c5511d94f0 100644 --- a/gmon/tst-gmon-static-gprof.sh +++ b/gmon/tst-gmon-static-gprof.sh @@ -1,6 +1,6 @@ #!/bin/sh # Check the output of gprof against a carfully crafted static binary. -# Copyright (C) 2017-2019 Free Software Foundation, Inc. +# Copyright (C) 2017-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . LC_ALL=C export LC_ALL diff --git a/gmon/tst-gmon.c b/gmon/tst-gmon.c index 7649e27e20..9aeedeedaf 100644 --- a/gmon/tst-gmon.c +++ b/gmon/tst-gmon.c @@ -1,5 +1,5 @@ /* Test program for profiling information collection (_mcount/gprof). - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This program does not use the test harness because we want tight control over the call graph. */ diff --git a/gmon/tst-sprofil.c b/gmon/tst-sprofil.c index 3f7f909cba..6663a97caf 100644 --- a/gmon/tst-sprofil.c +++ b/gmon/tst-sprofil.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Free Software Foundation, Inc. +/* Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by David Mosberger-Tang . @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/gnulib/Makefile b/gnulib/Makefile index fc4a9c1425..fc4c3bcb49 100644 --- a/gnulib/Makefile +++ b/gnulib/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991-2019 Free Software Foundation, Inc. +# Copyright (C) 1991-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . subdir := gnulib diff --git a/gnulib/tst-gcc.c b/gnulib/tst-gcc.c index fbefc57363..1d981a1191 100644 --- a/gnulib/tst-gcc.c +++ b/gnulib/tst-gcc.c @@ -1,5 +1,5 @@ /* Test program for the gcc interface. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper . @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/grp/Makefile b/grp/Makefile index 94297bb734..34fceb628f 100644 --- a/grp/Makefile +++ b/grp/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991-2019 Free Software Foundation, Inc. +# Copyright (C) 1991-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # # Sub-makefile for grp portion of the library. diff --git a/grp/fgetgrent.c b/grp/fgetgrent.c index 68f7b6fc42..fc0bd526ab 100644 --- a/grp/fgetgrent.c +++ b/grp/fgetgrent.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/grp/fgetgrent_r.c b/grp/fgetgrent_r.c index f701f5fd2f..03daf4f295 100644 --- a/grp/fgetgrent_r.c +++ b/grp/fgetgrent_r.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/grp/getgrent.c b/grp/getgrent.c index 57b23d8b1b..e758ccadf6 100644 --- a/grp/getgrent.c +++ b/grp/getgrent.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2019 Free Software Foundation, Inc. +/* Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/grp/getgrent_r.c b/grp/getgrent_r.c index d80d489192..49529c790d 100644 --- a/grp/getgrent_r.c +++ b/grp/getgrent_r.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2019 Free Software Foundation, Inc. +/* Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/grp/getgrgid.c b/grp/getgrgid.c index b23f431935..e87b2fcdbe 100644 --- a/grp/getgrgid.c +++ b/grp/getgrgid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2019 Free Software Foundation, Inc. +/* Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/grp/getgrgid_r.c b/grp/getgrgid_r.c index eb0e53bca8..7c740c7bac 100644 --- a/grp/getgrgid_r.c +++ b/grp/getgrgid_r.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2019 Free Software Foundation, Inc. +/* Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/grp/getgrnam.c b/grp/getgrnam.c index 03a9a6a0eb..afa12f9d72 100644 --- a/grp/getgrnam.c +++ b/grp/getgrnam.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2019 Free Software Foundation, Inc. +/* Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/grp/getgrnam_r.c b/grp/getgrnam_r.c index 28614a8065..7f80c573c5 100644 --- a/grp/getgrnam_r.c +++ b/grp/getgrnam_r.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2019 Free Software Foundation, Inc. +/* Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/grp/grp-merge.c b/grp/grp-merge.c index 8227d52ea5..77f5c0c371 100644 --- a/grp/grp-merge.c +++ b/grp/grp-merge.c @@ -1,5 +1,5 @@ /* Group merging implementation. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/grp/grp-merge.h b/grp/grp-merge.h index d483ea2bf1..b6fc2583d1 100644 --- a/grp/grp-merge.h +++ b/grp/grp-merge.h @@ -1,5 +1,5 @@ /* Group merging implementation. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _GRP_MERGE_H #define _GRP_MERGE_H 1 diff --git a/grp/grp.h b/grp/grp.h index 0663c8f83c..396ef05885 100644 --- a/grp/grp.h +++ b/grp/grp.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* * POSIX Standard: 9.2.1 Group Database Access diff --git a/grp/initgroups.c b/grp/initgroups.c index a22f33c934..f4c4e986e9 100644 --- a/grp/initgroups.c +++ b/grp/initgroups.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1989, 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1989, 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/grp/putgrent.c b/grp/putgrent.c index 60d45a2d6c..7d10b8ec02 100644 --- a/grp/putgrent.c +++ b/grp/putgrent.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/grp/setgroups.c b/grp/setgroups.c index b89eda1c18..f5b3e1b8d3 100644 --- a/grp/setgroups.c +++ b/grp/setgroups.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/grp/tst-putgrent.c b/grp/tst-putgrent.c index e0a226256a..3bc254f934 100644 --- a/grp/tst-putgrent.c +++ b/grp/tst-putgrent.c @@ -1,5 +1,5 @@ /* Test for processing of invalid group entries. [BZ #18724] - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/grp/tst_fgetgrent.c b/grp/tst_fgetgrent.c index abab04e08c..fc97e42de1 100644 --- a/grp/tst_fgetgrent.c +++ b/grp/tst_fgetgrent.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2019 Free Software Foundation, Inc. +/* Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Andreas Jaeger , 1999. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/grp/tst_fgetgrent.sh b/grp/tst_fgetgrent.sh index 315d58521b..d0bf84f878 100644 --- a/grp/tst_fgetgrent.sh +++ b/grp/tst_fgetgrent.sh @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (C) 1999-2019 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # Contributed by Andreas Jaeger , 1999. @@ -15,7 +15,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . set -e diff --git a/gshadow/Makefile b/gshadow/Makefile index edf298e777..089aa6125f 100644 --- a/gshadow/Makefile +++ b/gshadow/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 2009-2019 Free Software Foundation, Inc. +# Copyright (C) 2009-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # # Makefile for gshadow. diff --git a/gshadow/fgetsgent.c b/gshadow/fgetsgent.c index 46c206c8eb..881611f83a 100644 --- a/gshadow/fgetsgent.c +++ b/gshadow/fgetsgent.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2019 Free Software Foundation, Inc. +/* Copyright (C) 2009-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/gshadow/fgetsgent_r.c b/gshadow/fgetsgent_r.c index 19a663f048..a7a1860c76 100644 --- a/gshadow/fgetsgent_r.c +++ b/gshadow/fgetsgent_r.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2019 Free Software Foundation, Inc. +/* Copyright (C) 2009-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/gshadow/getsgent.c b/gshadow/getsgent.c index 8f080f0b60..c85f2e4a2a 100644 --- a/gshadow/getsgent.c +++ b/gshadow/getsgent.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2019 Free Software Foundation, Inc. +/* Copyright (C) 2009-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2009. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/gshadow/getsgent_r.c b/gshadow/getsgent_r.c index e3ac1e58db..b61ecde4ac 100644 --- a/gshadow/getsgent_r.c +++ b/gshadow/getsgent_r.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2019 Free Software Foundation, Inc. +/* Copyright (C) 2009-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2009. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/gshadow/getsgnam.c b/gshadow/getsgnam.c index c7ff58cafe..e246d487fe 100644 --- a/gshadow/getsgnam.c +++ b/gshadow/getsgnam.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2019 Free Software Foundation, Inc. +/* Copyright (C) 2009-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2009. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/gshadow/getsgnam_r.c b/gshadow/getsgnam_r.c index 936e5942b8..3ab0c72215 100644 --- a/gshadow/getsgnam_r.c +++ b/gshadow/getsgnam_r.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2019 Free Software Foundation, Inc. +/* Copyright (C) 2009-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2009. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/gshadow/gshadow.h b/gshadow/gshadow.h index c1998083e6..9bcb473ce5 100644 --- a/gshadow/gshadow.h +++ b/gshadow/gshadow.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2019 Free Software Foundation, Inc. +/* Copyright (C) 2009-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Declaration of types and functions for shadow group suite. */ diff --git a/gshadow/putsgent.c b/gshadow/putsgent.c index 46a06dbba3..03cd8e1561 100644 --- a/gshadow/putsgent.c +++ b/gshadow/putsgent.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2019 Free Software Foundation, Inc. +/* Copyright (C) 2009-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/gshadow/sgetsgent.c b/gshadow/sgetsgent.c index 2cb02edc61..1ca81bd857 100644 --- a/gshadow/sgetsgent.c +++ b/gshadow/sgetsgent.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2019 Free Software Foundation, Inc. +/* Copyright (C) 2009-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/gshadow/sgetsgent_r.c b/gshadow/sgetsgent_r.c index 53e6b7d887..89a6c41ef7 100644 --- a/gshadow/sgetsgent_r.c +++ b/gshadow/sgetsgent_r.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2009-2019 Free Software Foundation, Inc. +/* Copyright (C) 2009-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/gshadow/tst-putsgent.c b/gshadow/tst-putsgent.c index 69464834d0..3f5545f430 100644 --- a/gshadow/tst-putsgent.c +++ b/gshadow/tst-putsgent.c @@ -1,5 +1,5 @@ /* Test for processing of invalid gshadow entries. [BZ #18724] - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hesiod/Makefile b/hesiod/Makefile index 6fb81ef323..8bf0e3a90a 100644 --- a/hesiod/Makefile +++ b/hesiod/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2019 Free Software Foundation, Inc. +# Copyright (C) 1997-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # # Sub-makefile for hesiod portion of the library. diff --git a/hesiod/hesiod.c b/hesiod/hesiod.c index 6b5ebdb33f..80bcd5c8da 100644 --- a/hesiod/hesiod.c +++ b/hesiod/hesiod.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2019 Free Software Foundation, Inc. +/* Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* * Copyright (c) 1996,1999 by Internet Software Consortium. diff --git a/hesiod/hesiod.h b/hesiod/hesiod.h index 814b0b4006..5f2510cfcf 100644 --- a/hesiod/hesiod.h +++ b/hesiod/hesiod.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2019 Free Software Foundation, Inc. +/* Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* * Copyright (c) 1996,1999 by Internet Software Consortium. diff --git a/hesiod/hesiod_p.h b/hesiod/hesiod_p.h index d87bb188c7..e1ff0b754c 100644 --- a/hesiod/hesiod_p.h +++ b/hesiod/hesiod_p.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2019 Free Software Foundation, Inc. +/* Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* * Copyright (c) 1996,1999 by Internet Software Consortium. diff --git a/hesiod/nss_hesiod/hesiod-grp.c b/hesiod/nss_hesiod/hesiod-grp.c index db073563af..c6d02247b7 100644 --- a/hesiod/nss_hesiod/hesiod-grp.c +++ b/hesiod/nss_hesiod/hesiod-grp.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2019 Free Software Foundation, Inc. +/* Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Mark Kettenis , 1997. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hesiod/nss_hesiod/hesiod-proto.c b/hesiod/nss_hesiod/hesiod-proto.c index 5c6649278e..d317fb71df 100644 --- a/hesiod/nss_hesiod/hesiod-proto.c +++ b/hesiod/nss_hesiod/hesiod-proto.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2019 Free Software Foundation, Inc. +/* Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Mark Kettenis , 1997. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hesiod/nss_hesiod/hesiod-pwd.c b/hesiod/nss_hesiod/hesiod-pwd.c index 19d939136b..335b594f31 100644 --- a/hesiod/nss_hesiod/hesiod-pwd.c +++ b/hesiod/nss_hesiod/hesiod-pwd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2019 Free Software Foundation, Inc. +/* Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Mark Kettenis , 1997. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hesiod/nss_hesiod/hesiod-service.c b/hesiod/nss_hesiod/hesiod-service.c index b85898e86e..94fa5112c9 100644 --- a/hesiod/nss_hesiod/hesiod-service.c +++ b/hesiod/nss_hesiod/hesiod-service.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2019 Free Software Foundation, Inc. +/* Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Mark Kettenis , 1997. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/htl/Makefile b/htl/Makefile index 4d1b51cea9..b9d3831dd9 100644 --- a/htl/Makefile +++ b/htl/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 1994-2019 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # # The GNU C Library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . subdir := htl @@ -120,7 +120,6 @@ libpthread-routines := pt-attr pt-attr-destroy pt-attr-getdetachstate \ pt-sigstate-destroy \ pt-sigstate \ \ - pt-atfork \ old_pt-atfork \ pt-kill \ pt-getcpuclockid \ @@ -135,10 +134,9 @@ libpthread-routines := pt-attr pt-attr-destroy pt-attr-getdetachstate \ shm-directory \ \ cthreads-compat \ + herrno \ $(SYSDEPS) -libpthread-static-only-routines = pt-atfork - headers := \ pthread.h \ semaphore.h \ @@ -166,8 +164,9 @@ headers := \ distribute := -routines := forward libc_pthread_init alloca_cutoff +routines := forward libc_pthread_init alloca_cutoff pt-atfork shared-only-routines = forward +static-only-routines = pt-atfork extra-libs := libpthread extra-libs-others := $(extra-libs) @@ -204,34 +203,8 @@ extra-B-pthread.so = -B$(common-objpfx)htl/ include ../Rules ifeq (yes,$(build-shared)) -# What we install as libpthread.so for programs to link against is in fact a -# link script. It contains references for the various libraries we need. -# The libpthread.so object is not complete since some functions are only -# defined in libpthread_nonshared.a. -# We need to use absolute paths since otherwise local copies (if they exist) -# of the files are taken by the linker. -install: $(inst_libdir)/libpthread.so - -$(inst_libdir)/libpthread.so: $(common-objpfx)format.lds \ - $(objpfx)libpthread.so$(libpthread.so-version) \ - $(inst_libdir)/$(patsubst %,$(libtype.oS),\ - $(libprefix)pthread) \ - $(+force) - (echo '/* GNU ld script';\ - echo ' Use the shared library, but some functions are only in';\ - echo ' the static library, so try that secondarily. */';\ - cat $<; \ - echo 'GROUP ( $(slibdir)/libpthread.so$(libpthread.so-version)' \ - '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)pthread)'\ - ')' \ - ) > $@.new - mv -f $@.new $@ - $(addprefix $(objpfx), \ $(filter-out $(tests-static) $(xtests-static) $(tests-reverse) \ $(tests-nolibpthread), \ - $(tests) $(xtests) $(test-srcs))): $(objpfx)libpthread.so \ - $(objpfx)libpthread_nonshared.a + $(tests) $(xtests) $(test-srcs))): $(objpfx)libpthread.so endif - -generated += libpthread_nonshared.a diff --git a/htl/Versions b/htl/Versions index c5a616da10..77f7335b9c 100644 --- a/htl/Versions +++ b/htl/Versions @@ -29,6 +29,7 @@ libc { libpthread { GLIBC_2.2.6 { _IO_flockfile; _IO_ftrylockfile; _IO_funlockfile; + __errno_location; __h_errno_location; } GLIBC_2.12 { __pthread_errorcheck_mutexattr; __pthread_recursive_mutexattr; @@ -154,5 +155,6 @@ libpthread { __pthread_setspecific; __pthread_getattr_np; __pthread_attr_getstack; + __pthread_mutex_timedlock; } } diff --git a/htl/alloca_cutoff.c b/htl/alloca_cutoff.c index 25c6d216b4..08ac09392f 100644 --- a/htl/alloca_cutoff.c +++ b/htl/alloca_cutoff.c @@ -1,5 +1,5 @@ /* Allocate a new thread structure. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/htl/cthreads-compat.c b/htl/cthreads-compat.c index 10cbc8e786..3668770828 100644 --- a/htl/cthreads-compat.c +++ b/htl/cthreads-compat.c @@ -1,5 +1,5 @@ /* Compatibility routines for cthreads. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/htl/forward.c b/htl/forward.c index 165dda3990..b0cc5f574b 100644 --- a/htl/forward.c +++ b/htl/forward.c @@ -1,5 +1,5 @@ /* Libc stubs for pthread functions. Hurd pthread version. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/sysdeps/posix/wait.c b/htl/herrno.c similarity index 63% rename from sysdeps/posix/wait.c rename to htl/herrno.c index 657b72f9d2..66174a03e9 100644 --- a/sysdeps/posix/wait.c +++ b/htl/herrno.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,18 +13,22 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ -#include +#include +#include +#undef h_errno +#include -/* Wait for a child to die. When one does, put its status in *STAT_LOC - and return its process ID. For errors, return (pid_t) -1. */ -__pid_t -__libc_wait (int *stat_loc) +/* We need to have the error status variable of the resolver + accessible in the libc. */ +extern __thread int __h_errno; + + +/* When threaded, h_errno may be a per-thread variable. */ +int * +__h_errno_location (void) { - return __waitpid (WAIT_ANY, (int *) stat_loc, 0); + return &__h_errno; } - -weak_alias (__libc_wait, __wait) -weak_alias (__libc_wait, wait) diff --git a/htl/libc_pthread_init.c b/htl/libc_pthread_init.c index 6afefba4a1..cee92f76ee 100644 --- a/htl/libc_pthread_init.c +++ b/htl/libc_pthread_init.c @@ -1,5 +1,5 @@ /* libc initialization for libpthread. Hurd pthread version. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/htl/lockfile.c b/htl/lockfile.c index 83c0f1e672..51ed5ef8cc 100644 --- a/htl/lockfile.c +++ b/htl/lockfile.c @@ -1,5 +1,5 @@ /* lockfile - Handle locking and unlocking of streams. Hurd pthread version. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include /* Must come before ! */ diff --git a/htl/pt-alloc.c b/htl/pt-alloc.c index dcf83176a0..4e6fa52c4a 100644 --- a/htl/pt-alloc.c +++ b/htl/pt-alloc.c @@ -1,5 +1,5 @@ /* Allocate a new thread structure. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/htl/pt-cancel.c b/htl/pt-cancel.c index cc23f1c794..4c7305c8d8 100644 --- a/htl/pt-cancel.c +++ b/htl/pt-cancel.c @@ -1,5 +1,5 @@ /* Cancel a thread. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/htl/pt-cleanup.c b/htl/pt-cleanup.c index 712d02b992..3f5f43f253 100644 --- a/htl/pt-cleanup.c +++ b/htl/pt-cleanup.c @@ -1,5 +1,5 @@ /* Add a cancelation handler to the stack. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/htl/pt-create.c b/htl/pt-create.c index 4f732001f8..0b3237f46a 100644 --- a/htl/pt-create.c +++ b/htl/pt-create.c @@ -1,5 +1,5 @@ /* Thread creation. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -178,7 +178,7 @@ __pthread_create_internal (struct __pthread **thread, shall be empty." If the currnet thread is not a pthread then we just inherit the process' sigmask. */ if (__pthread_num_threads == 1) - err = sigprocmask (0, 0, &sigset); + err = __sigprocmask (0, 0, &sigset); else err = __pthread_sigstate (_pthread_self (), 0, 0, &sigset, 0); assert_perror (err); diff --git a/htl/pt-dealloc.c b/htl/pt-dealloc.c index 643a4d6ad8..b42d9bbced 100644 --- a/htl/pt-dealloc.c +++ b/htl/pt-dealloc.c @@ -1,5 +1,5 @@ /* Deallocate a thread structure. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/htl/pt-detach.c b/htl/pt-detach.c index 429183001e..3d8e3ad0fe 100644 --- a/htl/pt-detach.c +++ b/htl/pt-detach.c @@ -1,5 +1,5 @@ /* Detach a thread. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/htl/pt-exit.c b/htl/pt-exit.c index b429a3f488..9a4db2da51 100644 --- a/htl/pt-exit.c +++ b/htl/pt-exit.c @@ -1,5 +1,5 @@ /* Thread termination. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/htl/pt-getattr.c b/htl/pt-getattr.c index 33fd87a9fb..dec0c1788b 100644 --- a/htl/pt-getattr.c +++ b/htl/pt-getattr.c @@ -1,5 +1,5 @@ /* Thread attributes retrieval. - Copyright (C) 2008-2019 Free Software Foundation, Inc. + Copyright (C) 2008-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/htl/pt-initialize.c b/htl/pt-initialize.c index 08c9403446..d5a64f7cd9 100644 --- a/htl/pt-initialize.c +++ b/htl/pt-initialize.c @@ -1,5 +1,5 @@ /* Initialize pthreads library. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/htl/pt-internal.h b/htl/pt-internal.h index e7151e04f1..f8d7d74244 100644 --- a/htl/pt-internal.h +++ b/htl/pt-internal.h @@ -1,5 +1,5 @@ /* Internal defenitions for pthreads library. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _PT_INTERNAL_H #define _PT_INTERNAL_H 1 @@ -37,6 +37,8 @@ # include #endif +#include + /* Thread state. */ enum pthread_state { @@ -58,16 +60,6 @@ enum pthread_state # define PTHREAD_SYSDEP_MEMBERS #endif -#if !(IS_IN (libpthread)) -/* Type of the TCB. */ -typedef struct -{ - void *tcb; /* Points to this structure. */ - void *dtv; /* Vector of pointers to TLS data. */ - thread_t self; /* This thread's control port. */ -} tcbhead_t; -#endif /* ! IS_IN (libpthread) */ - /* This structure describes a POSIX thread. */ struct __pthread { @@ -181,12 +173,14 @@ extern int __pthread_concurrency; brain-dead users of the pthread interface incorrectly assume that 0 is an invalid pthread id.) */ extern struct __pthread **__pthread_threads; +extern int __pthread_max_threads; extern pthread_rwlock_t __pthread_threads_lock; #define __pthread_getid(thread) \ - ({ struct __pthread *__t; \ + ({ struct __pthread *__t = NULL; \ __pthread_rwlock_rdlock (&__pthread_threads_lock); \ - __t = __pthread_threads[thread - 1]; \ + if (thread <= __pthread_max_threads) \ + __t = __pthread_threads[thread - 1]; \ __pthread_rwlock_unlock (&__pthread_threads_lock); \ __t; }) diff --git a/htl/pt-join.c b/htl/pt-join.c index e10c3e00de..b141c4c8b9 100644 --- a/htl/pt-join.c +++ b/htl/pt-join.c @@ -1,5 +1,5 @@ /* Wait for thread termination. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -27,7 +27,7 @@ /* Make calling thread wait for termination of thread THREAD. Return the exit status of the thread in *STATUS. */ int -pthread_join (pthread_t thread, void **status) +__pthread_join (pthread_t thread, void **status) { struct __pthread *pthread; int err = 0; @@ -75,3 +75,4 @@ pthread_join (pthread_t thread, void **status) return err; } +strong_alias (__pthread_join, pthread_join); diff --git a/htl/pt-self.c b/htl/pt-self.c index bb79a9dbba..fa38df2b6f 100644 --- a/htl/pt-self.c +++ b/htl/pt-self.c @@ -1,5 +1,5 @@ /* Get calling thread's ID. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/htl/pt-setcancelstate.c b/htl/pt-setcancelstate.c index 5b57cb20b9..7b5899697d 100644 --- a/htl/pt-setcancelstate.c +++ b/htl/pt-setcancelstate.c @@ -1,5 +1,5 @@ /* Set the cancel state for the calling thread. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/htl/pt-setcanceltype.c b/htl/pt-setcanceltype.c index c777ae16e3..2585d8b463 100644 --- a/htl/pt-setcanceltype.c +++ b/htl/pt-setcanceltype.c @@ -1,5 +1,5 @@ /* Set the cancel type for the calling thread. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/htl/pt-sigmask.c b/htl/pt-sigmask.c index f59e83fa6c..c5ba372f0e 100644 --- a/htl/pt-sigmask.c +++ b/htl/pt-sigmask.c @@ -1,5 +1,5 @@ /* Get or set a thread's signal mask. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/htl/pt-spin-inlines.c b/htl/pt-spin-inlines.c index 8ca20a2c1e..f304deff36 100644 --- a/htl/pt-spin-inlines.c +++ b/htl/pt-spin-inlines.c @@ -1,5 +1,5 @@ /* Spin locks non-inline functions. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* declares some extern inline functions. These functions are declared additionally here for use when inlining is diff --git a/htl/pt-testcancel.c b/htl/pt-testcancel.c index 8809d73916..1ec324b95f 100644 --- a/htl/pt-testcancel.c +++ b/htl/pt-testcancel.c @@ -1,5 +1,5 @@ /* Add an explicit cancelation point. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/htl/pt-yield.c b/htl/pt-yield.c index c88dac08ea..11aa852ed3 100644 --- a/htl/pt-yield.c +++ b/htl/pt-yield.c @@ -1,5 +1,5 @@ /* Yield the processor to another thread or process. - Copyright (C) 2010-2019 Free Software Foundation, Inc. + Copyright (C) 2010-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -22,5 +22,5 @@ int pthread_yield (void) { - return sched_yield (); + return __sched_yield (); } diff --git a/htl/tests/test-1.c b/htl/tests/test-1.c index 4fd2525c2e..c277e7c08b 100644 --- a/htl/tests/test-1.c +++ b/htl/tests/test-1.c @@ -1,5 +1,5 @@ /* Test mutexes. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define _GNU_SOURCE diff --git a/htl/tests/test-10.c b/htl/tests/test-10.c index 0aa3013233..f3e5644258 100644 --- a/htl/tests/test-10.c +++ b/htl/tests/test-10.c @@ -1,5 +1,5 @@ /* Test error checking mutexes. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define _GNU_SOURCE diff --git a/htl/tests/test-11.c b/htl/tests/test-11.c index 5261d9786b..6c3951a09e 100644 --- a/htl/tests/test-11.c +++ b/htl/tests/test-11.c @@ -1,5 +1,5 @@ /* Test rwlocks. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define _GNU_SOURCE diff --git a/htl/tests/test-12.c b/htl/tests/test-12.c index adf8ff5ff7..a5cb966249 100644 --- a/htl/tests/test-12.c +++ b/htl/tests/test-12.c @@ -1,5 +1,5 @@ /* Test concurrency level. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define _GNU_SOURCE diff --git a/htl/tests/test-13.c b/htl/tests/test-13.c index ffff25e8d3..9e78e27c66 100644 --- a/htl/tests/test-13.c +++ b/htl/tests/test-13.c @@ -1,5 +1,5 @@ /* Test condition attributes and pthread_cond_timedwait. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define _GNU_SOURCE diff --git a/htl/tests/test-14.c b/htl/tests/test-14.c index 2cb317e26a..fff8fe928f 100644 --- a/htl/tests/test-14.c +++ b/htl/tests/test-14.c @@ -1,5 +1,5 @@ /* Test pthread_mutex_timedlock. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define _GNU_SOURCE diff --git a/htl/tests/test-15.c b/htl/tests/test-15.c index 8c35d0ad5f..bac3b746f3 100644 --- a/htl/tests/test-15.c +++ b/htl/tests/test-15.c @@ -1,5 +1,5 @@ /* Test pthread_rwlock_timedrdlock and pthread_rwlock_timedwrlock. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define _GNU_SOURCE diff --git a/htl/tests/test-16.c b/htl/tests/test-16.c index 237c56cc0d..ed6de83f47 100644 --- a/htl/tests/test-16.c +++ b/htl/tests/test-16.c @@ -1,5 +1,5 @@ /* Test pthread_kill.c. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define _GNU_SOURCE diff --git a/htl/tests/test-17.c b/htl/tests/test-17.c index 2b51f38bd9..0ecd367d3f 100644 --- a/htl/tests/test-17.c +++ b/htl/tests/test-17.c @@ -1,6 +1,6 @@ /* Test that the key reuse inside libpthread does not cause thread specific values to persist. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define _GNU_SOURCE 1 diff --git a/htl/tests/test-2.c b/htl/tests/test-2.c index 5f3906c73d..11e0458a65 100644 --- a/htl/tests/test-2.c +++ b/htl/tests/test-2.c @@ -1,5 +1,5 @@ /* Test detachability. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define _GNU_SOURCE diff --git a/htl/tests/test-3.c b/htl/tests/test-3.c index 8f4c18ef29..6bbf7a584d 100644 --- a/htl/tests/test-3.c +++ b/htl/tests/test-3.c @@ -1,5 +1,5 @@ /* Test the thread attribute get and set methods. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define _GNU_SOURCE diff --git a/htl/tests/test-4.c b/htl/tests/test-4.c index b3deff56fd..94fb65a1ec 100644 --- a/htl/tests/test-4.c +++ b/htl/tests/test-4.c @@ -1,5 +1,5 @@ /* Test the stack guard. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define _GNU_SOURCE diff --git a/htl/tests/test-5.c b/htl/tests/test-5.c index 8a62cb24dc..cabbdfe480 100644 --- a/htl/tests/test-5.c +++ b/htl/tests/test-5.c @@ -1,5 +1,5 @@ /* Test signals. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define _GNU_SOURCE diff --git a/htl/tests/test-6.c b/htl/tests/test-6.c index 02aa407400..fc13f6da9c 100644 --- a/htl/tests/test-6.c +++ b/htl/tests/test-6.c @@ -1,5 +1,5 @@ /* Test barriers. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define _GNU_SOURCE diff --git a/htl/tests/test-7.c b/htl/tests/test-7.c index 0993e39962..2e4e9d62f7 100644 --- a/htl/tests/test-7.c +++ b/htl/tests/test-7.c @@ -1,5 +1,5 @@ /* Test Thread-Specific Data. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define _GNU_SOURCE diff --git a/htl/tests/test-8.c b/htl/tests/test-8.c index 0cc683774c..d7e547ee96 100644 --- a/htl/tests/test-8.c +++ b/htl/tests/test-8.c @@ -1,5 +1,5 @@ /* Test pthread_once. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define _GNU_SOURCE diff --git a/htl/tests/test-9.c b/htl/tests/test-9.c index 20acc38b6c..5c3fe281d2 100644 --- a/htl/tests/test-9.c +++ b/htl/tests/test-9.c @@ -1,5 +1,5 @@ /* Test recursive mutexes. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define _GNU_SOURCE diff --git a/htl/tests/test-__pthread_destroy_specific-skip.c b/htl/tests/test-__pthread_destroy_specific-skip.c index a1f70a47df..6348f577fe 100644 --- a/htl/tests/test-__pthread_destroy_specific-skip.c +++ b/htl/tests/test-__pthread_destroy_specific-skip.c @@ -1,6 +1,6 @@ /* Check that __pthread_destroy_specific works correctly if it has to skip unused slots. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define _GNU_SOURCE diff --git a/hurd/Makefile b/hurd/Makefile index 99d33f9562..1ace90d10b 100644 --- a/hurd/Makefile +++ b/hurd/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991-2019 Free Software Foundation, Inc. +# Copyright (C) 1991-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . subdir := hurd @@ -33,7 +33,8 @@ user-interfaces := $(addprefix hurd/,\ process process_request \ msg msg_reply msg_request \ exec exec_startup crash interrupt \ - fs fsys io term tioctl socket ifsock \ + fs fsys io io_reply io_request \ + term tioctl socket ifsock \ login password pfinet pci \ ) server-interfaces := hurd/msg faultexc diff --git a/hurd/Versions b/hurd/Versions index b6508e03c6..f5e8b8cb32 100644 --- a/hurd/Versions +++ b/hurd/Versions @@ -159,5 +159,12 @@ libc { __lll_abstimed_lock; __lll_robust_lock; __lll_robust_abstimed_lock; __lll_robust_trylock; __lll_robust_unlock; + + # Used by libpthread. + _hurd_sigstate_set_global_rcv; + _hurd_sigstate_lock; + _hurd_sigstate_pending; + _hurd_sigstate_unlock; + _hurd_sigstate_delete; } } diff --git a/hurd/alloc-fd.c b/hurd/alloc-fd.c index 38ac56a9b1..9388c619e0 100644 --- a/hurd/alloc-fd.c +++ b/hurd/alloc-fd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2019 Free Software Foundation, Inc. +/* Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/catch-exc.c b/hurd/catch-exc.c index 78d877faca..cc8bbbc494 100644 --- a/hurd/catch-exc.c +++ b/hurd/catch-exc.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2019 Free Software Foundation, Inc. +/* Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/catch-signal.c b/hurd/catch-signal.c index ec320215a6..67667443a5 100644 --- a/hurd/catch-signal.c +++ b/hurd/catch-signal.c @@ -1,5 +1,5 @@ /* Convenience function to catch expected signals during an operation. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/compat-20.c b/hurd/compat-20.c index fdf1b01c5e..d1ef597fbd 100644 --- a/hurd/compat-20.c +++ b/hurd/compat-20.c @@ -1,5 +1,5 @@ /* Old-versioned functions for binary compatibility with glibc-2.0. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/hurd/ctty-input.c b/hurd/ctty-input.c index beff4f6d11..f223df4298 100644 --- a/hurd/ctty-input.c +++ b/hurd/ctty-input.c @@ -1,5 +1,5 @@ /* _hurd_ctty_input -- Do an input RPC and generate SIGTTIN if necessary. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -43,12 +43,15 @@ _hurd_ctty_input (io_t port, io_t ctty, error_t (*rpc) (io_t)) else { struct hurd_sigstate *ss = _hurd_self_sigstate (); - __spin_lock (&ss->lock); + struct sigaction *actions; + + _hurd_sigstate_lock (ss); + actions = _hurd_sigstate_actions (ss); if (__sigismember (&ss->blocked, SIGTTIN) - || ss->actions[SIGTTIN].sa_handler == SIG_IGN) + || actions[SIGTTIN].sa_handler == SIG_IGN) /* We are blocking or ignoring SIGTTIN. Just fail. */ err = EIO; - __spin_unlock (&ss->lock); + _hurd_sigstate_unlock (ss); if (err == EBACKGROUND) { @@ -65,10 +68,11 @@ _hurd_ctty_input (io_t port, io_t ctty, error_t (*rpc) (io_t)) SIGTTIN or resumed after being stopped. Now this is still a "system call", so check to see if we should restart it. */ - __spin_lock (&ss->lock); - if (!(ss->actions[SIGTTIN].sa_flags & SA_RESTART)) + _hurd_sigstate_lock (ss); + actions = _hurd_sigstate_actions (ss); + if (!(actions[SIGTTIN].sa_flags & SA_RESTART)) err = EINTR; - __spin_unlock (&ss->lock); + _hurd_sigstate_unlock (ss); } } } diff --git a/hurd/ctty-output.c b/hurd/ctty-output.c index 77b931ccef..67714770df 100644 --- a/hurd/ctty-output.c +++ b/hurd/ctty-output.c @@ -1,5 +1,5 @@ /* _hurd_ctty_output -- Do an output RPC and generate SIGTTOU if necessary. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -34,16 +34,19 @@ _hurd_ctty_output (io_t port, io_t ctty, error_t (*rpc) (io_t)) do { + struct sigaction *actions; + /* Don't use the ctty io port if we are blocking or ignoring SIGTTOU. We redo this check at the top of the loop in case the signal handler changed the state. */ - __spin_lock (&ss->lock); + _hurd_sigstate_lock (ss); + actions = _hurd_sigstate_actions (ss); if (__sigismember (&ss->blocked, SIGTTOU) - || ss->actions[SIGTTOU].sa_handler == SIG_IGN) + || actions[SIGTTOU].sa_handler == SIG_IGN) err = EIO; else err = 0; - __spin_unlock (&ss->lock); + _hurd_sigstate_unlock (ss); if (err) return (*rpc) (port); @@ -70,10 +73,11 @@ _hurd_ctty_output (io_t port, io_t ctty, error_t (*rpc) (io_t)) SIGTTOU or resumed after being stopped. Now this is still a "system call", so check to see if we should restart it. */ - __spin_lock (&ss->lock); - if (!(ss->actions[SIGTTOU].sa_flags & SA_RESTART)) + _hurd_sigstate_lock (ss); + actions = _hurd_sigstate_actions (ss); + if (!(actions[SIGTTOU].sa_flags & SA_RESTART)) err = EINTR; - __spin_unlock (&ss->lock); + _hurd_sigstate_unlock (ss); } } /* If the last RPC generated a SIGTTOU, loop to try it again. */ diff --git a/hurd/dtable.c b/hurd/dtable.c index 2663d25000..9f6ae2f606 100644 --- a/hurd/dtable.c +++ b/hurd/dtable.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/exc2signal.c b/hurd/exc2signal.c index e20d9b0587..8cc9726423 100644 --- a/hurd/exc2signal.c +++ b/hurd/exc2signal.c @@ -1,5 +1,5 @@ /* Translate Mach exception codes into signal numbers. Stub version. - Copyright (C) 1991-2019 Free Software Foundation, Inc. + Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/fchroot.c b/hurd/fchroot.c index 5a3a2a83a7..8458cc1f77 100644 --- a/hurd/fchroot.c +++ b/hurd/fchroot.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1999-2019 Free Software Foundation, Inc. +/* Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/hurd/fcntl-internal.h b/hurd/fcntl-internal.h index aebc9e9c73..e1b240457d 100644 --- a/hurd/fcntl-internal.h +++ b/hurd/fcntl-internal.h @@ -1,5 +1,5 @@ /* Helper functions for translating between O_* and SOCK_* flags. - Copyright (C) 2008-2019 Free Software Foundation, Inc. + Copyright (C) 2008-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/hurd/fd-close.c b/hurd/fd-close.c index 86343a1bda..16f51b068b 100644 --- a/hurd/fd-close.c +++ b/hurd/fd-close.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2019 Free Software Foundation, Inc. +/* Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/hurd/fd-read.c b/hurd/fd-read.c index 594b14003b..11c435f491 100644 --- a/hurd/fd-read.c +++ b/hurd/fd-read.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2019 Free Software Foundation, Inc. +/* Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/fd-write.c b/hurd/fd-write.c index b2589245b1..f63bae5908 100644 --- a/hurd/fd-write.c +++ b/hurd/fd-write.c @@ -1,5 +1,5 @@ /* _hurd_fd_write -- write to a file descriptor; handles job control et al. - Copyright (C) 1993-2019 Free Software Foundation, Inc. + Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/fopenport.c b/hurd/fopenport.c index 039ebdc312..748673d102 100644 --- a/hurd/fopenport.c +++ b/hurd/fopenport.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2019 Free Software Foundation, Inc. +/* Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/get-host.c b/hurd/get-host.c index 6ccce53294..367aefb70c 100644 --- a/hurd/get-host.c +++ b/hurd/get-host.c @@ -1,5 +1,5 @@ /* Get a host configuration item kept as the whole contents of a file. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/getdport.c b/hurd/getdport.c index 8c63789276..0bd0d7a8cd 100644 --- a/hurd/getdport.c +++ b/hurd/getdport.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/hurd/geteuids.c b/hurd/geteuids.c index 42f6331cb1..476687b9f0 100644 --- a/hurd/geteuids.c +++ b/hurd/geteuids.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2019 Free Software Foundation, Inc. +/* Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/getumask.c b/hurd/getumask.c index 27ec4c4de6..b1300c6a57 100644 --- a/hurd/getumask.c +++ b/hurd/getumask.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2019 Free Software Foundation, Inc. +/* Copyright (C) 1992-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/hurd/hurd-raise.c b/hurd/hurd-raise.c index 3bb3439b8e..d53fd417d2 100644 --- a/hurd/hurd-raise.c +++ b/hurd/hurd-raise.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2019 Free Software Foundation, Inc. +/* Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/hurd.h b/hurd/hurd.h index 8ccd1714bb..cd7a149c5e 100644 --- a/hurd/hurd.h +++ b/hurd/hurd.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2019 Free Software Foundation, Inc. +/* Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _HURD_H diff --git a/hurd/hurd/fd.h b/hurd/hurd/fd.h index 779ea4fc9d..e18c3cef42 100644 --- a/hurd/hurd/fd.h +++ b/hurd/hurd/fd.h @@ -1,5 +1,5 @@ /* File descriptors. - Copyright (C) 1993-2019 Free Software Foundation, Inc. + Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _HURD_FD_H diff --git a/hurd/hurd/id.h b/hurd/hurd/id.h index d523ac49f8..bb796e1788 100644 --- a/hurd/hurd/id.h +++ b/hurd/hurd/id.h @@ -1,5 +1,5 @@ /* User and group IDs. - Copyright (C) 1993-2019 Free Software Foundation, Inc. + Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _HURD_ID_H diff --git a/hurd/hurd/ioctl.h b/hurd/hurd/ioctl.h index aea2fec1aa..bc136d8b7f 100644 --- a/hurd/hurd/ioctl.h +++ b/hurd/hurd/ioctl.h @@ -1,5 +1,5 @@ /* User-registered handlers for specific `ioctl' requests. - Copyright (C) 1993-2019 Free Software Foundation, Inc. + Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _HURD_IOCTL_H #define _HURD_IOCTL_H 1 diff --git a/hurd/hurd/lookup.h b/hurd/hurd/lookup.h index 6d0670853f..0ef4db487b 100644 --- a/hurd/hurd/lookup.h +++ b/hurd/hurd/lookup.h @@ -1,5 +1,5 @@ /* Declarations of file name translation functions for the GNU Hurd. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _HURD_LOOKUP_H #define _HURD_LOOKUP_H 1 diff --git a/hurd/hurd/port.h b/hurd/hurd/port.h index 75e51ff736..33e696a4b2 100644 --- a/hurd/hurd/port.h +++ b/hurd/hurd/port.h @@ -1,5 +1,5 @@ /* Lightweight user references for ports. - Copyright (C) 1993-2019 Free Software Foundation, Inc. + Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _HURD_PORT_H diff --git a/hurd/hurd/resource.h b/hurd/hurd/resource.h index 561054912c..05f3e91847 100644 --- a/hurd/hurd/resource.h +++ b/hurd/hurd/resource.h @@ -1,5 +1,5 @@ /* Resource limits for the Hurd. - Copyright (C) 1994-2019 Free Software Foundation, Inc. + Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _HURD_RESOURCE_H #define _HURD_RESOURCE_H diff --git a/hurd/hurd/signal.h b/hurd/hurd/signal.h index 308124c90b..6583dcb5b1 100644 --- a/hurd/hurd/signal.h +++ b/hurd/hurd/signal.h @@ -1,5 +1,5 @@ /* Implementing POSIX.1 signals under the Hurd. - Copyright (C) 1993-2019 Free Software Foundation, Inc. + Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _HURD_SIGNAL_H @@ -73,7 +73,13 @@ struct hurd_sigstate sigset_t blocked; /* What signals are blocked. */ sigset_t pending; /* Pending signals, possibly blocked. */ + + /* Signal handlers. ACTIONS[0] is used to mark the threads with POSIX + semantics: if sa_handler is SIG_IGN instead of SIG_DFL, this thread + will receive global signals and use the process-wide action vector + instead of this one. */ struct sigaction actions[_NSIG]; + stack_t sigaltstack; /* Chain of thread-local signal preemptors; see . @@ -129,6 +135,26 @@ extern struct hurd_sigstate *_hurd_self_sigstate (void) by different threads. */ __attribute__ ((__const__)); +/* Process-wide signal state. */ + +extern struct hurd_sigstate *_hurd_global_sigstate; + +/* Mark the given thread as a process-wide signal receiver. */ + +extern void _hurd_sigstate_set_global_rcv (struct hurd_sigstate *ss); + +/* A thread can either use its own action vector and pending signal set + or use the global ones, depending on wether it has been marked as a + global receiver. The accessors below take that into account. */ + +extern void _hurd_sigstate_lock (struct hurd_sigstate *ss); +extern struct sigaction *_hurd_sigstate_actions (struct hurd_sigstate *ss); +extern sigset_t _hurd_sigstate_pending (const struct hurd_sigstate *ss); +extern void _hurd_sigstate_unlock (struct hurd_sigstate *ss); + +/* Used by libpthread to remove stale sigstate structures. */ +extern void _hurd_sigstate_delete (thread_t thread); + #ifndef _HURD_SIGNAL_H_EXTERN_INLINE #define _HURD_SIGNAL_H_EXTERN_INLINE __extern_inline #endif @@ -154,12 +180,6 @@ extern thread_t _hurd_msgport_thread; extern mach_port_t _hurd_msgport; - -/* Thread to receive process-global signals. */ - -extern thread_t _hurd_sigthread; - - /* Resource limit on core file size. Enforced by hurdsig.c. */ extern int _hurd_core_limit; @@ -227,10 +247,10 @@ _hurd_critical_section_unlock (void *our_lock) /* It was us who acquired the critical section lock. Unlock it. */ struct hurd_sigstate *ss = (struct hurd_sigstate *) our_lock; sigset_t pending; - __spin_lock (&ss->lock); + _hurd_sigstate_lock (ss); __spin_unlock (&ss->critical_section_lock); - pending = ss->pending & ~ss->blocked; - __spin_unlock (&ss->lock); + pending = _hurd_sigstate_pending(ss) & ~ss->blocked; + _hurd_sigstate_unlock (ss); if (! __sigisemptyset (&pending)) /* There are unblocked signals pending, which weren't delivered because we were in the critical section. diff --git a/hurd/hurd/sigpreempt.h b/hurd/hurd/sigpreempt.h index 44eb614e13..2591c472d3 100644 --- a/hurd/hurd/sigpreempt.h +++ b/hurd/hurd/sigpreempt.h @@ -1,5 +1,5 @@ /* Preemption of Hurd signals before POSIX.1 semantics take over. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _HURD_SIGPREEMPT_H diff --git a/hurd/hurd/threadvar.h b/hurd/hurd/threadvar.h index 32caad9ae3..9a305e9d6e 100644 --- a/hurd/hurd/threadvar.h +++ b/hurd/hurd/threadvar.h @@ -1,5 +1,5 @@ /* Internal per-thread variables for the Hurd. - Copyright (C) 1994-2019 Free Software Foundation, Inc. + Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _HURD_THREADVAR_H #define _HURD_THREADVAR_H diff --git a/hurd/hurd/userlink.h b/hurd/hurd/userlink.h index d70438a48f..7c008a81bc 100644 --- a/hurd/hurd/userlink.h +++ b/hurd/hurd/userlink.h @@ -1,5 +1,5 @@ /* Support for chains recording users of a resource; `struct hurd_userlink'. - Copyright (C) 1994-2019 Free Software Foundation, Inc. + Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _HURD_USERLINK_H diff --git a/hurd/hurd/xattr.h b/hurd/hurd/xattr.h index 6ba2bcb168..edb77e3114 100644 --- a/hurd/hurd/xattr.h +++ b/hurd/hurd/xattr.h @@ -1,5 +1,5 @@ /* Access to extended attributes on files for GNU/Hurd. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _HURD_XATTR_H #define _HURD_XATTR_H 1 diff --git a/hurd/hurdauth.c b/hurd/hurdauth.c index a61e729150..681e110f73 100644 --- a/hurd/hurdauth.c +++ b/hurd/hurdauth.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/hurdchdir.c b/hurd/hurdchdir.c index 6e99266cba..eb3d06502b 100644 --- a/hurd/hurdchdir.c +++ b/hurd/hurdchdir.c @@ -1,5 +1,5 @@ /* Change a port cell to a directory by looking up a name. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/hurdexec.c b/hurd/hurdexec.c index 88ebcccd82..2066594235 100644 --- a/hurd/hurdexec.c +++ b/hurd/hurdexec.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -126,12 +126,13 @@ _hurd_exec_paths (task_t task, file_t file, assert (! __spin_lock_locked (&ss->critical_section_lock)); __spin_lock (&ss->critical_section_lock); - __spin_lock (&ss->lock); + _hurd_sigstate_lock (ss); + struct sigaction *actions = _hurd_sigstate_actions (ss); ints[INIT_SIGMASK] = ss->blocked; - ints[INIT_SIGPENDING] = ss->pending; + ints[INIT_SIGPENDING] = _hurd_sigstate_pending (ss); ints[INIT_SIGIGN] = 0; for (i = 1; i < NSIG; ++i) - if (ss->actions[i].sa_handler == SIG_IGN) + if (actions[i].sa_handler == SIG_IGN) ints[INIT_SIGIGN] |= __sigmask (i); /* We hold the sigstate lock until the exec has failed so that no signal @@ -142,7 +143,7 @@ _hurd_exec_paths (task_t task, file_t file, critical section flag avoids anything we call trying to acquire the sigstate lock. */ - __spin_unlock (&ss->lock); + _hurd_sigstate_unlock (ss); /* Pack up the descriptor table to give the new program. */ __mutex_lock (&_hurd_dtable_lock); diff --git a/hurd/hurdfault.c b/hurd/hurdfault.c index ea248d0b55..fa28347418 100644 --- a/hurd/hurdfault.c +++ b/hurd/hurdfault.c @@ -1,5 +1,5 @@ /* Handle faults in the signal thread. - Copyright (C) 1994-2019 Free Software Foundation, Inc. + Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/hurdfault.h b/hurd/hurdfault.h index 4933976843..61ccc785e5 100644 --- a/hurd/hurdfault.h +++ b/hurd/hurdfault.h @@ -1,5 +1,5 @@ /* Declarations for handling faults in the signal thread. - Copyright (C) 1994-2019 Free Software Foundation, Inc. + Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _HURD_FAULT_H #define _HURD_FAULT_H diff --git a/hurd/hurdfchdir.c b/hurd/hurdfchdir.c index e14080c064..27cba37123 100644 --- a/hurd/hurdfchdir.c +++ b/hurd/hurdfchdir.c @@ -1,5 +1,5 @@ /* Change a port cell to a directory in an open file descriptor. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/hurdhost.h b/hurd/hurdhost.h index e912765418..605547f42c 100644 --- a/hurd/hurdhost.h +++ b/hurd/hurdhost.h @@ -1,5 +1,5 @@ /* Host configuration items kept as the whole contents of a file. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Fetch and atomically store the contents of the file ITEM. Returns the size read or written, or -1 for errors. diff --git a/hurd/hurdid.c b/hurd/hurdid.c index a41fd3df10..f52d8ccd02 100644 --- a/hurd/hurdid.c +++ b/hurd/hurdid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2019 Free Software Foundation, Inc. +/* Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/hurdinit.c b/hurd/hurdinit.c index 938e6da5e3..a884b78de6 100644 --- a/hurd/hurdinit.c +++ b/hurd/hurdinit.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2019 Free Software Foundation, Inc. +/* Copyright (C) 1992-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/hurdioctl.c b/hurd/hurdioctl.c index 2d7a685409..e1e1a4c5ef 100644 --- a/hurd/hurdioctl.c +++ b/hurd/hurdioctl.c @@ -1,5 +1,5 @@ /* ioctl commands which must be done in the C library. - Copyright (C) 1994-2019 Free Software Foundation, Inc. + Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/hurdkill.c b/hurd/hurdkill.c index cd67f9b9bd..779dd4b3f5 100644 --- a/hurd/hurdkill.c +++ b/hurd/hurdkill.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/hurdlock.c b/hurd/hurdlock.c index 3d4702f614..50da0a2121 100644 --- a/hurd/hurdlock.c +++ b/hurd/hurdlock.c @@ -1,5 +1,5 @@ /* Hurd helpers for lowlevellocks. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include "hurdlock.h" #include @@ -71,7 +71,7 @@ __lll_abstimed_lock (void *ptr, { if (atomic_exchange_acq ((int *)ptr, 2) == 0) return 0; - else if (tsp->tv_nsec < 0 || tsp->tv_nsec >= 1000000000) + else if (! valid_nanoseconds (tsp->tv_nsec)) return EINVAL; int mlsec = compute_reltime (tsp, clk); diff --git a/hurd/hurdlock.h b/hurd/hurdlock.h index 78f630191c..362bcf6cc2 100644 --- a/hurd/hurdlock.h +++ b/hurd/hurdlock.h @@ -1,5 +1,5 @@ /* Low-level lock implementation. High-level Hurd helpers. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _HURD_LOCK_H #define _HURD_LOCK_H 1 diff --git a/hurd/hurdlookup.c b/hurd/hurdlookup.c index 983f6a6506..8be6e4b7ff 100644 --- a/hurd/hurdlookup.c +++ b/hurd/hurdlookup.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2019 Free Software Foundation, Inc. +/* Copyright (C) 1992-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/hurdmsg.c b/hurd/hurdmsg.c index 48db15aed2..ebf2e028ab 100644 --- a/hurd/hurdmsg.c +++ b/hurd/hurdmsg.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2019 Free Software Foundation, Inc. +/* Copyright (C) 1992-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -121,17 +121,9 @@ get_int (int which, int *value) case INIT_UMASK: *value = _hurd_umask; return 0; - case INIT_SIGMASK: - { - struct hurd_sigstate *ss = _hurd_thread_sigstate (_hurd_sigthread); - __spin_lock (&ss->lock); - *value = ss->blocked; - __spin_unlock (&ss->lock); - return 0; - } case INIT_SIGPENDING: { - struct hurd_sigstate *ss = _hurd_thread_sigstate (_hurd_sigthread); + struct hurd_sigstate *ss = _hurd_global_sigstate; __spin_lock (&ss->lock); *value = ss->pending; __spin_unlock (&ss->lock); @@ -139,7 +131,7 @@ get_int (int which, int *value) } case INIT_SIGIGN: { - struct hurd_sigstate *ss = _hurd_thread_sigstate (_hurd_sigthread); + struct hurd_sigstate *ss = _hurd_global_sigstate; sigset_t ign; int sig; __spin_lock (&ss->lock); @@ -207,17 +199,9 @@ set_int (int which, int value) return 0; /* These are pretty odd things to do. But you asked for it. */ - case INIT_SIGMASK: - { - struct hurd_sigstate *ss = _hurd_thread_sigstate (_hurd_sigthread); - __spin_lock (&ss->lock); - ss->blocked = value; - __spin_unlock (&ss->lock); - return 0; - } case INIT_SIGPENDING: { - struct hurd_sigstate *ss = _hurd_thread_sigstate (_hurd_sigthread); + struct hurd_sigstate *ss = _hurd_global_sigstate; __spin_lock (&ss->lock); ss->pending = value; __spin_unlock (&ss->lock); @@ -225,7 +209,7 @@ set_int (int which, int value) } case INIT_SIGIGN: { - struct hurd_sigstate *ss = _hurd_thread_sigstate (_hurd_sigthread); + struct hurd_sigstate *ss = _hurd_global_sigstate; int sig; const sigset_t ign = value; __spin_lock (&ss->lock); diff --git a/hurd/hurdpid.c b/hurd/hurdpid.c index bca7048014..196177c403 100644 --- a/hurd/hurdpid.c +++ b/hurd/hurdpid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/hurdports.c b/hurd/hurdports.c index 5f604fd09c..45cf222d85 100644 --- a/hurd/hurdports.c +++ b/hurd/hurdports.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/hurdprio.c b/hurd/hurdprio.c index 50dbd9cad2..d767620262 100644 --- a/hurd/hurdprio.c +++ b/hurd/hurdprio.c @@ -1,5 +1,5 @@ /* Support code for dealing with priorities in the Hurd. - Copyright (C) 1994-2019 Free Software Foundation, Inc. + Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/hurdrlimit.c b/hurd/hurdrlimit.c index f40fd6521e..4216390924 100644 --- a/hurd/hurdrlimit.c +++ b/hurd/hurdrlimit.c @@ -1,5 +1,5 @@ /* Resource limits. - Copyright (C) 1994-2019 Free Software Foundation, Inc. + Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/hurdselect.c b/hurd/hurdselect.c index 6997b2b73b..b140dab6c3 100644 --- a/hurd/hurdselect.c +++ b/hurd/hurdselect.c @@ -1,5 +1,5 @@ /* Guts of both `select' and `poll' for Hurd. - Copyright (C) 1991-2019 Free Software Foundation, Inc. + Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,16 +14,20 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ +#include #include #include #include #include +#include #include #include #include #include +#include +#include /* All user select types. */ #define SELECT_ALL (SELECT_READ | SELECT_WRITE | SELECT_URG) @@ -31,6 +35,7 @@ /* Used to record that a particular select rpc returned. Must be distinct from SELECT_ALL (which better not have the high bit set). */ #define SELECT_RETURNED ((SELECT_ALL << 1) & ~SELECT_ALL) +#define SELECT_ERROR (SELECT_RETURNED << 1) /* Check the first NFDS descriptors either in POLLFDS (if nonnnull) or in each of READFDS, WRITEFDS, EXCEPTFDS that is nonnull. If TIMEOUT is not @@ -44,11 +49,13 @@ _hurd_select (int nfds, { int i; mach_port_t portset; - int got; + int got, ready; error_t err; fd_set rfds, wfds, xfds; int firstfd, lastfd; - mach_msg_timeout_t to = 0; + mach_msg_id_t reply_msgid; + mach_msg_timeout_t to; + struct timespec ts; struct { struct hurd_userlink ulink; @@ -56,6 +63,7 @@ _hurd_select (int nfds, mach_port_t io_port; int type; mach_port_t reply_port; + int error; } d[nfds]; sigset_t oset; @@ -73,16 +81,38 @@ _hurd_select (int nfds, return -1; } - if (timeout != NULL) +#define IO_SELECT_REPLY_MSGID (21012 + 100) /* XXX */ +#define IO_SELECT_TIMEOUT_REPLY_MSGID (21031 + 100) /* XXX */ + + if (timeout == NULL) + reply_msgid = IO_SELECT_REPLY_MSGID; + else { - if (timeout->tv_sec < 0 || timeout->tv_nsec < 0) + struct timespec now; + + if (timeout->tv_sec < 0 || ! valid_nanoseconds (timeout->tv_nsec)) { errno = EINVAL; return -1; } - to = (timeout->tv_sec * 1000 - + (timeout->tv_nsec + 999999) / 1000000); + err = __clock_gettime (CLOCK_REALTIME, &now); + if (err) + return -1; + + ts.tv_sec = now.tv_sec + timeout->tv_sec; + ts.tv_nsec = now.tv_nsec + timeout->tv_nsec; + + if (ts.tv_nsec >= 1000000000) + { + ts.tv_sec++; + ts.tv_nsec -= 1000000000; + } + + if (ts.tv_sec < 0) + ts.tv_sec = LONG_MAX; /* XXX */ + + reply_msgid = IO_SELECT_TIMEOUT_REPLY_MSGID; } if (sigmask && __sigprocmask (SIG_SETMASK, sigmask, &oset)) @@ -90,6 +120,7 @@ _hurd_select (int nfds, if (pollfds) { + int error = 0; /* Collect interesting descriptors from the user's `pollfd' array. We do a first pass that reads the user's array before taking any locks. The second pass then only touches our own stack, @@ -123,28 +154,44 @@ _hurd_select (int nfds, if (fd < _hurd_dtablesize) { d[i].cell = _hurd_dtable[fd]; - d[i].io_port = _hurd_port_get (&d[i].cell->port, &d[i].ulink); - if (d[i].io_port != MACH_PORT_NULL) - continue; + if (d[i].cell != NULL) + { + d[i].io_port = _hurd_port_get (&d[i].cell->port, + &d[i].ulink); + if (d[i].io_port != MACH_PORT_NULL) + continue; + } } - /* If one descriptor is bogus, we fail completely. */ - while (i-- > 0) - if (d[i].type != 0) - _hurd_port_free (&d[i].cell->port, - &d[i].ulink, d[i].io_port); - break; + /* Bogus descriptor, make it EBADF already. */ + d[i].error = EBADF; + d[i].type = SELECT_ERROR; + error = 1; } __mutex_unlock (&_hurd_dtable_lock); HURD_CRITICAL_END; - if (i < nfds) + if (error) { - if (sigmask) - __sigprocmask (SIG_SETMASK, &oset, NULL); - errno = EBADF; - return -1; + /* Set timeout to 0. */ + err = __clock_gettime (CLOCK_REALTIME, &ts); + if (err) + { + /* Really bad luck. */ + err = errno; + HURD_CRITICAL_BEGIN; + __mutex_lock (&_hurd_dtable_lock); + while (i-- > 0) + if (d[i].type & ~SELECT_ERROR != 0) + _hurd_port_free (&d[i].cell->port, &d[i].ulink, + d[i].io_port); + __mutex_unlock (&_hurd_dtable_lock); + HURD_CRITICAL_END; + errno = err; + return -1; + } + reply_msgid = IO_SELECT_TIMEOUT_REPLY_MSGID; } lastfd = i - 1; @@ -171,9 +218,6 @@ _hurd_select (int nfds, HURD_CRITICAL_BEGIN; __mutex_lock (&_hurd_dtable_lock); - if (nfds > _hurd_dtablesize) - nfds = _hurd_dtablesize; - /* Collect the ports for interesting FDs. */ firstfd = lastfd = -1; for (i = 0; i < nfds; ++i) @@ -188,9 +232,15 @@ _hurd_select (int nfds, d[i].type = type; if (type) { - d[i].cell = _hurd_dtable[i]; - d[i].io_port = _hurd_port_get (&d[i].cell->port, &d[i].ulink); - if (d[i].io_port == MACH_PORT_NULL) + if (i < _hurd_dtablesize) + { + d[i].cell = _hurd_dtable[i]; + if (d[i].cell != NULL) + d[i].io_port = _hurd_port_get (&d[i].cell->port, + &d[i].ulink); + } + if (i >= _hurd_dtablesize || d[i].cell == NULL || + d[i].io_port == MACH_PORT_NULL) { /* If one descriptor is bogus, we fail completely. */ while (i-- > 0) @@ -215,6 +265,9 @@ _hurd_select (int nfds, errno = EBADF; return -1; } + + if (nfds > _hurd_dtablesize) + nfds = _hurd_dtablesize; } @@ -232,19 +285,19 @@ _hurd_select (int nfds, portset = MACH_PORT_NULL; for (i = firstfd; i <= lastfd; ++i) - if (d[i].type) + if (!(d[i].type & ~SELECT_ERROR)) + d[i].reply_port = MACH_PORT_NULL; + else { int type = d[i].type; d[i].reply_port = __mach_reply_port (); - err = __io_select (d[i].io_port, d[i].reply_port, - /* Poll only if there's a single descriptor. */ - (firstfd == lastfd) ? to : 0, - &type); - switch (err) + if (timeout == NULL) + err = __io_select_request (d[i].io_port, d[i].reply_port, type); + else + err = __io_select_timeout_request (d[i].io_port, d[i].reply_port, + ts, type); + if (!err) { - case MACH_RCV_TIMED_OUT: - /* No immediate response. This is normal. */ - err = 0; if (firstfd == lastfd) /* When there's a single descriptor, we don't need a portset, so just pretend we have one, but really @@ -265,32 +318,23 @@ _hurd_select (int nfds, __mach_port_move_member (__mach_task_self (), d[i].reply_port, portset); } - break; - - default: - /* No other error should happen. Callers of select - don't expect to see errors, so we simulate - readiness of the erring object and the next call - hopefully will get the error again. */ - type = SELECT_ALL; - /* FALLTHROUGH */ - - case 0: - /* We got an answer. */ - if ((type & SELECT_ALL) == 0) - /* Bogus answer; treat like an error, as a fake positive. */ - type = SELECT_ALL; - - /* This port is already ready already. */ - d[i].type &= type; - d[i].type |= SELECT_RETURNED; + } + else + { + /* No error should happen, but record it for later + processing. */ + d[i].error = err; + d[i].type |= SELECT_ERROR; ++got; - break; } _hurd_port_free (&d[i].cell->port, &d[i].ulink, d[i].io_port); } } + /* GOT is the number of replies (or errors), while READY is the number of + replies with at least one type bit set. */ + ready = 0; + /* Now wait for reply messages. */ if (!err && got == 0) { @@ -332,22 +376,35 @@ _hurd_select (int nfds, } success; #endif } msg; - mach_msg_option_t options = (timeout == NULL ? 0 : MACH_RCV_TIMEOUT); + mach_msg_option_t options; error_t msgerr; + + /* We rely on servers to implement the timeout, but when there are none, + do it on the client side. */ + if (timeout != NULL && firstfd == -1) + { + options = MACH_RCV_TIMEOUT; + to = timeout->tv_sec * 1000 + (timeout->tv_nsec + 999999) / 1000000; + } + else + { + options = 0; + to = MACH_MSG_TIMEOUT_NONE; + } + while ((msgerr = __mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_INTERRUPT | options, 0, sizeof msg, portset, to, MACH_PORT_NULL)) == MACH_MSG_SUCCESS) { /* We got a message. Decode it. */ -#define IO_SELECT_REPLY_MSGID (21012 + 100) /* XXX */ #ifdef MACH_MSG_TYPE_BIT const union typeword inttype = { type: { MACH_MSG_TYPE_INTEGER_T, sizeof (integer_t) * 8, 1, 1, 0, 0 } }; #endif - if (msg.head.msgh_id == IO_SELECT_REPLY_MSGID + if (msg.head.msgh_id == reply_msgid && msg.head.msgh_size >= sizeof msg.error && !(msg.head.msgh_bits & MACH_MSGH_BITS_COMPLEX) #ifdef MACH_MSG_TYPE_BIT @@ -365,16 +422,18 @@ _hurd_select (int nfds, err = EINTR; goto poll; } + /* Keep in mind msg.success.result can be 0 if a timeout + occurred. */ if (msg.error.err - || msg.head.msgh_size != sizeof msg.success #ifdef MACH_MSG_TYPE_BIT || msg.success.result_type.word != inttype.word #endif - || (msg.success.result & SELECT_ALL) == 0) + || msg.head.msgh_size != sizeof msg.success) { - /* Error or bogus reply. Simulate readiness. */ + /* Error or bogus reply. */ + if (!msg.error.err) + msg.error.err = EIO; __mach_msg_destroy (&msg.head); - msg.success.result = SELECT_ALL; } /* Look up the respondent's reply port and record its @@ -386,7 +445,19 @@ _hurd_select (int nfds, if (d[i].type && d[i].reply_port == msg.head.msgh_local_port) { - d[i].type &= msg.success.result; + if (msg.error.err) + { + d[i].error = msg.error.err; + d[i].type = SELECT_ERROR; + ++ready; + } + else + { + d[i].type &= msg.success.result; + if (d[i].type) + ++ready; + } + d[i].type |= SELECT_RETURNED; ++got; } @@ -411,7 +482,7 @@ _hurd_select (int nfds, /* Interruption on our side (e.g. signal reception). */ err = EINTR; - if (got) + if (ready) /* At least one descriptor is known to be ready now, so we will return success. */ err = 0; @@ -419,7 +490,7 @@ _hurd_select (int nfds, if (firstfd != -1) for (i = firstfd; i <= lastfd; ++i) - if (d[i].type) + if (d[i].reply_port != MACH_PORT_NULL) __mach_port_destroy (__mach_task_self (), d[i].reply_port); if (firstfd == -1 || (firstfd != lastfd && portset != MACH_PORT_NULL)) /* Destroy PORTSET, but only if it's not actually the reply port for a @@ -441,23 +512,37 @@ _hurd_select (int nfds, int type = d[i].type; int_fast16_t revents = 0; - if (type & SELECT_RETURNED) - { - if (type & SELECT_READ) - revents |= POLLIN; - if (type & SELECT_WRITE) - revents |= POLLOUT; - if (type & SELECT_URG) - revents |= POLLPRI; - } + if (type & SELECT_ERROR) + switch (d[i].error) + { + case EPIPE: + revents = POLLHUP; + break; + case EBADF: + revents = POLLNVAL; + break; + default: + revents = POLLERR; + break; + } + else + if (type & SELECT_RETURNED) + { + if (type & SELECT_READ) + revents |= POLLIN; + if (type & SELECT_WRITE) + revents |= POLLOUT; + if (type & SELECT_URG) + revents |= POLLPRI; + } pollfds[i].revents = revents; } else { - /* Below we recalculate GOT to include an increment for each operation + /* Below we recalculate READY to include an increment for each operation allowed on each fd. */ - got = 0; + ready = 0; /* Set the user bitarrays. We only ever have to clear bits, as all desired ones are initially set. */ @@ -469,16 +554,30 @@ _hurd_select (int nfds, if ((type & SELECT_RETURNED) == 0) type = 0; + /* Callers of select don't expect to see errors, so we simulate + readiness of the erring object and the next call hopefully + will get the error again. */ + if (type & SELECT_ERROR) + { + type = 0; + if (readfds != NULL && FD_ISSET (i, readfds)) + type |= SELECT_READ; + if (writefds != NULL && FD_ISSET (i, writefds)) + type |= SELECT_WRITE; + if (exceptfds != NULL && FD_ISSET (i, exceptfds)) + type |= SELECT_URG; + } + if (type & SELECT_READ) - got++; + ready++; else if (readfds) FD_CLR (i, readfds); if (type & SELECT_WRITE) - got++; + ready++; else if (writefds) FD_CLR (i, writefds); if (type & SELECT_URG) - got++; + ready++; else if (exceptfds) FD_CLR (i, exceptfds); } @@ -487,5 +586,5 @@ _hurd_select (int nfds, if (sigmask && __sigprocmask (SIG_SETMASK, &oset, NULL)) return -1; - return got; + return ready; } diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c index 1b511d1e8f..1e42246ee6 100644 --- a/hurd/hurdsig.c +++ b/hurd/hurdsig.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -46,9 +46,6 @@ mach_port_t _hurd_msgport; /* Thread listening on it. */ thread_t _hurd_msgport_thread; -/* Thread which receives task-global signals. */ -thread_t _hurd_sigthread; - /* These are set up by _hurdsig_init. */ unsigned long int __hurd_sigthread_stack_base; unsigned long int __hurd_sigthread_stack_end; @@ -56,6 +53,9 @@ unsigned long int __hurd_sigthread_stack_end; /* Linked-list of per-thread signal state. */ struct hurd_sigstate *_hurd_sigstates; +/* Sigstate for the task-global signals. */ +struct hurd_sigstate *_hurd_global_sigstate; + /* Timeout for RPC's after interrupt_operation. */ mach_msg_timeout_t _hurd_interrupted_rpc_timeout = 60000; @@ -84,7 +84,7 @@ _hurd_thread_sigstate (thread_t thread) { ss = malloc (sizeof (*ss)); if (ss == NULL) - __libc_fatal ("hurd: Can't allocate thread sigstate\n"); + __libc_fatal ("hurd: Can't allocate sigstate\n"); ss->thread = thread; __spin_lock_init (&ss->lock); @@ -98,16 +98,19 @@ _hurd_thread_sigstate (thread_t thread) ss->intr_port = MACH_PORT_NULL; ss->context = NULL; - /* Initialize the sigaction vector from the default signal receiving - thread's state, and its from the system defaults. */ - if (thread == _hurd_sigthread) - default_sigaction (ss->actions); + if (thread == MACH_PORT_NULL) + { + /* Process-wide sigstate, use the system defaults. */ + default_sigaction (ss->actions); + + /* The global sigstate is not added to the _hurd_sigstates list. + It is created with _hurd_thread_sigstate (MACH_PORT_NULL) + but should be accessed through _hurd_global_sigstate. */ + } else { - struct hurd_sigstate *s; - for (s = _hurd_sigstates; s != NULL; s = s->next) - if (s->thread == _hurd_sigthread) - break; + /* Use the global actions as a default for new threads. */ + struct hurd_sigstate *s = _hurd_global_sigstate; if (s) { __spin_lock (&s->lock); @@ -116,15 +119,115 @@ _hurd_thread_sigstate (thread_t thread) } else default_sigaction (ss->actions); - } - ss->next = _hurd_sigstates; - _hurd_sigstates = ss; + ss->next = _hurd_sigstates; + _hurd_sigstates = ss; + } } __mutex_unlock (&_hurd_siglock); return ss; } libc_hidden_def (_hurd_thread_sigstate) + +/* Destroy a sigstate structure. Called by libpthread just before the + * corresponding thread is terminated (the kernel thread port must remain valid + * until this function is called.) */ +void +_hurd_sigstate_delete (thread_t thread) +{ + struct hurd_sigstate **ssp, *ss; + + __mutex_lock (&_hurd_siglock); + for (ssp = &_hurd_sigstates; *ssp; ssp = &(*ssp)->next) + if ((*ssp)->thread == thread) + break; + + ss = *ssp; + if (ss) + *ssp = ss->next; + + __mutex_unlock (&_hurd_siglock); + if (ss) + free (ss); +} + +/* Make SS a global receiver, with pthread signal semantics. */ +void +_hurd_sigstate_set_global_rcv (struct hurd_sigstate *ss) +{ + assert (ss->thread != MACH_PORT_NULL); + ss->actions[0].sa_handler = SIG_IGN; +} + +/* Check whether SS is a global receiver. */ +static int +sigstate_is_global_rcv (const struct hurd_sigstate *ss) +{ + return (_hurd_global_sigstate != NULL) + && (ss->actions[0].sa_handler == SIG_IGN); +} +libc_hidden_def (_hurd_sigstate_delete) + +/* Lock/unlock a hurd_sigstate structure. If the accessors below require + it, the global sigstate will be locked as well. */ +void +_hurd_sigstate_lock (struct hurd_sigstate *ss) +{ + if (sigstate_is_global_rcv (ss)) + __spin_lock (&_hurd_global_sigstate->lock); + __spin_lock (&ss->lock); +} +void +_hurd_sigstate_unlock (struct hurd_sigstate *ss) +{ + __spin_unlock (&ss->lock); + if (sigstate_is_global_rcv (ss)) + __spin_unlock (&_hurd_global_sigstate->lock); +} +libc_hidden_def (_hurd_sigstate_set_global_rcv) + +/* Retreive a thread's full set of pending signals, including the global + ones if appropriate. SS must be locked. */ +sigset_t +_hurd_sigstate_pending (const struct hurd_sigstate *ss) +{ + sigset_t pending = ss->pending; + if (sigstate_is_global_rcv (ss)) + __sigorset (&pending, &pending, &_hurd_global_sigstate->pending); + return pending; +} + +/* Clear a pending signal and return the associated detailed + signal information. SS must be locked, and must have signal SIGNO + pending, either directly or through the global sigstate. */ +static struct hurd_signal_detail +sigstate_clear_pending (struct hurd_sigstate *ss, int signo) +{ + if (sigstate_is_global_rcv (ss) + && __sigismember (&_hurd_global_sigstate->pending, signo)) + { + __sigdelset (&_hurd_global_sigstate->pending, signo); + return _hurd_global_sigstate->pending_data[signo]; + } + + assert (__sigismember (&ss->pending, signo)); + __sigdelset (&ss->pending, signo); + return ss->pending_data[signo]; +} +libc_hidden_def (_hurd_sigstate_lock) +libc_hidden_def (_hurd_sigstate_unlock) + +/* Retreive a thread's action vector. SS must be locked. */ +struct sigaction * +_hurd_sigstate_actions (struct hurd_sigstate *ss) +{ + if (sigstate_is_global_rcv (ss)) + return _hurd_global_sigstate->actions; + else + return ss->actions; +} +libc_hidden_def (_hurd_sigstate_pending) + /* Signal delivery itself is on this page. */ @@ -219,6 +322,8 @@ static void abort_thread (struct hurd_sigstate *ss, struct machine_thread_all_state *state, void (*reply) (void)) { + assert (ss->thread != MACH_PORT_NULL); + if (!(state->set & THREAD_ABORTED)) { error_t err = __thread_abort (ss->thread); @@ -367,7 +472,7 @@ _hurdsig_abort_rpcs (struct hurd_sigstate *ss, int signo, int sigthread, call above will retry their RPCs unless we clear SS->intr_port. So we clear it for the thread taking a signal when SA_RESTART is clear, so that its call returns EINTR. */ - if (! signo || !(ss->actions[signo].sa_flags & SA_RESTART)) + if (! signo || !(_hurd_sigstate_actions (ss) [signo].sa_flags & SA_RESTART)) ss->intr_port = MACH_PORT_NULL; } @@ -455,6 +560,30 @@ abort_all_rpcs (int signo, struct machine_thread_all_state *state, int live) } } +/* Wake up any sigsuspend call that is blocking SS->thread. SS must be + locked. */ +static void +wake_sigsuspend (struct hurd_sigstate *ss) +{ + error_t err; + mach_msg_header_t msg; + + if (ss->suspended == MACH_PORT_NULL) + return; + + /* There is a sigsuspend waiting. Tell it to wake up. */ + msg.msgh_bits = MACH_MSGH_BITS (MACH_MSG_TYPE_MAKE_SEND, 0); + msg.msgh_remote_port = ss->suspended; + msg.msgh_local_port = MACH_PORT_NULL; + /* These values do not matter. */ + msg.msgh_id = 8675309; /* Jenny, Jenny. */ + ss->suspended = MACH_PORT_NULL; + err = __mach_msg (&msg, MACH_SEND_MSG, sizeof msg, 0, + MACH_PORT_NULL, MACH_MSG_TIMEOUT_NONE, + MACH_PORT_NULL); + assert_perror (err); +} + struct hurd_signal_preemptor *_hurdsig_preemptors = 0; sigset_t _hurdsig_preempted_set; @@ -465,35 +594,20 @@ weak_alias (_hurdsig_preemptors, _hurdsig_preempters) #define STOPSIGS (sigmask (SIGTTIN) | sigmask (SIGTTOU) \ | sigmask (SIGSTOP) | sigmask (SIGTSTP)) -/* Deliver a signal. SS is not locked. */ -void -_hurd_internal_post_signal (struct hurd_sigstate *ss, - int signo, struct hurd_signal_detail *detail, - mach_port_t reply_port, - mach_msg_type_name_t reply_port_type, - int untraced) +/* Actual delivery of a single signal. Called with SS unlocked. When + the signal is delivered, return SS, locked (or, if SS was originally + _hurd_global_sigstate, the sigstate of the actual thread the signal + was delivered to). If the signal is being traced, return NULL with + SS unlocked. */ +static struct hurd_sigstate * +post_signal (struct hurd_sigstate *ss, + int signo, struct hurd_signal_detail *detail, + int untraced, void (*reply) (void)) { - error_t err; struct machine_thread_all_state thread_state; enum { stop, ignore, core, term, handle } act; - sighandler_t handler; - sigset_t pending; int ss_suspended; - /* Reply to this sig_post message. */ - __typeof (__msg_sig_post_reply) *reply_rpc - = (untraced ? __msg_sig_post_untraced_reply : __msg_sig_post_reply); - void reply (void) - { - error_t err; - if (reply_port == MACH_PORT_NULL) - return; - err = (*reply_rpc) (reply_port, reply_port_type, 0); - reply_port = MACH_PORT_NULL; - if (err != MACH_SEND_INVALID_DEST) /* Ignore dead reply port. */ - assert_perror (err); - } - /* Mark the signal as pending. */ void mark_pending (void) { @@ -538,8 +652,12 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss, assert_perror (err); for (i = 0; i < nthreads; ++i) { - if (threads[i] != _hurd_msgport_thread - && (act != handle || threads[i] != ss->thread)) + if (act == handle && threads[i] == ss->thread) + { + /* The thread that will run the handler is kept suspended. */ + ss_suspended = 1; + } + else if (threads[i] != _hurd_msgport_thread) { err = __thread_resume (threads[i]); assert_perror (err); @@ -552,27 +670,58 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss, (vm_address_t) threads, nthreads * sizeof *threads); _hurd_stopped = 0; - if (act == handle) - /* The thread that will run the handler is already suspended. */ - ss_suspended = 1; } + error_t err; + sighandler_t handler; + if (signo == 0) { if (untraced) - /* This is PTRACE_CONTINUE. */ - resume (); + { + /* This is PTRACE_CONTINUE. */ + act = ignore; + resume (); + } /* This call is just to check for pending signals. */ - __spin_lock (&ss->lock); - goto check_pending_signals; + _hurd_sigstate_lock (ss); + return ss; } - post_signal: - thread_state.set = 0; /* We know nothing. */ - __spin_lock (&ss->lock); + _hurd_sigstate_lock (ss); + + /* If this is a global signal, try to find a thread ready to accept + it right away. This is especially important for untraced signals, + since going through the global pending mask would de-untrace them. */ + if (ss->thread == MACH_PORT_NULL) + { + struct hurd_sigstate *rss; + + __mutex_lock (&_hurd_siglock); + for (rss = _hurd_sigstates; rss != NULL; rss = rss->next) + { + if (! sigstate_is_global_rcv (rss)) + continue; + + /* The global sigstate is already locked. */ + __spin_lock (&rss->lock); + if (! __sigismember (&rss->blocked, signo)) + { + ss = rss; + break; + } + __spin_unlock (&rss->lock); + } + __mutex_unlock (&_hurd_siglock); + } + + /* We want the preemptors to be able to update the blocking mask + without affecting the delivery of this signal, so we save the + current value to test against later. */ + sigset_t blocked = ss->blocked; /* Check for a preempted signal. Preempted signals can arrive during critical sections. */ @@ -630,12 +779,12 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss, mark_pending (); else suspend (); - __spin_unlock (&ss->lock); + _hurd_sigstate_unlock (ss); reply (); - return; + return NULL; } - handler = ss->actions[signo].sa_handler; + handler = _hurd_sigstate_actions (ss) [signo].sa_handler; if (handler == SIG_DFL) /* Figure out the default action for this signal. */ @@ -728,9 +877,7 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss, } /* Handle receipt of a blocked signal, or any signal while stopped. */ - if (act != ignore /* Signals ignored now are forgotten now. */ - && __sigismember (&ss->blocked, signo) - || (signo != SIGKILL && _hurd_stopped)) + if (__sigismember (&blocked, signo) || (signo != SIGKILL && _hurd_stopped)) { mark_pending (); act = ignore; @@ -765,6 +912,7 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss, now's the time to set it going. */ if (ss_suspended) { + assert (ss->thread != MACH_PORT_NULL); err = __thread_resume (ss->thread); assert_perror (err); ss_suspended = 0; @@ -809,6 +957,8 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss, struct sigcontext *scp, ocontext; int wait_for_reply, state_changed; + assert (ss->thread != MACH_PORT_NULL); + /* Stop the thread and abort its pending RPC operations. */ if (! ss_suspended) { @@ -876,7 +1026,7 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss, as a unit. */ crit ? 0 : signo, 1, &thread_state, &state_changed, - &reply) + reply) != MACH_PORT_NULL); if (crit) @@ -945,23 +1095,28 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss, } } + struct sigaction *action = & _hurd_sigstate_actions (ss) [signo]; + /* Backdoor extra argument to signal handler. */ scp->sc_error = detail->error; /* Block requested signals while running the handler. */ scp->sc_mask = ss->blocked; - __sigorset (&ss->blocked, &ss->blocked, &ss->actions[signo].sa_mask); + __sigorset (&ss->blocked, &ss->blocked, &action->sa_mask); /* Also block SIGNO unless we're asked not to. */ - if (! (ss->actions[signo].sa_flags & (SA_RESETHAND | SA_NODEFER))) + if (! (action->sa_flags & (SA_RESETHAND | SA_NODEFER))) __sigaddset (&ss->blocked, signo); /* Reset to SIG_DFL if requested. SIGILL and SIGTRAP cannot be automatically reset when delivered; the system silently enforces this restriction. */ - if (ss->actions[signo].sa_flags & SA_RESETHAND + if (action->sa_flags & SA_RESETHAND && signo != SIGILL && signo != SIGTRAP) - ss->actions[signo].sa_handler = SIG_DFL; + action->sa_handler = SIG_DFL; + + /* Any sigsuspend call must return after the handler does. */ + wake_sigsuspend (ss); /* Start the thread running the handler (or possibly waiting for an RPC reply before running the handler). */ @@ -976,95 +1131,134 @@ _hurd_internal_post_signal (struct hurd_sigstate *ss, } } - /* The signal has either been ignored or is now being handled. We can - consider it delivered and reply to the killer. */ - reply (); + return ss; +} - /* We get here unless the signal was fatal. We still hold SS->lock. - Check for pending signals, and loop to post them. */ - { - /* Return nonzero if SS has any signals pending we should worry about. - We don't worry about any pending signals if we are stopped, nor if - SS is in a critical section. We are guaranteed to get a sig_post - message before any of them become deliverable: either the SIGCONT - signal, or a sig_post with SIGNO==0 as an explicit poll when the - thread finishes its critical section. */ - inline int signals_pending (void) +/* Return the set of pending signals in SS which should be delivered. */ +static sigset_t +pending_signals (struct hurd_sigstate *ss) +{ + /* We don't worry about any pending signals if we are stopped, nor if + SS is in a critical section. We are guaranteed to get a sig_post + message before any of them become deliverable: either the SIGCONT + signal, or a sig_post with SIGNO==0 as an explicit poll when the + thread finishes its critical section. */ + if (_hurd_stopped || __spin_lock_locked (&ss->critical_section_lock)) + return 0; + + return _hurd_sigstate_pending (ss) & ~ss->blocked; +} + +/* Post the specified pending signals in SS and return 1. If one of + them is traced, abort immediately and return 0. SS must be locked on + entry and will be unlocked in all cases. */ +static int +post_pending (struct hurd_sigstate *ss, sigset_t pending, void (*reply) (void)) +{ + int signo; + struct hurd_signal_detail detail; + + /* Make sure SS corresponds to an actual thread, since we assume it won't + change in post_signal. */ + assert (ss->thread != MACH_PORT_NULL); + + for (signo = 1; signo < NSIG; ++signo) + if (__sigismember (&pending, signo)) { - if (_hurd_stopped || __spin_lock_locked (&ss->critical_section_lock)) + detail = sigstate_clear_pending (ss, signo); + _hurd_sigstate_unlock (ss); + + /* Will reacquire the lock, except if the signal is traced. */ + if (! post_signal (ss, signo, &detail, 0, reply)) return 0; - return pending = ss->pending & ~ss->blocked; } - check_pending_signals: - untraced = 0; + /* No more signals pending; SS->lock is still locked. */ + _hurd_sigstate_unlock (ss); - if (signals_pending ()) - { - for (signo = 1; signo < NSIG; ++signo) - if (__sigismember (&pending, signo)) - { - deliver_pending: - __sigdelset (&ss->pending, signo); - *detail = ss->pending_data[signo]; - __spin_unlock (&ss->lock); - goto post_signal; - } - } + return 1; +} - /* No pending signals left undelivered for this thread. - If we were sent signal 0, we need to check for pending - signals for all threads. */ - if (signo == 0) - { - __spin_unlock (&ss->lock); - __mutex_lock (&_hurd_siglock); - for (ss = _hurd_sigstates; ss != NULL; ss = ss->next) - { - __spin_lock (&ss->lock); - for (signo = 1; signo < NSIG; ++signo) - if (__sigismember (&ss->pending, signo) - && (!__sigismember (&ss->blocked, signo) - /* We "deliver" immediately pending blocked signals whose - action might be to ignore, so that if ignored they are - dropped right away. */ - || ss->actions[signo].sa_handler == SIG_IGN - || ss->actions[signo].sa_handler == SIG_DFL)) - { - __mutex_unlock (&_hurd_siglock); - goto deliver_pending; - } - __spin_unlock (&ss->lock); - } - __mutex_unlock (&_hurd_siglock); - } - else - { - /* No more signals pending; SS->lock is still locked. - Wake up any sigsuspend call that is blocking SS->thread. */ - if (ss->suspended != MACH_PORT_NULL) - { - /* There is a sigsuspend waiting. Tell it to wake up. */ - error_t err; - mach_msg_header_t msg; - msg.msgh_bits = MACH_MSGH_BITS (MACH_MSG_TYPE_MAKE_SEND, 0); - msg.msgh_remote_port = ss->suspended; - msg.msgh_local_port = MACH_PORT_NULL; - /* These values do not matter. */ - msg.msgh_id = 8675309; /* Jenny, Jenny. */ - ss->suspended = MACH_PORT_NULL; - err = __mach_msg (&msg, MACH_SEND_MSG, sizeof msg, 0, - MACH_PORT_NULL, MACH_MSG_TIMEOUT_NONE, - MACH_PORT_NULL); - assert_perror (err); - } - __spin_unlock (&ss->lock); - } - } +/* Post all the pending signals of all threads and return 1. If a traced + signal is encountered, abort immediately and return 0. */ +static int +post_all_pending_signals (void (*reply) (void)) +{ + struct hurd_sigstate *ss; + sigset_t pending = 0; + + for (;;) + { + __mutex_lock (&_hurd_siglock); + for (ss = _hurd_sigstates; ss != NULL; ss = ss->next) + { + _hurd_sigstate_lock (ss); + + pending = pending_signals (ss); + if (pending) + /* post_pending() below will unlock SS. */ + break; + + _hurd_sigstate_unlock (ss); + } + __mutex_unlock (&_hurd_siglock); + + if (! pending) + return 1; + if (! post_pending (ss, pending, reply)) + return 0; + } +} + +/* Deliver a signal. SS is not locked. */ +void +_hurd_internal_post_signal (struct hurd_sigstate *ss, + int signo, struct hurd_signal_detail *detail, + mach_port_t reply_port, + mach_msg_type_name_t reply_port_type, + int untraced) +{ + /* Reply to this sig_post message. */ + __typeof (__msg_sig_post_reply) *reply_rpc + = (untraced ? __msg_sig_post_untraced_reply : __msg_sig_post_reply); + void reply (void) + { + error_t err; + if (reply_port == MACH_PORT_NULL) + return; + err = (*reply_rpc) (reply_port, reply_port_type, 0); + reply_port = MACH_PORT_NULL; + if (err != MACH_SEND_INVALID_DEST) /* Ignore dead reply port. */ + assert_perror (err); + } + + ss = post_signal (ss, signo, detail, untraced, reply); + if (! ss) + return; - /* All pending signals delivered to all threads. - Now we can send the reply message even for signal 0. */ - reply (); + /* The signal was neither fatal nor traced. We still hold SS->lock. */ + if (signo != 0 && ss->thread != MACH_PORT_NULL) + { + /* The signal has either been ignored or is now being handled. We can + consider it delivered and reply to the killer. */ + reply (); + + /* Post any pending signals for this thread. */ + if (! post_pending (ss, pending_signals (ss), reply)) + return; + } + else + { + /* If this was a process-wide signal or a poll request, we need + to check for pending signals for all threads. */ + _hurd_sigstate_unlock (ss); + if (! post_all_pending_signals (reply)) + return; + + /* All pending signals delivered to all threads. + Now we can send the reply message even for signal 0. */ + reply (); + } } /* Decide whether REFPORT enables the sender to send us a SIGNO signal. @@ -1183,9 +1377,10 @@ _S_msg_sig_post (mach_port_t me, d.code = sigcode; d.exc = 0; - /* Post the signal to the designated signal-receiving thread. This will - reply when the signal can be considered delivered. */ - _hurd_internal_post_signal (_hurd_thread_sigstate (_hurd_sigthread), + /* Post the signal to a global receiver thread (or mark it pending in + the global sigstate). This will reply when the signal can be + considered delivered. */ + _hurd_internal_post_signal (_hurd_global_sigstate, signo, &d, reply_port, reply_port_type, 0); /* Stop if traced. */ @@ -1213,7 +1408,7 @@ _S_msg_sig_post_untraced (mach_port_t me, /* Post the signal to the designated signal-receiving thread. This will reply when the signal can be considered delivered. */ - _hurd_internal_post_signal (_hurd_thread_sigstate (_hurd_sigthread), + _hurd_internal_post_signal (_hurd_global_sigstate, signo, &d, reply_port, reply_port_type, 1); /* Untraced flag. */ @@ -1224,8 +1419,8 @@ extern void __mig_init (void *); #include -/* Initialize the message port and _hurd_sigthread and start the signal - thread. */ +/* Initialize the message port, _hurd_global_sigstate, and start the + signal thread. */ void _hurdsig_init (const int *intarray, size_t intarraysize) @@ -1248,27 +1443,34 @@ _hurdsig_init (const int *intarray, size_t intarraysize) MACH_MSG_TYPE_MAKE_SEND); assert_perror (err); + /* Initialize the global signal state. */ + _hurd_global_sigstate = _hurd_thread_sigstate (MACH_PORT_NULL); + + /* We block all signals, and let actual threads pull them from the + pending mask. */ + __sigfillset(& _hurd_global_sigstate->blocked); + /* Initialize the main thread's signal state. */ ss = _hurd_self_sigstate (); - /* Copy inherited values from our parent (or pre-exec process state) - into the signal settings of the main thread. */ + /* Mark it as a process-wide signal receiver. Threads in this set use + the common action vector in _hurd_global_sigstate. */ + _hurd_sigstate_set_global_rcv (ss); + + /* Copy inherited signal settings from our parent (or pre-exec process + state) */ if (intarraysize > INIT_SIGMASK) ss->blocked = intarray[INIT_SIGMASK]; if (intarraysize > INIT_SIGPENDING) - ss->pending = intarray[INIT_SIGPENDING]; + _hurd_global_sigstate->pending = intarray[INIT_SIGPENDING]; if (intarraysize > INIT_SIGIGN && intarray[INIT_SIGIGN] != 0) { int signo; for (signo = 1; signo < NSIG; ++signo) if (intarray[INIT_SIGIGN] & __sigmask(signo)) - ss->actions[signo].sa_handler = SIG_IGN; + _hurd_global_sigstate->actions[signo].sa_handler = SIG_IGN; } - /* Set the default thread to receive task-global signals - to this one, the main (first) user thread. */ - _hurd_sigthread = ss->thread; - /* Start the signal thread listening on the message port. */ #pragma weak __cthread_fork diff --git a/hurd/hurdsock.c b/hurd/hurdsock.c index ab74a521ec..f77c83ee9e 100644 --- a/hurd/hurdsock.c +++ b/hurd/hurdsock.c @@ -1,5 +1,5 @@ /* _hurd_socket_server - Find the server for a socket domain. - Copyright (C) 1991-2019 Free Software Foundation, Inc. + Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/hurdsocket.h b/hurd/hurdsocket.h index 7024b94283..a1c25ef03b 100644 --- a/hurd/hurdsocket.h +++ b/hurd/hurdsocket.h @@ -1,5 +1,5 @@ /* Hurd-specific socket functions - Copyright (C) 2013-2019 Free Software Foundation, Inc. + Copyright (C) 2013-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _HURD_HURDSOCKET_H #define _HURD_HURDSOCKET_H diff --git a/hurd/hurdstartup.c b/hurd/hurdstartup.c index a028151b8f..b67de45bc9 100644 --- a/hurd/hurdstartup.c +++ b/hurd/hurdstartup.c @@ -1,5 +1,5 @@ /* Initial program startup for running under the GNU Hurd. - Copyright (C) 1991-2019 Free Software Foundation, Inc. + Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/hurdstartup.h b/hurd/hurdstartup.h index aa5141ca00..2e0b499bc6 100644 --- a/hurd/hurdstartup.h +++ b/hurd/hurdstartup.h @@ -1,5 +1,5 @@ /* Data from initial program startup for running under the GNU Hurd. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _HURDSTARTUP_H #define _HURDSTARTUP_H 1 diff --git a/hurd/intern-fd.c b/hurd/intern-fd.c index b576279e85..adf3a76db6 100644 --- a/hurd/intern-fd.c +++ b/hurd/intern-fd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2019 Free Software Foundation, Inc. +/* Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/intr-msg.c b/hurd/intr-msg.c index b7fda2188f..30cc6f20ea 100644 --- a/hurd/intr-msg.c +++ b/hurd/intr-msg.c @@ -1,5 +1,5 @@ /* Replacement for mach_msg used in interruptible Hurd RPCs. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/intr-rpc.defs b/hurd/intr-rpc.defs index 8053ad0e26..ca4bf0a46d 100644 --- a/hurd/intr-rpc.defs +++ b/hurd/intr-rpc.defs @@ -1,5 +1,5 @@ /* Special MiG definitions for interruptible RPC stubs. - Copyright (C) 1994-2019 Free Software Foundation, Inc. + Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Cause user stubs for interruptible RPCs to import a special header to modify their behavior. */ diff --git a/hurd/intr-rpc.h b/hurd/intr-rpc.h index 74a9825aeb..b6f42e7fe9 100644 --- a/hurd/intr-rpc.h +++ b/hurd/intr-rpc.h @@ -1,5 +1,5 @@ /* Special MiG definitions for interruptible RPC stubs. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This file is imported by the MiG-generated user stubs for interruptible RPCs. We modify them to use our own function in place of mach_msg. */ diff --git a/hurd/longjmp-ts.c b/hurd/longjmp-ts.c index 886d832d11..87e86721c5 100644 --- a/hurd/longjmp-ts.c +++ b/hurd/longjmp-ts.c @@ -1,5 +1,5 @@ /* Perform a `longjmp' on a Mach thread_state. Stub version. - Copyright (C) 1991-2019 Free Software Foundation, Inc. + Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/lookup-at.c b/hurd/lookup-at.c index 43430b5762..794ab53626 100644 --- a/hurd/lookup-at.c +++ b/hurd/lookup-at.c @@ -1,5 +1,5 @@ /* Lookup helper function for Hurd implementation of *at functions. - Copyright (C) 2006-2019 Free Software Foundation, Inc. + Copyright (C) 2006-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/lookup-retry.c b/hurd/lookup-retry.c index 9c49075fe1..c90eda808d 100644 --- a/hurd/lookup-retry.c +++ b/hurd/lookup-retry.c @@ -1,5 +1,5 @@ /* hairy bits of Hurd file name lookup - Copyright (C) 1992-2019 Free Software Foundation, Inc. + Copyright (C) 1992-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/msgportdemux.c b/hurd/msgportdemux.c index 039b395933..7d5f6a5a66 100644 --- a/hurd/msgportdemux.c +++ b/hurd/msgportdemux.c @@ -1,5 +1,5 @@ /* Demux messages sent on the signal port. - Copyright (C) 1991-2019 Free Software Foundation, Inc. + Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/new-fd.c b/hurd/new-fd.c index 8d02549cf2..db96fb9c40 100644 --- a/hurd/new-fd.c +++ b/hurd/new-fd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2019 Free Software Foundation, Inc. +/* Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/openport.c b/hurd/openport.c index d056d29af4..22182e9149 100644 --- a/hurd/openport.c +++ b/hurd/openport.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2019 Free Software Foundation, Inc. +/* Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/path-lookup.c b/hurd/path-lookup.c index af0a02a5ce..b404f500e1 100644 --- a/hurd/path-lookup.c +++ b/hurd/path-lookup.c @@ -1,5 +1,5 @@ /* Filename lookup using a search path - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/pid2task.c b/hurd/pid2task.c index ee62db995d..b6d5b4e861 100644 --- a/hurd/pid2task.c +++ b/hurd/pid2task.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/hurd/port-cleanup.c b/hurd/port-cleanup.c index 7a61155d45..0bb8267743 100644 --- a/hurd/port-cleanup.c +++ b/hurd/port-cleanup.c @@ -1,5 +1,5 @@ /* Cleanup function for `struct hurd_port' users who longjmp. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/port2fd.c b/hurd/port2fd.c index f500202c91..4cfc467564 100644 --- a/hurd/port2fd.c +++ b/hurd/port2fd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2019 Free Software Foundation, Inc. +/* Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/ports-get.c b/hurd/ports-get.c index f17d66e2fb..c09de3e6ab 100644 --- a/hurd/ports-get.c +++ b/hurd/ports-get.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2019 Free Software Foundation, Inc. +/* Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/hurd/ports-set.c b/hurd/ports-set.c index 8f81c36b9e..1274205fd1 100644 --- a/hurd/ports-set.c +++ b/hurd/ports-set.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2019 Free Software Foundation, Inc. +/* Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/hurd/preempt-sig.c b/hurd/preempt-sig.c index 3e47cfc254..2ac1a61f87 100644 --- a/hurd/preempt-sig.c +++ b/hurd/preempt-sig.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2019 Free Software Foundation, Inc. +/* Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/privports.c b/hurd/privports.c index 9dc27b3e15..75315bb846 100644 --- a/hurd/privports.c +++ b/hurd/privports.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2019 Free Software Foundation, Inc. +/* Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/hurd/report-wait.c b/hurd/report-wait.c index 7a507053bf..487a5fb05a 100644 --- a/hurd/report-wait.c +++ b/hurd/report-wait.c @@ -1,5 +1,5 @@ /* Report on what a thread in our task is waiting for. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/set-host.c b/hurd/set-host.c index 52ec46adc7..13e10fa4f3 100644 --- a/hurd/set-host.c +++ b/hurd/set-host.c @@ -1,5 +1,5 @@ /* Set a host configuration item kept as the whole contents of a file. - Copyright (C) 1996-2019 Free Software Foundation, Inc. + Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/setauth.c b/hurd/setauth.c index 0476cde2da..5493db5e5d 100644 --- a/hurd/setauth.c +++ b/hurd/setauth.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/seteuids.c b/hurd/seteuids.c index e49e098443..329a4d034a 100644 --- a/hurd/seteuids.c +++ b/hurd/seteuids.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1993-2019 Free Software Foundation, Inc. +/* Copyright (C) 1993-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/siginfo.c b/hurd/siginfo.c index d37ff810af..7411eb92bc 100644 --- a/hurd/siginfo.c +++ b/hurd/siginfo.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1994-2019 Free Software Foundation, Inc. +/* Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/sigunwind.c b/hurd/sigunwind.c index 75841ae210..3a24426a02 100644 --- a/hurd/sigunwind.c +++ b/hurd/sigunwind.c @@ -1,5 +1,5 @@ /* longjmp cleanup function for unwinding past signal handlers. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/task2pid.c b/hurd/task2pid.c index 4e23f8b7eb..840999330d 100644 --- a/hurd/task2pid.c +++ b/hurd/task2pid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/hurd/thread-cancel.c b/hurd/thread-cancel.c index ade938c93e..10c7fe7aa2 100644 --- a/hurd/thread-cancel.c +++ b/hurd/thread-cancel.c @@ -1,5 +1,5 @@ /* Thread cancellation support. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/thread-self.c b/hurd/thread-self.c index 2089ca0424..15888e0558 100644 --- a/hurd/thread-self.c +++ b/hurd/thread-self.c @@ -1,5 +1,5 @@ /* Cheap function to get current thread from sigstate without a syscall. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/hurd/trampoline.c b/hurd/trampoline.c index ed4de3c097..e70fbf6c0f 100644 --- a/hurd/trampoline.c +++ b/hurd/trampoline.c @@ -1,5 +1,5 @@ /* Set thread_state for sighandler, and sigcontext to recover. Stub version. - Copyright (C) 1994-2019 Free Software Foundation, Inc. + Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/vpprintf.c b/hurd/vpprintf.c index 4d9fe21cff..c8d901f975 100644 --- a/hurd/vpprintf.c +++ b/hurd/vpprintf.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/hurd/xattr.c b/hurd/xattr.c index ffca84ef33..7464265465 100644 --- a/hurd/xattr.c +++ b/hurd/xattr.c @@ -1,5 +1,5 @@ /* Support for *xattr interfaces on GNU/Hurd. - Copyright (C) 2006-2019 Free Software Foundation, Inc. + Copyright (C) 2006-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconv/Makefile b/iconv/Makefile index 74cd9bf860..b8fe8c47df 100644 --- a/iconv/Makefile +++ b/iconv/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2019 Free Software Foundation, Inc. +# Copyright (C) 1997-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # # Makefile for iconv. diff --git a/iconv/dummy-repertoire.c b/iconv/dummy-repertoire.c index 20efd3fc0f..1fce769b8c 100644 --- a/iconv/dummy-repertoire.c +++ b/iconv/dummy-repertoire.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Free Software Foundation, Inc. +/* Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2001. @@ -13,7 +13,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, see . */ + along with this program; if not, see . */ #include diff --git a/iconv/gconv.c b/iconv/gconv.c index efbe259d43..a62a011fd0 100644 --- a/iconv/gconv.c +++ b/iconv/gconv.c @@ -1,6 +1,6 @@ /* Convert characters in input buffer using conversion descriptor to output buffer. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconv/gconv.h b/iconv/gconv.h index 7ce79bcbf6..6add596642 100644 --- a/iconv/gconv.h +++ b/iconv/gconv.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2019 Free Software Foundation, Inc. +/* Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This header provides no interface for a user to the internals of the gconv implementation in the libc. Therefore there is no use diff --git a/iconv/gconv_builtin.c b/iconv/gconv_builtin.c index 04a0d59e91..601513be58 100644 --- a/iconv/gconv_builtin.c +++ b/iconv/gconv_builtin.c @@ -1,5 +1,5 @@ /* Table for builtin transformation mapping. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconv/gconv_builtin.h b/iconv/gconv_builtin.h index b96258129a..bddf33dfc0 100644 --- a/iconv/gconv_builtin.h +++ b/iconv/gconv_builtin.h @@ -1,5 +1,5 @@ /* Builtin transformations. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* All encoding named must be in upper case. There must be no extra spaces. */ diff --git a/iconv/gconv_cache.c b/iconv/gconv_cache.c index 4db7287cee..9fe371b4c0 100644 --- a/iconv/gconv_cache.c +++ b/iconv/gconv_cache.c @@ -1,5 +1,5 @@ /* Cache handling for iconv modules. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include @@ -446,12 +446,9 @@ __gconv_lookup_cache (const char *toset, const char *fromset, void __gconv_release_cache (struct __gconv_step *steps, size_t nsteps) { - /* The only thing we have to deallocate is the record with the - steps. But do not do this if the reference counter is still - positive. This can happen if the steps array was cloned by - __wcsmbs_clone_conv. (The array elements have separate __counter - fields, but they are only out of sync temporarily.) */ - if (gconv_cache != NULL && steps->__counter == 0) + if (gconv_cache != NULL) + /* The only thing we have to deallocate is the record with the + steps. */ free (steps); } diff --git a/iconv/gconv_charset.h b/iconv/gconv_charset.h index 91e0ad3141..348acc089b 100644 --- a/iconv/gconv_charset.h +++ b/iconv/gconv_charset.h @@ -1,5 +1,5 @@ /* Charset name normalization. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconv/gconv_close.c b/iconv/gconv_close.c index 515be8f83f..ac5114dca2 100644 --- a/iconv/gconv_close.c +++ b/iconv/gconv_close.c @@ -1,5 +1,5 @@ /* Release any resource associated with given conversion descriptor. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconv/gconv_conf.c b/iconv/gconv_conf.c index ae8937cba0..735bd1f2d5 100644 --- a/iconv/gconv_conf.c +++ b/iconv/gconv_conf.c @@ -1,5 +1,5 @@ /* Handle configuration data. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconv/gconv_db.c b/iconv/gconv_db.c index 3735fac765..b16ac17c3f 100644 --- a/iconv/gconv_db.c +++ b/iconv/gconv_db.c @@ -1,5 +1,5 @@ /* Provide access to the collection of available transformation modules. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconv/gconv_dl.c b/iconv/gconv_dl.c index c0342d8f50..af02cc9f06 100644 --- a/iconv/gconv_dl.c +++ b/iconv/gconv_dl.c @@ -1,5 +1,5 @@ /* Handle loading/unloading of shared object for transformation. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconv/gconv_int.h b/iconv/gconv_int.h index ea41d6feaa..fbaf12cee2 100644 --- a/iconv/gconv_int.h +++ b/iconv/gconv_int.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2019 Free Software Foundation, Inc. +/* Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _GCONV_INT_H #define _GCONV_INT_H 1 diff --git a/iconv/gconv_open.c b/iconv/gconv_open.c index 383190df4f..b39626d252 100644 --- a/iconv/gconv_open.c +++ b/iconv/gconv_open.c @@ -1,5 +1,5 @@ /* Find matching transformation algorithms and initialize steps. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconv/gconv_simple.c b/iconv/gconv_simple.c index 75ce8fb1f4..d4797fba17 100644 --- a/iconv/gconv_simple.c +++ b/iconv/gconv_simple.c @@ -1,5 +1,5 @@ /* Simple transformations functions. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconv/gconv_trans.c b/iconv/gconv_trans.c index e162ebe69c..ea02c95e84 100644 --- a/iconv/gconv_trans.c +++ b/iconv/gconv_trans.c @@ -1,5 +1,5 @@ /* Transliteration using the locale's data. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconv/iconv.c b/iconv/iconv.c index b96f9d84a3..97c894dcd4 100644 --- a/iconv/iconv.c +++ b/iconv/iconv.c @@ -1,6 +1,6 @@ /* Convert characters in input buffer using conversion descriptor to output buffer. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include /* for NULL */ #include diff --git a/iconv/iconv.h b/iconv/iconv.h index 9585ec268e..a457001c0c 100644 --- a/iconv/iconv.h +++ b/iconv/iconv.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997-2019 Free Software Foundation, Inc. +/* Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _ICONV_H #define _ICONV_H 1 diff --git a/iconv/iconv_charmap.c b/iconv/iconv_charmap.c index 629391c58b..5c4a208218 100644 --- a/iconv/iconv_charmap.c +++ b/iconv/iconv_charmap.c @@ -1,5 +1,5 @@ /* Convert using charmaps and possibly iconv(). - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2001. @@ -14,7 +14,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, see . */ + along with this program; if not, see . */ #include #include diff --git a/iconv/iconv_close.c b/iconv/iconv_close.c index 31fcf3739f..a19d3796a9 100644 --- a/iconv/iconv_close.c +++ b/iconv/iconv_close.c @@ -1,5 +1,5 @@ /* Release any resource associated with given conversion descriptor. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconv/iconv_open.c b/iconv/iconv_open.c index b3e7953ee1..687067070a 100644 --- a/iconv/iconv_open.c +++ b/iconv/iconv_open.c @@ -1,5 +1,5 @@ /* Get descriptor for character set conversion. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconv/iconv_prog.c b/iconv/iconv_prog.c index 2bae079d2b..9709e4a701 100644 --- a/iconv/iconv_prog.c +++ b/iconv/iconv_prog.c @@ -1,5 +1,5 @@ /* Convert text in given files from the specified from-set to the to-set. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -14,7 +14,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, see . */ + along with this program; if not, see . */ #include #include @@ -423,7 +423,7 @@ print_version (FILE *stream, struct argp_state *state) Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\ -"), "2019"); +"), "2020"); fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper"); } diff --git a/iconv/iconv_prog.h b/iconv/iconv_prog.h index 451fdd68e8..05df1e1cf6 100644 --- a/iconv/iconv_prog.h +++ b/iconv/iconv_prog.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Free Software Foundation, Inc. +/* Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2001. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _ICONV_PROG_H #define _ICONV_PROG_H 1 diff --git a/iconv/iconvconfig.c b/iconv/iconvconfig.c index f75e46dc16..18c1ef37e3 100644 --- a/iconv/iconvconfig.c +++ b/iconv/iconvconfig.c @@ -1,5 +1,5 @@ /* Generate fastloading iconv module configuration files. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2000. @@ -14,7 +14,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, see . */ + along with this program; if not, see . */ #include #include @@ -397,7 +397,7 @@ print_version (FILE *stream, struct argp_state *state) Copyright (C) %s Free Software Foundation, Inc.\n\ This is free software; see the source for copying conditions. There is NO\n\ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\ -"), "2019"); +"), "2020"); fprintf (stream, gettext ("Written by %s.\n"), "Ulrich Drepper"); } diff --git a/iconv/iconvconfig.h b/iconv/iconvconfig.h index f6926d1351..7f848186bd 100644 --- a/iconv/iconvconfig.h +++ b/iconv/iconvconfig.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2019 Free Software Foundation, Inc. +/* Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2000. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; see the file COPYING.LIB. If - not, see . */ + not, see . */ #include diff --git a/iconv/loop.c b/iconv/loop.c index fa98c1a521..9f7570d591 100644 --- a/iconv/loop.c +++ b/iconv/loop.c @@ -1,5 +1,5 @@ /* Conversion loop frame work. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This file provides a frame for the reader loop in all conversion modules. The actual code must (of course) be provided in the actual module source diff --git a/iconv/skeleton.c b/iconv/skeleton.c index 7c12975de3..1dc642e2fc 100644 --- a/iconv/skeleton.c +++ b/iconv/skeleton.c @@ -1,5 +1,5 @@ /* Skeleton for a conversion module. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This file can be included to provide definitions of several things many modules have in common. It can be customized using the following diff --git a/iconv/strtab.c b/iconv/strtab.c index 141135db4d..d07acc4e65 100644 --- a/iconv/strtab.c +++ b/iconv/strtab.c @@ -1,5 +1,5 @@ /* C string table handling. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. Written by Ulrich Drepper , 2000. This program is free software; you can redistribute it and/or modify @@ -13,7 +13,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, see . */ + along with this program; if not, see . */ #ifdef HAVE_CONFIG_H # include diff --git a/iconv/test-gconv-modules b/iconv/test-gconv-modules index 95376f2c96..4a0a31378d 100644 --- a/iconv/test-gconv-modules +++ b/iconv/test-gconv-modules @@ -1,5 +1,5 @@ # Test modules for gconv. -# Copyright (C) 2017-2019 Free Software Foundation, Inc. +# Copyright (C) 2017-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # To activate these modules, tests need to put a directory with the # modules and a copy of this file (under the name gconv-modules) on diff --git a/iconv/tst-gconv-init-failure-mod.c b/iconv/tst-gconv-init-failure-mod.c index a84ad55a54..398c59e998 100644 --- a/iconv/tst-gconv-init-failure-mod.c +++ b/iconv/tst-gconv-init-failure-mod.c @@ -1,5 +1,5 @@ /* Test gconv module for tst-gconv-init-failure. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconv/tst-gconv-init-failure.c b/iconv/tst-gconv-init-failure.c index 511995d74a..df6e857545 100644 --- a/iconv/tst-gconv-init-failure.c +++ b/iconv/tst-gconv-init-failure.c @@ -1,5 +1,5 @@ /* Check that module __end_fct is not invoked when the init function fails. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconv/tst-iconv-mt.c b/iconv/tst-iconv-mt.c index 17bfd41c45..1ae9b4ac17 100644 --- a/iconv/tst-iconv-mt.c +++ b/iconv/tst-iconv-mt.c @@ -1,5 +1,5 @@ /* Test that iconv works in a multi-threaded program. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This test runs several worker threads that perform the following three steps in staggered synchronization with each other: diff --git a/iconv/tst-iconv2.c b/iconv/tst-iconv2.c index 92b7fc6e0b..ff0eb61fcb 100644 --- a/iconv/tst-iconv2.c +++ b/iconv/tst-iconv2.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2019 Free Software Foundation, Inc. +/* Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2001. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconv/tst-iconv5.c b/iconv/tst-iconv5.c index 66c86490b1..8211843e4f 100644 --- a/iconv/tst-iconv5.c +++ b/iconv/tst-iconv5.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2019 Free Software Foundation, Inc. +/* Copyright (C) 2004-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by GOTO Masanori , 2004 @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconv/tst-iconv6.c b/iconv/tst-iconv6.c index 048f245836..e4cd861a38 100644 --- a/iconv/tst-iconv6.c +++ b/iconv/tst-iconv6.c @@ -1,5 +1,5 @@ /* Testing ucs4le_internal_loop() in gconv_simple.c. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconv/tst-iconv7.c b/iconv/tst-iconv7.c index 10372bf79f..a9e7eff5b1 100644 --- a/iconv/tst-iconv7.c +++ b/iconv/tst-iconv7.c @@ -1,5 +1,5 @@ /* Test iconv buffer handling with the IGNORE error handler. - Copyright (C) 2019 Free Software Foundation, Inc. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Derived from BZ #18830 */ #include diff --git a/iconvdata/8bit-gap.c b/iconvdata/8bit-gap.c index af9cc62fc9..0fdb6327fc 100644 --- a/iconvdata/8bit-gap.c +++ b/iconvdata/8bit-gap.c @@ -1,6 +1,6 @@ /* Generic conversion to and from 8bit charsets, converting from UCS using gaps. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/8bit-generic.c b/iconvdata/8bit-generic.c index e9f7dceac5..9e722546bc 100644 --- a/iconvdata/8bit-generic.c +++ b/iconvdata/8bit-generic.c @@ -1,5 +1,5 @@ /* Generic conversion to and from 8bit charsets. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/Makefile b/iconvdata/Makefile index 077df78e59..c83962f351 100644 --- a/iconvdata/Makefile +++ b/iconvdata/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1997-2019 Free Software Foundation, Inc. +# Copyright (C) 1997-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # # Makefile for iconv data and code. diff --git a/iconvdata/TESTS b/iconvdata/TESTS index 257fa3f2de..ef3bd43454 100644 --- a/iconvdata/TESTS +++ b/iconvdata/TESTS @@ -1,5 +1,5 @@ # Available tests for iconv(1) (and therefore iconv(3)) in GNU libc. -# Copyright (C) 1998-2019 Free Software Foundation, Inc. +# Copyright (C) 1998-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # Contributed by Ulrich Drepper , 1998. # @@ -16,7 +16,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # Each line consists of at least four entries: # 1. input file name. diff --git a/iconvdata/TESTS2 b/iconvdata/TESTS2 index cbae19d976..531bb1eaf5 100644 --- a/iconvdata/TESTS2 +++ b/iconvdata/TESTS2 @@ -1,5 +1,5 @@ # Tests for endianness dependent iconv(1) (and therefore iconv(3)) in GNU libc. -# Copyright (C) 2001-2019 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # Contributed by Bruno Haible , 2001. # @@ -16,7 +16,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # Each line consists of three fields: # 1. The endianness independent encoding. diff --git a/iconvdata/ansi_x3.110.c b/iconvdata/ansi_x3.110.c index bf197ccd0e..ac703085f4 100644 --- a/iconvdata/ansi_x3.110.c +++ b/iconvdata/ansi_x3.110.c @@ -1,5 +1,5 @@ /* Generic conversion to and from ANSI_X3.110-1983. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/armscii-8.c b/iconvdata/armscii-8.c index 2091108469..a9a3b20f26 100644 --- a/iconvdata/armscii-8.c +++ b/iconvdata/armscii-8.c @@ -1,5 +1,5 @@ /* Conversion to and from ARMSCII-8 - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/asmo_449.c b/iconvdata/asmo_449.c index 651188a64b..11d78e13a3 100644 --- a/iconvdata/asmo_449.c +++ b/iconvdata/asmo_449.c @@ -1,5 +1,5 @@ /* Conversion from and to ASMO_449. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/big5.c b/iconvdata/big5.c index 1f61985f5d..8f077bd75f 100644 --- a/iconvdata/big5.c +++ b/iconvdata/big5.c @@ -1,5 +1,5 @@ /* Mapping tables for Big5 handling. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/big5hkscs.c b/iconvdata/big5hkscs.c index 7490a7b242..01fcfeba76 100644 --- a/iconvdata/big5hkscs.c +++ b/iconvdata/big5hkscs.c @@ -1,5 +1,5 @@ /* Mapping tables for Big5-HKSCS handling. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. Modified for Big5-HKSCS by Roger So , 2000. @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/brf.c b/iconvdata/brf.c index a516f40bc3..c2a57c0c6b 100644 --- a/iconvdata/brf.c +++ b/iconvdata/brf.c @@ -1,5 +1,5 @@ /* Conversion from and to BRF. - Copyright (C) 2006-2019 Free Software Foundation, Inc. + Copyright (C) 2006-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Samuel Thibault , 2006. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/bug-iconv10.c b/iconvdata/bug-iconv10.c index ec613927ea..bf3760b5d1 100644 --- a/iconvdata/bug-iconv10.c +++ b/iconvdata/bug-iconv10.c @@ -1,5 +1,5 @@ /* bug 17197: check that iconv doesn't emit invalid extra shift character - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/bug-iconv11.c b/iconvdata/bug-iconv11.c index 9b8b9afa9e..9cac92500f 100644 --- a/iconvdata/bug-iconv11.c +++ b/iconvdata/bug-iconv11.c @@ -1,7 +1,7 @@ /* bug 19432: iconv rejects redundant escape sequences in IBM903, IBM905, IBM907, and IBM909 - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/bug-iconv12.c b/iconvdata/bug-iconv12.c index 70ff634309..37854f5ab9 100644 --- a/iconvdata/bug-iconv12.c +++ b/iconvdata/bug-iconv12.c @@ -1,5 +1,5 @@ /* bug 19727: Testing UTF conversions with UTF16 surrogates as input. - Copyright (C) 2016-2019 Free Software Foundation, Inc. + Copyright (C) 2016-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/bug-iconv3.c b/iconvdata/bug-iconv3.c index 62a229a733..8c3fd68290 100644 --- a/iconvdata/bug-iconv3.c +++ b/iconvdata/bug-iconv3.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2019 Free Software Foundation, Inc. +/* Copyright (C) 2003-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2003. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/cns11643.c b/iconvdata/cns11643.c index f4b5de954f..c7433fedee 100644 --- a/iconvdata/cns11643.c +++ b/iconvdata/cns11643.c @@ -1,5 +1,5 @@ /* Mapping tables for CNS 11643, planes 2 to 7 handling. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cns11643.h b/iconvdata/cns11643.h index c7b5ccc94d..fbf2efbd69 100644 --- a/iconvdata/cns11643.h +++ b/iconvdata/cns11643.h @@ -1,5 +1,5 @@ /* Access functions for CNS 11643 handling. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cns11643l1.c b/iconvdata/cns11643l1.c index 6b31779b2c..0dbf1abfcf 100644 --- a/iconvdata/cns11643l1.c +++ b/iconvdata/cns11643l1.c @@ -1,5 +1,5 @@ /* Mapping tables for CNS 11643, plane 1 handling. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cns11643l1.h b/iconvdata/cns11643l1.h index 20b8c4cd22..37dd3c3845 100644 --- a/iconvdata/cns11643l1.h +++ b/iconvdata/cns11643l1.h @@ -1,5 +1,5 @@ /* Access functions for CNS 11643, plane 1 handling. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/cns11643l2.h b/iconvdata/cns11643l2.h index f6edafea7a..655d55d6e5 100644 --- a/iconvdata/cns11643l2.h +++ b/iconvdata/cns11643l2.h @@ -1,5 +1,5 @@ /* Access functions for CNS 11643, plane 2 handling. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/cp10007.c b/iconvdata/cp10007.c index dab7eb59ab..1284a0449c 100644 --- a/iconvdata/cp10007.c +++ b/iconvdata/cp10007.c @@ -1,5 +1,5 @@ /* Conversion from and to CP10007 (MS MacCyrillic). - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cp1125.c b/iconvdata/cp1125.c index 7d2fa85654..51d3a83e5c 100644 --- a/iconvdata/cp1125.c +++ b/iconvdata/cp1125.c @@ -1,5 +1,5 @@ /* Conversion from and to CP1125. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cp1250.c b/iconvdata/cp1250.c index 4185e99bf4..29aa11d17c 100644 --- a/iconvdata/cp1250.c +++ b/iconvdata/cp1250.c @@ -1,5 +1,5 @@ /* Conversion from and to CP1250. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cp1251.c b/iconvdata/cp1251.c index 480afc99f0..d5bce7c709 100644 --- a/iconvdata/cp1251.c +++ b/iconvdata/cp1251.c @@ -1,5 +1,5 @@ /* Conversion from and to CP1251. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cp1252.c b/iconvdata/cp1252.c index 51e279f95f..3931c86149 100644 --- a/iconvdata/cp1252.c +++ b/iconvdata/cp1252.c @@ -1,5 +1,5 @@ /* Conversion from and to CP1252. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cp1253.c b/iconvdata/cp1253.c index 89a733ec29..f9924079e7 100644 --- a/iconvdata/cp1253.c +++ b/iconvdata/cp1253.c @@ -1,5 +1,5 @@ /* Conversion from and to CP1253. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cp1254.c b/iconvdata/cp1254.c index f7f5439abd..056fe114d4 100644 --- a/iconvdata/cp1254.c +++ b/iconvdata/cp1254.c @@ -1,5 +1,5 @@ /* Conversion from and to CP1254. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cp1255.c b/iconvdata/cp1255.c index 6b5a544254..50daa06206 100644 --- a/iconvdata/cp1255.c +++ b/iconvdata/cp1255.c @@ -1,5 +1,5 @@ /* Conversion from and to CP1255. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998, and Bruno Haible , 2001. @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/cp1256.c b/iconvdata/cp1256.c index 01714786b2..8a2f507982 100644 --- a/iconvdata/cp1256.c +++ b/iconvdata/cp1256.c @@ -1,5 +1,5 @@ /* Conversion from and to CP1256. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cp1257.c b/iconvdata/cp1257.c index 56b997ae89..9d7182e0ca 100644 --- a/iconvdata/cp1257.c +++ b/iconvdata/cp1257.c @@ -1,5 +1,5 @@ /* Conversion from and to CP1257. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cp1258.c b/iconvdata/cp1258.c index 975dc27ce9..7c07184c88 100644 --- a/iconvdata/cp1258.c +++ b/iconvdata/cp1258.c @@ -1,5 +1,5 @@ /* Conversion from and to CP1258. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998, and Bruno Haible , 2001. @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/cp737.c b/iconvdata/cp737.c index ea50699dba..525d35fb61 100644 --- a/iconvdata/cp737.c +++ b/iconvdata/cp737.c @@ -1,5 +1,5 @@ /* Conversion from and to CP737. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cp737.h b/iconvdata/cp737.h index 4523dd1f6d..0b08d6f62c 100644 --- a/iconvdata/cp737.h +++ b/iconvdata/cp737.h @@ -1,5 +1,5 @@ /* Mapping table for CP737. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cp770.c b/iconvdata/cp770.c index 2631c771ea..dddd27c967 100644 --- a/iconvdata/cp770.c +++ b/iconvdata/cp770.c @@ -1,5 +1,5 @@ /* Conversion from and to CP770. - Copyright (C) 2011-2019 Free Software Foundation, Inc. + Copyright (C) 2011-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cp771.c b/iconvdata/cp771.c index 52b0c99b40..84b4878d57 100644 --- a/iconvdata/cp771.c +++ b/iconvdata/cp771.c @@ -1,5 +1,5 @@ /* Conversion from and to CP771. - Copyright (C) 2011-2019 Free Software Foundation, Inc. + Copyright (C) 2011-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cp772.c b/iconvdata/cp772.c index 6ff9977535..ff69f6d8a4 100644 --- a/iconvdata/cp772.c +++ b/iconvdata/cp772.c @@ -1,5 +1,5 @@ /* Conversion from and to CP772. - Copyright (C) 2011-2019 Free Software Foundation, Inc. + Copyright (C) 2011-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cp773.c b/iconvdata/cp773.c index f4c816b9da..bf9ec7bd25 100644 --- a/iconvdata/cp773.c +++ b/iconvdata/cp773.c @@ -1,5 +1,5 @@ /* Conversion from and to CP773. - Copyright (C) 2011-2019 Free Software Foundation, Inc. + Copyright (C) 2011-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cp774.c b/iconvdata/cp774.c index a9b37fa9e5..228edd9872 100644 --- a/iconvdata/cp774.c +++ b/iconvdata/cp774.c @@ -1,5 +1,5 @@ /* Conversion from and to CP774. - Copyright (C) 2011-2019 Free Software Foundation, Inc. + Copyright (C) 2011-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2011. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cp775.c b/iconvdata/cp775.c index 6b7704cd7c..9347e754e4 100644 --- a/iconvdata/cp775.c +++ b/iconvdata/cp775.c @@ -1,5 +1,5 @@ /* Conversion from and to CP775. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cp775.h b/iconvdata/cp775.h index 9743d899fe..ea32e4e928 100644 --- a/iconvdata/cp775.h +++ b/iconvdata/cp775.h @@ -1,5 +1,5 @@ /* Mapping table for CP775. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cp932.c b/iconvdata/cp932.c index 4b180c3c03..7cb70261bd 100644 --- a/iconvdata/cp932.c +++ b/iconvdata/cp932.c @@ -1,5 +1,5 @@ /* Mapping tables for CP932 handling. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by MORIYAMA Masayuki , 2003. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/csn_369103.c b/iconvdata/csn_369103.c index 1fad6ea9f9..3a951be588 100644 --- a/iconvdata/csn_369103.c +++ b/iconvdata/csn_369103.c @@ -1,5 +1,5 @@ /* Conversion from and to CSN_369103. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/cwi.c b/iconvdata/cwi.c index d1b2f66779..0c33ef9cb4 100644 --- a/iconvdata/cwi.c +++ b/iconvdata/cwi.c @@ -1,5 +1,5 @@ /* Conversion from and to CWI. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/dec-mcs.c b/iconvdata/dec-mcs.c index a05eb641b5..7b65510010 100644 --- a/iconvdata/dec-mcs.c +++ b/iconvdata/dec-mcs.c @@ -1,5 +1,5 @@ /* Conversion from and to DEC-MCS. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ebcdic-at-de-a.c b/iconvdata/ebcdic-at-de-a.c index 9855daba0a..d5c9217390 100644 --- a/iconvdata/ebcdic-at-de-a.c +++ b/iconvdata/ebcdic-at-de-a.c @@ -1,5 +1,5 @@ /* Conversion from and to EBCDIC-AT-DE-A. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ebcdic-at-de.c b/iconvdata/ebcdic-at-de.c index aed419d1f5..b526466031 100644 --- a/iconvdata/ebcdic-at-de.c +++ b/iconvdata/ebcdic-at-de.c @@ -1,5 +1,5 @@ /* Conversion from and to EBCDIC-AT-DE. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ebcdic-ca-fr.c b/iconvdata/ebcdic-ca-fr.c index 5715ff169f..a6aece284a 100644 --- a/iconvdata/ebcdic-ca-fr.c +++ b/iconvdata/ebcdic-ca-fr.c @@ -1,5 +1,5 @@ /* Conversion from and to EBCDIC-CA-FR. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ebcdic-dk-no-a.c b/iconvdata/ebcdic-dk-no-a.c index 61bababc61..3451cbdb3e 100644 --- a/iconvdata/ebcdic-dk-no-a.c +++ b/iconvdata/ebcdic-dk-no-a.c @@ -1,5 +1,5 @@ /* Conversion from and to EBCDIC-DK-NO-A. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ebcdic-dk-no.c b/iconvdata/ebcdic-dk-no.c index b48d6f5e9b..a691e5ac62 100644 --- a/iconvdata/ebcdic-dk-no.c +++ b/iconvdata/ebcdic-dk-no.c @@ -1,5 +1,5 @@ /* Conversion from and to EBCDIC-DK-NO. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ebcdic-es-a.c b/iconvdata/ebcdic-es-a.c index f4708d0e2c..9d4e943c9e 100644 --- a/iconvdata/ebcdic-es-a.c +++ b/iconvdata/ebcdic-es-a.c @@ -1,5 +1,5 @@ /* Conversion from and to EBCDIC-ES-A. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ebcdic-es-s.c b/iconvdata/ebcdic-es-s.c index bfc6910d11..438ca8a76d 100644 --- a/iconvdata/ebcdic-es-s.c +++ b/iconvdata/ebcdic-es-s.c @@ -1,5 +1,5 @@ /* Conversion from and to EBCDIC-ES-S. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ebcdic-es.c b/iconvdata/ebcdic-es.c index 2dbcca49f4..ffb7f7b105 100644 --- a/iconvdata/ebcdic-es.c +++ b/iconvdata/ebcdic-es.c @@ -1,5 +1,5 @@ /* Conversion from and to EBCDIC-ES. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ebcdic-fi-se-a.c b/iconvdata/ebcdic-fi-se-a.c index 51401b85cf..edb1881fbb 100644 --- a/iconvdata/ebcdic-fi-se-a.c +++ b/iconvdata/ebcdic-fi-se-a.c @@ -1,5 +1,5 @@ /* Conversion from and to EBCDIC-FI-SE-A. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ebcdic-fi-se.c b/iconvdata/ebcdic-fi-se.c index 36c3d5c43a..67e3b04b02 100644 --- a/iconvdata/ebcdic-fi-se.c +++ b/iconvdata/ebcdic-fi-se.c @@ -1,5 +1,5 @@ /* Conversion from and to EBCDIC-FI-SE. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ebcdic-fr.c b/iconvdata/ebcdic-fr.c index ed35d8b037..edaedc2cd1 100644 --- a/iconvdata/ebcdic-fr.c +++ b/iconvdata/ebcdic-fr.c @@ -1,5 +1,5 @@ /* Conversion from and to EBCDIC-FR. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ebcdic-is-friss.c b/iconvdata/ebcdic-is-friss.c index 4f67b6935b..6f07e881e6 100644 --- a/iconvdata/ebcdic-is-friss.c +++ b/iconvdata/ebcdic-is-friss.c @@ -1,5 +1,5 @@ /* Conversion from and to EBCDIC-IS-FRISS. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ebcdic-it.c b/iconvdata/ebcdic-it.c index d72cef26a4..c0e0dd378d 100644 --- a/iconvdata/ebcdic-it.c +++ b/iconvdata/ebcdic-it.c @@ -1,5 +1,5 @@ /* Conversion from and to EBCDIC-IT. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ebcdic-pt.c b/iconvdata/ebcdic-pt.c index 93794470d6..915dfd1666 100644 --- a/iconvdata/ebcdic-pt.c +++ b/iconvdata/ebcdic-pt.c @@ -1,5 +1,5 @@ /* Conversion from and to EBCDIC-PT. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ebcdic-uk.c b/iconvdata/ebcdic-uk.c index c7757b58a3..6c8610e06c 100644 --- a/iconvdata/ebcdic-uk.c +++ b/iconvdata/ebcdic-uk.c @@ -1,5 +1,5 @@ /* Conversion from and to EBCDIC-UK. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ebcdic-us.c b/iconvdata/ebcdic-us.c index 3f23b6a95d..f79bf727d5 100644 --- a/iconvdata/ebcdic-us.c +++ b/iconvdata/ebcdic-us.c @@ -1,5 +1,5 @@ /* Conversion from and to EBCDIC-US. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ecma-cyrillic.c b/iconvdata/ecma-cyrillic.c index 87964d26e6..86f9b7c8cc 100644 --- a/iconvdata/ecma-cyrillic.c +++ b/iconvdata/ecma-cyrillic.c @@ -1,5 +1,5 @@ /* Conversion from and to ECMA-CYRILLIC. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/euc-cn.c b/iconvdata/euc-cn.c index 44e997ece8..52e8c868ac 100644 --- a/iconvdata/euc-cn.c +++ b/iconvdata/euc-cn.c @@ -1,5 +1,5 @@ /* Mapping tables for EUC-CN handling. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/euc-jisx0213.c b/iconvdata/euc-jisx0213.c index da2d5cf380..50dc44f0fa 100644 --- a/iconvdata/euc-jisx0213.c +++ b/iconvdata/euc-jisx0213.c @@ -1,5 +1,5 @@ /* Conversion from and to EUC-JISX0213. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Bruno Haible , 2002. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/euc-jp-ms.c b/iconvdata/euc-jp-ms.c index 68c9614b19..6aa059ad8a 100644 --- a/iconvdata/euc-jp-ms.c +++ b/iconvdata/euc-jp-ms.c @@ -1,5 +1,5 @@ /* Mapping tables for EUCJP-MS handling. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by MORIYAMA Masayuki , 2003. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/euc-jp.c b/iconvdata/euc-jp.c index 65ced85045..4905587729 100644 --- a/iconvdata/euc-jp.c +++ b/iconvdata/euc-jp.c @@ -1,5 +1,5 @@ /* Mapping tables for EUC-JP handling. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/euc-kr.c b/iconvdata/euc-kr.c index 1f4f8190a3..b0d56cf3ee 100644 --- a/iconvdata/euc-kr.c +++ b/iconvdata/euc-kr.c @@ -1,5 +1,5 @@ /* Mapping tables for EUC-KR handling. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jungshik Shin and Ulrich Drepper , 1998. @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/euc-tw.c b/iconvdata/euc-tw.c index c098ea4310..85b791da91 100644 --- a/iconvdata/euc-tw.c +++ b/iconvdata/euc-tw.c @@ -1,5 +1,5 @@ /* Mapping tables for EUC-TW handling. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/gb18030.c b/iconvdata/gb18030.c index fdf5d994eb..6f2dcb849c 100644 --- a/iconvdata/gb18030.c +++ b/iconvdata/gb18030.c @@ -1,5 +1,5 @@ /* Mapping tables for GBK handling. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Sean Chen , 1999. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* This file is added for supporting gb18030-2000 code. by Wang ShouHua & Wu Jian diff --git a/iconvdata/gb2312.c b/iconvdata/gb2312.c index e1d89b02c4..1dfa1f3237 100644 --- a/iconvdata/gb2312.c +++ b/iconvdata/gb2312.c @@ -1,5 +1,5 @@ /* GB 2312 conversion tables. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/gb2312.h b/iconvdata/gb2312.h index 432466469e..58f927e314 100644 --- a/iconvdata/gb2312.h +++ b/iconvdata/gb2312.h @@ -1,5 +1,5 @@ /* Access functions for GB2312 conversion. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _GB2312_H #define _GB2312_H 1 diff --git a/iconvdata/gbbig5.c b/iconvdata/gbbig5.c index f56039ecdf..7e627a6a0f 100644 --- a/iconvdata/gbbig5.c +++ b/iconvdata/gbbig5.c @@ -1,5 +1,5 @@ /* Mapping tables from GB2312 to BIG5 and vice versa. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1999. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/gbgbk.c b/iconvdata/gbgbk.c index 5985c44013..c281723351 100644 --- a/iconvdata/gbgbk.c +++ b/iconvdata/gbgbk.c @@ -1,5 +1,5 @@ /* Mapping tables from GBK to GB2312 and vice versa. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1999. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/gbk.c b/iconvdata/gbk.c index 3da5fba6e5..a67206d0a3 100644 --- a/iconvdata/gbk.c +++ b/iconvdata/gbk.c @@ -1,5 +1,5 @@ /* Mapping tables for GBK handling. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Sean Chen , 1999. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/gconv-modules b/iconvdata/gconv-modules index 046099dc4c..16d09eb98d 100644 --- a/iconvdata/gconv-modules +++ b/iconvdata/gconv-modules @@ -1,5 +1,5 @@ # GNU libc iconv configuration. -# Copyright (C) 1997-2019 Free Software Foundation, Inc. +# Copyright (C) 1997-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # All lines contain the following information: diff --git a/iconvdata/georgian-academy.c b/iconvdata/georgian-academy.c index 804bf62a4e..f48ca1c85d 100644 --- a/iconvdata/georgian-academy.c +++ b/iconvdata/georgian-academy.c @@ -1,5 +1,5 @@ /* Conversion from and to GEORGIAN-ACADEMY. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/georgian-ps.c b/iconvdata/georgian-ps.c index d3c5dcf6cd..9ed0b1b053 100644 --- a/iconvdata/georgian-ps.c +++ b/iconvdata/georgian-ps.c @@ -1,5 +1,5 @@ /* Conversion from and to GEORGIAN-PS. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/gost_19768-74.c b/iconvdata/gost_19768-74.c index 10805573c8..e6f17f2f42 100644 --- a/iconvdata/gost_19768-74.c +++ b/iconvdata/gost_19768-74.c @@ -1,5 +1,5 @@ /* Conversion from and to GOST_19768-74. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/greek-ccitt.c b/iconvdata/greek-ccitt.c index 81f950a6f1..91dc3f9652 100644 --- a/iconvdata/greek-ccitt.c +++ b/iconvdata/greek-ccitt.c @@ -1,5 +1,5 @@ /* Conversion from and to GREEK-CCITT. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/greek7-old.c b/iconvdata/greek7-old.c index a6bc2cc4e5..511ba68c2c 100644 --- a/iconvdata/greek7-old.c +++ b/iconvdata/greek7-old.c @@ -1,5 +1,5 @@ /* Conversion from and to GREEK7-OLD. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/greek7.c b/iconvdata/greek7.c index 3f157ecf64..1820357a2f 100644 --- a/iconvdata/greek7.c +++ b/iconvdata/greek7.c @@ -1,5 +1,5 @@ /* Conversion from and to GREEK7. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/hp-greek8.c b/iconvdata/hp-greek8.c index 1c6e9ecbca..17b8c8cd7c 100644 --- a/iconvdata/hp-greek8.c +++ b/iconvdata/hp-greek8.c @@ -1,5 +1,5 @@ /* Conversion from and to HP-GREEK8. - Copyright (C) 2007-2019 Free Software Foundation, Inc. + Copyright (C) 2007-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2007. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/hp-roman8.c b/iconvdata/hp-roman8.c index 867992ec77..09ba58ad16 100644 --- a/iconvdata/hp-roman8.c +++ b/iconvdata/hp-roman8.c @@ -1,5 +1,5 @@ /* Conversion from and to HP-ROMAN8. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/hp-roman9.c b/iconvdata/hp-roman9.c index c9514d2072..6e14bf2c2a 100644 --- a/iconvdata/hp-roman9.c +++ b/iconvdata/hp-roman9.c @@ -1,5 +1,5 @@ /* Conversion from and to HP-ROMAN9. - Copyright (C) 2007-2019 Free Software Foundation, Inc. + Copyright (C) 2007-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2007. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/hp-thai8.c b/iconvdata/hp-thai8.c index 8b2fa41248..69531e26a0 100644 --- a/iconvdata/hp-thai8.c +++ b/iconvdata/hp-thai8.c @@ -1,5 +1,5 @@ /* Conversion from and to HP-THAI8. - Copyright (C) 2007-2019 Free Software Foundation, Inc. + Copyright (C) 2007-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2007. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/hp-turkish8.c b/iconvdata/hp-turkish8.c index e4eec73359..5edbf91e16 100644 --- a/iconvdata/hp-turkish8.c +++ b/iconvdata/hp-turkish8.c @@ -1,5 +1,5 @@ /* Conversion from and to HP-TURKISH8. - Copyright (C) 2007-2019 Free Software Foundation, Inc. + Copyright (C) 2007-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2007. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm037.c b/iconvdata/ibm037.c index a34708e9db..4f990ff074 100644 --- a/iconvdata/ibm037.c +++ b/iconvdata/ibm037.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM037. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm038.c b/iconvdata/ibm038.c index de43c854f3..f919c85a35 100644 --- a/iconvdata/ibm038.c +++ b/iconvdata/ibm038.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM038. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1004.c b/iconvdata/ibm1004.c index eab9892a2e..83227e5090 100644 --- a/iconvdata/ibm1004.c +++ b/iconvdata/ibm1004.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1004. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1008.c b/iconvdata/ibm1008.c index 45336eec31..fdecb8d913 100644 --- a/iconvdata/ibm1008.c +++ b/iconvdata/ibm1008.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1008. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1008.h b/iconvdata/ibm1008.h index 99dabf8397..600816308e 100644 --- a/iconvdata/ibm1008.h +++ b/iconvdata/ibm1008.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1008. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1008_420.c b/iconvdata/ibm1008_420.c index 6268da15e3..090fae0f45 100644 --- a/iconvdata/ibm1008_420.c +++ b/iconvdata/ibm1008_420.c @@ -1,5 +1,5 @@ /* Mapping tables from IBM1008 to IBM420 and vice versa. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/ibm1025.c b/iconvdata/ibm1025.c index a5adae60ad..89c8150d6c 100644 --- a/iconvdata/ibm1025.c +++ b/iconvdata/ibm1025.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1025. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jiro SEKIBA , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1025.h b/iconvdata/ibm1025.h index e63172c8c1..704147cc9c 100644 --- a/iconvdata/ibm1025.h +++ b/iconvdata/ibm1025.h @@ -1,5 +1,5 @@ /* Mapping table for IBM1025. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jiro SEKIBA , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1026.c b/iconvdata/ibm1026.c index 6f52be2830..e9c4c4799f 100644 --- a/iconvdata/ibm1026.c +++ b/iconvdata/ibm1026.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1026. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1046.c b/iconvdata/ibm1046.c index 19eb6a51cc..dfff23dada 100644 --- a/iconvdata/ibm1046.c +++ b/iconvdata/ibm1046.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1046. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1046.h b/iconvdata/ibm1046.h index d646de0de7..28ec1a07aa 100644 --- a/iconvdata/ibm1046.h +++ b/iconvdata/ibm1046.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1046. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1047.c b/iconvdata/ibm1047.c index f7d9546d2b..f3f099d005 100644 --- a/iconvdata/ibm1047.c +++ b/iconvdata/ibm1047.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1047. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1097.c b/iconvdata/ibm1097.c index b3863adff7..4f359860dc 100644 --- a/iconvdata/ibm1097.c +++ b/iconvdata/ibm1097.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1097. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1097.h b/iconvdata/ibm1097.h index ef96a5df80..febf54c279 100644 --- a/iconvdata/ibm1097.h +++ b/iconvdata/ibm1097.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1097. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1112.c b/iconvdata/ibm1112.c index 68b63addbd..16e3b011b2 100644 --- a/iconvdata/ibm1112.c +++ b/iconvdata/ibm1112.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1112. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1112.h b/iconvdata/ibm1112.h index 1572546cde..26d754c2aa 100644 --- a/iconvdata/ibm1112.h +++ b/iconvdata/ibm1112.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1112. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1122.c b/iconvdata/ibm1122.c index 075279a360..753e548451 100644 --- a/iconvdata/ibm1122.c +++ b/iconvdata/ibm1122.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1122. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jiro SEKIBA , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1122.h b/iconvdata/ibm1122.h index 89f4246452..ea1d630d1b 100644 --- a/iconvdata/ibm1122.h +++ b/iconvdata/ibm1122.h @@ -1,5 +1,5 @@ /* Mapping table for IBM1122. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jiro SEKIBA , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1123.c b/iconvdata/ibm1123.c index 2a10447853..a6c204148f 100644 --- a/iconvdata/ibm1123.c +++ b/iconvdata/ibm1123.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1123. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1123.h b/iconvdata/ibm1123.h index 4d6dda826f..5341781ba2 100644 --- a/iconvdata/ibm1123.h +++ b/iconvdata/ibm1123.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1123. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1124.c b/iconvdata/ibm1124.c index 72fb6ddf94..7aa9396173 100644 --- a/iconvdata/ibm1124.c +++ b/iconvdata/ibm1124.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1124. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1124.h b/iconvdata/ibm1124.h index 43c82a996d..c83019d61a 100644 --- a/iconvdata/ibm1124.h +++ b/iconvdata/ibm1124.h @@ -1,5 +1,5 @@ /* Conversion from and to IBM1124. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1129.c b/iconvdata/ibm1129.c index f7cea06a51..cb3a2ee48b 100644 --- a/iconvdata/ibm1129.c +++ b/iconvdata/ibm1129.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1129. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1129.h b/iconvdata/ibm1129.h index b737a3d4c9..6d6c1aabb7 100644 --- a/iconvdata/ibm1129.h +++ b/iconvdata/ibm1129.h @@ -1,5 +1,5 @@ /* Conversion from and to IBM1129. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1130.c b/iconvdata/ibm1130.c index 66f647956d..9ae329c982 100644 --- a/iconvdata/ibm1130.c +++ b/iconvdata/ibm1130.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1130. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1130.h b/iconvdata/ibm1130.h index 457da04a4f..840b72bfe9 100644 --- a/iconvdata/ibm1130.h +++ b/iconvdata/ibm1130.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1130. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1132.c b/iconvdata/ibm1132.c index c3050fe7cb..6fa266af43 100644 --- a/iconvdata/ibm1132.c +++ b/iconvdata/ibm1132.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1132. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1132.h b/iconvdata/ibm1132.h index e3fa12c9c2..9fda2ee82b 100644 --- a/iconvdata/ibm1132.h +++ b/iconvdata/ibm1132.h @@ -1,5 +1,5 @@ /* Mapping table for IBM1132. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1133.c b/iconvdata/ibm1133.c index 9394d9f4b7..eba3811600 100644 --- a/iconvdata/ibm1133.c +++ b/iconvdata/ibm1133.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1133. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1133.h b/iconvdata/ibm1133.h index 7078c20e21..94eb47a942 100644 --- a/iconvdata/ibm1133.h +++ b/iconvdata/ibm1133.h @@ -1,5 +1,5 @@ /* Mapping table for IBM1133. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1137.c b/iconvdata/ibm1137.c index 76b7ad0be3..f2f1bb7798 100644 --- a/iconvdata/ibm1137.c +++ b/iconvdata/ibm1137.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1137. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jiro SEKIBA , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1137.h b/iconvdata/ibm1137.h index 6de6b1f98e..1e5358881a 100644 --- a/iconvdata/ibm1137.h +++ b/iconvdata/ibm1137.h @@ -1,5 +1,5 @@ /* Mapping table for IBM1137. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jiro SEKIBA , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1140.c b/iconvdata/ibm1140.c index 77a67af051..ae990e45c9 100644 --- a/iconvdata/ibm1140.c +++ b/iconvdata/ibm1140.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1140. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1140.h b/iconvdata/ibm1140.h index e048440bac..b0c835e0a0 100644 --- a/iconvdata/ibm1140.h +++ b/iconvdata/ibm1140.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1140. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1141.c b/iconvdata/ibm1141.c index 3388c33b73..9701e203df 100644 --- a/iconvdata/ibm1141.c +++ b/iconvdata/ibm1141.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1141. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1141.h b/iconvdata/ibm1141.h index 532864e261..2b5705747d 100644 --- a/iconvdata/ibm1141.h +++ b/iconvdata/ibm1141.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1141. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1142.c b/iconvdata/ibm1142.c index 8e78fb0c65..620d9cc562 100644 --- a/iconvdata/ibm1142.c +++ b/iconvdata/ibm1142.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1142. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1142.h b/iconvdata/ibm1142.h index fc31468707..16946ff942 100644 --- a/iconvdata/ibm1142.h +++ b/iconvdata/ibm1142.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1142. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1143.c b/iconvdata/ibm1143.c index ea9b4f0d30..27b60ed134 100644 --- a/iconvdata/ibm1143.c +++ b/iconvdata/ibm1143.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1143. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1143.h b/iconvdata/ibm1143.h index 9ef3bd45b2..5f0d6c8898 100644 --- a/iconvdata/ibm1143.h +++ b/iconvdata/ibm1143.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1143. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1144.c b/iconvdata/ibm1144.c index 52021c860c..24ec50e084 100644 --- a/iconvdata/ibm1144.c +++ b/iconvdata/ibm1144.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1144. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1144.h b/iconvdata/ibm1144.h index bb460a4442..a1a40331aa 100644 --- a/iconvdata/ibm1144.h +++ b/iconvdata/ibm1144.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1144. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1145.c b/iconvdata/ibm1145.c index 548d89e79e..65b3497594 100644 --- a/iconvdata/ibm1145.c +++ b/iconvdata/ibm1145.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1145. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1145.h b/iconvdata/ibm1145.h index 533c656654..b5b2508846 100644 --- a/iconvdata/ibm1145.h +++ b/iconvdata/ibm1145.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1145. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1146.c b/iconvdata/ibm1146.c index de18e2ab4b..ef7bb5d841 100644 --- a/iconvdata/ibm1146.c +++ b/iconvdata/ibm1146.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1146. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1146.h b/iconvdata/ibm1146.h index ea7fbe941a..249412a7c5 100644 --- a/iconvdata/ibm1146.h +++ b/iconvdata/ibm1146.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1146. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1147.c b/iconvdata/ibm1147.c index 873f36c7bf..588bca0aab 100644 --- a/iconvdata/ibm1147.c +++ b/iconvdata/ibm1147.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1147. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1147.h b/iconvdata/ibm1147.h index fe9bc252af..3b12a67770 100644 --- a/iconvdata/ibm1147.h +++ b/iconvdata/ibm1147.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1147. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1148.c b/iconvdata/ibm1148.c index 3ff2adc1bd..83180ec020 100644 --- a/iconvdata/ibm1148.c +++ b/iconvdata/ibm1148.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1148. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1148.h b/iconvdata/ibm1148.h index ffbea29f42..9488b04a9d 100644 --- a/iconvdata/ibm1148.h +++ b/iconvdata/ibm1148.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1148. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1149.c b/iconvdata/ibm1149.c index bd33388d19..7a754e3797 100644 --- a/iconvdata/ibm1149.c +++ b/iconvdata/ibm1149.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1149. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1149.h b/iconvdata/ibm1149.h index adfb1f9bc9..35e3081c72 100644 --- a/iconvdata/ibm1149.h +++ b/iconvdata/ibm1149.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1149. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1153.c b/iconvdata/ibm1153.c index c863149bf3..d765eb93ba 100644 --- a/iconvdata/ibm1153.c +++ b/iconvdata/ibm1153.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1153. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jiro SEKIBA , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1153.h b/iconvdata/ibm1153.h index 2e49e0b499..2ebd547cf4 100644 --- a/iconvdata/ibm1153.h +++ b/iconvdata/ibm1153.h @@ -1,5 +1,5 @@ /* Mapping table for IBM1153. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jiro SEKIBA , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1154.c b/iconvdata/ibm1154.c index fceae11bbf..6d9f95227b 100644 --- a/iconvdata/ibm1154.c +++ b/iconvdata/ibm1154.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1154. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jiro SEKIBA , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1154.h b/iconvdata/ibm1154.h index f5686406b3..c02042bd1e 100644 --- a/iconvdata/ibm1154.h +++ b/iconvdata/ibm1154.h @@ -1,5 +1,5 @@ /* Mapping table for IBM1154. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jiro SEKIBA , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1155.c b/iconvdata/ibm1155.c index 20ef405601..e0ada6505b 100644 --- a/iconvdata/ibm1155.c +++ b/iconvdata/ibm1155.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1155. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jiro SEKIBA , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1155.h b/iconvdata/ibm1155.h index cb09a17ded..baa9f9b510 100644 --- a/iconvdata/ibm1155.h +++ b/iconvdata/ibm1155.h @@ -1,5 +1,5 @@ /* Mapping table for IBM1155. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jiro SEKIBA , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1156.c b/iconvdata/ibm1156.c index 47cfb76454..1bd510748f 100644 --- a/iconvdata/ibm1156.c +++ b/iconvdata/ibm1156.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1156. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jiro SEKIBA , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1156.h b/iconvdata/ibm1156.h index ffc15ebd87..81635ed2d5 100644 --- a/iconvdata/ibm1156.h +++ b/iconvdata/ibm1156.h @@ -1,5 +1,5 @@ /* Mapping table for IBM1156. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jiro SEKIBA , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1157.c b/iconvdata/ibm1157.c index f87a0d492d..853b9b34df 100644 --- a/iconvdata/ibm1157.c +++ b/iconvdata/ibm1157.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1157. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jiro SEKIBA , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1157.h b/iconvdata/ibm1157.h index b2b557e0a9..b455b87e1e 100644 --- a/iconvdata/ibm1157.h +++ b/iconvdata/ibm1157.h @@ -1,5 +1,5 @@ /* Mapping table for IBM1157. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jiro SEKIBA , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1158.c b/iconvdata/ibm1158.c index 59e368f6f4..4cd96fe5b3 100644 --- a/iconvdata/ibm1158.c +++ b/iconvdata/ibm1158.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1158. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jiro SEKIBA , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1158.h b/iconvdata/ibm1158.h index e1f58900ac..7557805af3 100644 --- a/iconvdata/ibm1158.h +++ b/iconvdata/ibm1158.h @@ -1,5 +1,5 @@ /* Mapping table for IBM1158. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jiro SEKIBA , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1160.c b/iconvdata/ibm1160.c index 75c7e7aeb3..558f0262c0 100644 --- a/iconvdata/ibm1160.c +++ b/iconvdata/ibm1160.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1160. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1160.h b/iconvdata/ibm1160.h index 2aeb21ef06..3b2715363c 100644 --- a/iconvdata/ibm1160.h +++ b/iconvdata/ibm1160.h @@ -1,5 +1,5 @@ /* Mapping table for IBM1160. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1161.c b/iconvdata/ibm1161.c index cb4ddf6f7d..98fcad478c 100644 --- a/iconvdata/ibm1161.c +++ b/iconvdata/ibm1161.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1161. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1161.h b/iconvdata/ibm1161.h index 7e3fa02380..59bc0f7f4c 100644 --- a/iconvdata/ibm1161.h +++ b/iconvdata/ibm1161.h @@ -1,5 +1,5 @@ /* Mapping table for IBM1161. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1162.c b/iconvdata/ibm1162.c index 7984ce49b8..264c5008dc 100644 --- a/iconvdata/ibm1162.c +++ b/iconvdata/ibm1162.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1162. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1162.h b/iconvdata/ibm1162.h index 1e163c11d2..4d93c77844 100644 --- a/iconvdata/ibm1162.h +++ b/iconvdata/ibm1162.h @@ -1,5 +1,5 @@ /* Mapping table for IBM1162. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1163.c b/iconvdata/ibm1163.c index 59e067789e..4e00d9792c 100644 --- a/iconvdata/ibm1163.c +++ b/iconvdata/ibm1163.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1163. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1163.h b/iconvdata/ibm1163.h index a4e73aa468..9f7c93a5f9 100644 --- a/iconvdata/ibm1163.h +++ b/iconvdata/ibm1163.h @@ -1,5 +1,5 @@ /* Mapping table for IBM1163. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1164.c b/iconvdata/ibm1164.c index 943a132a08..85fd1a21e7 100644 --- a/iconvdata/ibm1164.c +++ b/iconvdata/ibm1164.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1164. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1164.h b/iconvdata/ibm1164.h index 224a2a45bb..94077e864b 100644 --- a/iconvdata/ibm1164.h +++ b/iconvdata/ibm1164.h @@ -1,5 +1,5 @@ /* Mapping table for IBM1164. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1166.c b/iconvdata/ibm1166.c index a6e5a91090..3782c7bddc 100644 --- a/iconvdata/ibm1166.c +++ b/iconvdata/ibm1166.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1166. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1166.h b/iconvdata/ibm1166.h index 8bd7d0b02e..4188c2d91b 100644 --- a/iconvdata/ibm1166.h +++ b/iconvdata/ibm1166.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1166. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1167.c b/iconvdata/ibm1167.c index 383f0e5be2..f7a1549375 100644 --- a/iconvdata/ibm1167.c +++ b/iconvdata/ibm1167.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1167. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1167.h b/iconvdata/ibm1167.h index 6458cab949..a25656c238 100644 --- a/iconvdata/ibm1167.h +++ b/iconvdata/ibm1167.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1167. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm12712.c b/iconvdata/ibm12712.c index 8f5b9e836f..cde0e19a72 100644 --- a/iconvdata/ibm12712.c +++ b/iconvdata/ibm12712.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM12712. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm12712.h b/iconvdata/ibm12712.h index eeaaf68d60..ecde035c18 100644 --- a/iconvdata/ibm12712.h +++ b/iconvdata/ibm12712.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM12712. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm1364.c b/iconvdata/ibm1364.c index 32ebe5a406..49e7267ab4 100644 --- a/iconvdata/ibm1364.c +++ b/iconvdata/ibm1364.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1364. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/ibm1364.h b/iconvdata/ibm1364.h index 9626b9d273..127eff32d0 100644 --- a/iconvdata/ibm1364.h +++ b/iconvdata/ibm1364.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1364. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _IBM1364_H diff --git a/iconvdata/ibm1371.c b/iconvdata/ibm1371.c index 8eb17f3488..7daab361b3 100644 --- a/iconvdata/ibm1371.c +++ b/iconvdata/ibm1371.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1371. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define DATA_HEADER "ibm1371.h" #define CHARSET_NAME "IBM1371//" diff --git a/iconvdata/ibm1371.h b/iconvdata/ibm1371.h index c0c9fff323..b90e944825 100644 --- a/iconvdata/ibm1371.h +++ b/iconvdata/ibm1371.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1371. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _IBM1371_H diff --git a/iconvdata/ibm1388.c b/iconvdata/ibm1388.c index fbca7cda16..69a5e706ae 100644 --- a/iconvdata/ibm1388.c +++ b/iconvdata/ibm1388.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1388. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define DATA_HEADER "ibm1388.h" #define CHARSET_NAME "IBM1388//" diff --git a/iconvdata/ibm1388.h b/iconvdata/ibm1388.h index f6e38be6de..f934022c8b 100644 --- a/iconvdata/ibm1388.h +++ b/iconvdata/ibm1388.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1388. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _IBM1388_H diff --git a/iconvdata/ibm1390.c b/iconvdata/ibm1390.c index f8cfe6b349..094eabbc75 100644 --- a/iconvdata/ibm1390.c +++ b/iconvdata/ibm1390.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1390. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define DATA_HEADER "ibm1390.h" #define CHARSET_NAME "IBM1390//" diff --git a/iconvdata/ibm1390.h b/iconvdata/ibm1390.h index f8d366b06e..a4ac3bf3d0 100644 --- a/iconvdata/ibm1390.h +++ b/iconvdata/ibm1390.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1390. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _IBM1390_H #define _IBM1390_H 1 diff --git a/iconvdata/ibm1399.c b/iconvdata/ibm1399.c index e3a3d78573..89fa492a79 100644 --- a/iconvdata/ibm1399.c +++ b/iconvdata/ibm1399.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM1399. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #define DATA_HEADER "ibm1399.h" #define CHARSET_NAME "IBM1399//" diff --git a/iconvdata/ibm1399.h b/iconvdata/ibm1399.h index b78f03e6c7..a75761441a 100644 --- a/iconvdata/ibm1399.h +++ b/iconvdata/ibm1399.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM1399. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _IBM1399_H #define _IBM1399_H 1 diff --git a/iconvdata/ibm16804.c b/iconvdata/ibm16804.c index da3855ba5f..1cc3f74444 100644 --- a/iconvdata/ibm16804.c +++ b/iconvdata/ibm16804.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM16804. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm16804.h b/iconvdata/ibm16804.h index 2065f9d62d..246d0c2ce1 100644 --- a/iconvdata/ibm16804.h +++ b/iconvdata/ibm16804.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM16804. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm256.c b/iconvdata/ibm256.c index 458089f426..38d7377d7c 100644 --- a/iconvdata/ibm256.c +++ b/iconvdata/ibm256.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM256. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm273.c b/iconvdata/ibm273.c index 3fc33d8df0..3a35048bea 100644 --- a/iconvdata/ibm273.c +++ b/iconvdata/ibm273.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM273. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm274.c b/iconvdata/ibm274.c index d8c5dad6e3..2d8c3a17a4 100644 --- a/iconvdata/ibm274.c +++ b/iconvdata/ibm274.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM274. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm275.c b/iconvdata/ibm275.c index 48c78f2405..99b5c30e2f 100644 --- a/iconvdata/ibm275.c +++ b/iconvdata/ibm275.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM275. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm277.c b/iconvdata/ibm277.c index aaaf93196b..c3f50b16c8 100644 --- a/iconvdata/ibm277.c +++ b/iconvdata/ibm277.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM277. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm278.c b/iconvdata/ibm278.c index 7ca3d4b3d0..a96a872710 100644 --- a/iconvdata/ibm278.c +++ b/iconvdata/ibm278.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM278. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm280.c b/iconvdata/ibm280.c index 42ef79ebe8..644ce864ab 100644 --- a/iconvdata/ibm280.c +++ b/iconvdata/ibm280.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM280. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm281.c b/iconvdata/ibm281.c index 21adadedf5..188c8c6c80 100644 --- a/iconvdata/ibm281.c +++ b/iconvdata/ibm281.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM281. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm284.c b/iconvdata/ibm284.c index a84c28b28c..646a2a0484 100644 --- a/iconvdata/ibm284.c +++ b/iconvdata/ibm284.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM284. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm285.c b/iconvdata/ibm285.c index 59da624de3..0eea69d308 100644 --- a/iconvdata/ibm285.c +++ b/iconvdata/ibm285.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM285. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm290.c b/iconvdata/ibm290.c index 6fe7bd79f2..b0b7e508b4 100644 --- a/iconvdata/ibm290.c +++ b/iconvdata/ibm290.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM290. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm297.c b/iconvdata/ibm297.c index 07539f4bdf..29e4d3100b 100644 --- a/iconvdata/ibm297.c +++ b/iconvdata/ibm297.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM297. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm420.c b/iconvdata/ibm420.c index ad00f128df..8245075b06 100644 --- a/iconvdata/ibm420.c +++ b/iconvdata/ibm420.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM420. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm423.c b/iconvdata/ibm423.c index 15dd211248..c0a199e765 100644 --- a/iconvdata/ibm423.c +++ b/iconvdata/ibm423.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM423. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm424.c b/iconvdata/ibm424.c index ee008258b1..469e41cd09 100644 --- a/iconvdata/ibm424.c +++ b/iconvdata/ibm424.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM424. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm437.c b/iconvdata/ibm437.c index 4e27b31bb6..d9d62e31dd 100644 --- a/iconvdata/ibm437.c +++ b/iconvdata/ibm437.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM437. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm4517.c b/iconvdata/ibm4517.c index b17aa43cf9..4a24843859 100644 --- a/iconvdata/ibm4517.c +++ b/iconvdata/ibm4517.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM4517. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm4517.h b/iconvdata/ibm4517.h index a69cdc9a0d..2d0e238be3 100644 --- a/iconvdata/ibm4517.h +++ b/iconvdata/ibm4517.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM4517. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm4899.c b/iconvdata/ibm4899.c index 9275a675af..2ab2d6b57c 100644 --- a/iconvdata/ibm4899.c +++ b/iconvdata/ibm4899.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM4899. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm4899.h b/iconvdata/ibm4899.h index 484b148d88..5e95199cd3 100644 --- a/iconvdata/ibm4899.h +++ b/iconvdata/ibm4899.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM4899. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm4909.c b/iconvdata/ibm4909.c index 1305228810..1984853bc1 100644 --- a/iconvdata/ibm4909.c +++ b/iconvdata/ibm4909.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM4909. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm4909.h b/iconvdata/ibm4909.h index 9d9226eda1..9c1404f572 100644 --- a/iconvdata/ibm4909.h +++ b/iconvdata/ibm4909.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM4909. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm4971.c b/iconvdata/ibm4971.c index 1b37a80596..c63f4393db 100644 --- a/iconvdata/ibm4971.c +++ b/iconvdata/ibm4971.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM4971. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm4971.h b/iconvdata/ibm4971.h index 30d6c5ac3f..815ab3c601 100644 --- a/iconvdata/ibm4971.h +++ b/iconvdata/ibm4971.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM4971. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm500.c b/iconvdata/ibm500.c index 83807f341a..8848690beb 100644 --- a/iconvdata/ibm500.c +++ b/iconvdata/ibm500.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM500. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm5347.c b/iconvdata/ibm5347.c index 5c75cfbab6..3b635df2d9 100644 --- a/iconvdata/ibm5347.c +++ b/iconvdata/ibm5347.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM5347. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm5347.h b/iconvdata/ibm5347.h index b65090a7c1..708c4e1f9f 100644 --- a/iconvdata/ibm5347.h +++ b/iconvdata/ibm5347.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM5347. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm803.c b/iconvdata/ibm803.c index 4e48aaf037..c7a4d51933 100644 --- a/iconvdata/ibm803.c +++ b/iconvdata/ibm803.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM803. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm803.h b/iconvdata/ibm803.h index ff83b44fac..af6ce7bd03 100644 --- a/iconvdata/ibm803.h +++ b/iconvdata/ibm803.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM803. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm850.c b/iconvdata/ibm850.c index 61998259d9..c73faeef0c 100644 --- a/iconvdata/ibm850.c +++ b/iconvdata/ibm850.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM850. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm851.c b/iconvdata/ibm851.c index 9cb3c1f557..06e72e92df 100644 --- a/iconvdata/ibm851.c +++ b/iconvdata/ibm851.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM851. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm852.c b/iconvdata/ibm852.c index eb81090f8b..695ed021a8 100644 --- a/iconvdata/ibm852.c +++ b/iconvdata/ibm852.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM852. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm855.c b/iconvdata/ibm855.c index 7d0b21fad9..f6c69bb838 100644 --- a/iconvdata/ibm855.c +++ b/iconvdata/ibm855.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM855. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm856.c b/iconvdata/ibm856.c index ec65d5d984..41130964ea 100644 --- a/iconvdata/ibm856.c +++ b/iconvdata/ibm856.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM856. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm856.h b/iconvdata/ibm856.h index 61b6175537..985b95e092 100644 --- a/iconvdata/ibm856.h +++ b/iconvdata/ibm856.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM856. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm857.c b/iconvdata/ibm857.c index 801f4d6b2a..c06c18047b 100644 --- a/iconvdata/ibm857.c +++ b/iconvdata/ibm857.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM857. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm858.c b/iconvdata/ibm858.c index a78907e408..34ec004105 100644 --- a/iconvdata/ibm858.c +++ b/iconvdata/ibm858.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM858. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm860.c b/iconvdata/ibm860.c index 483e09b2c5..b52e18d74f 100644 --- a/iconvdata/ibm860.c +++ b/iconvdata/ibm860.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM860. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm861.c b/iconvdata/ibm861.c index 8c3439bcfd..df84602a7e 100644 --- a/iconvdata/ibm861.c +++ b/iconvdata/ibm861.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM861. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm862.c b/iconvdata/ibm862.c index b57e9e3106..0d15cc567d 100644 --- a/iconvdata/ibm862.c +++ b/iconvdata/ibm862.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM862. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm863.c b/iconvdata/ibm863.c index 854ca7ff39..6102235ba1 100644 --- a/iconvdata/ibm863.c +++ b/iconvdata/ibm863.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM863. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm864.c b/iconvdata/ibm864.c index 9bb1554381..addfc490c3 100644 --- a/iconvdata/ibm864.c +++ b/iconvdata/ibm864.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM864. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm865.c b/iconvdata/ibm865.c index 73bf730e9d..f686d6f38d 100644 --- a/iconvdata/ibm865.c +++ b/iconvdata/ibm865.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM865. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm866.c b/iconvdata/ibm866.c index 47af25a7ff..c616bb7730 100644 --- a/iconvdata/ibm866.c +++ b/iconvdata/ibm866.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM866. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm866nav.c b/iconvdata/ibm866nav.c index ba8cf201ca..91bd8325c8 100644 --- a/iconvdata/ibm866nav.c +++ b/iconvdata/ibm866nav.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM866NAV. - Copyright (C) 2003-2019 Free Software Foundation, Inc. + Copyright (C) 2003-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2003. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm868.c b/iconvdata/ibm868.c index 698b07ed86..5d3ad080b1 100644 --- a/iconvdata/ibm868.c +++ b/iconvdata/ibm868.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM868. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm869.c b/iconvdata/ibm869.c index 571e72bba9..b3288e5c4f 100644 --- a/iconvdata/ibm869.c +++ b/iconvdata/ibm869.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM869. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm870.c b/iconvdata/ibm870.c index b219a948cf..07fdf97c53 100644 --- a/iconvdata/ibm870.c +++ b/iconvdata/ibm870.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM870. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm871.c b/iconvdata/ibm871.c index ae4d87ebc7..fbcd43e932 100644 --- a/iconvdata/ibm871.c +++ b/iconvdata/ibm871.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM871. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm874.c b/iconvdata/ibm874.c index c845f06168..49412eeb9b 100644 --- a/iconvdata/ibm874.c +++ b/iconvdata/ibm874.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM874. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm875.c b/iconvdata/ibm875.c index 90001c8cc4..d969b33487 100644 --- a/iconvdata/ibm875.c +++ b/iconvdata/ibm875.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM875. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm880.c b/iconvdata/ibm880.c index d1ac924bf8..08835ec731 100644 --- a/iconvdata/ibm880.c +++ b/iconvdata/ibm880.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM880. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm891.c b/iconvdata/ibm891.c index a14bea738b..4064bde02a 100644 --- a/iconvdata/ibm891.c +++ b/iconvdata/ibm891.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM891. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm901.c b/iconvdata/ibm901.c index ce9d2254b4..e68dbc283b 100644 --- a/iconvdata/ibm901.c +++ b/iconvdata/ibm901.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM901. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm901.h b/iconvdata/ibm901.h index 80d6b124e7..c7dc7b0bfe 100644 --- a/iconvdata/ibm901.h +++ b/iconvdata/ibm901.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM901. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm902.c b/iconvdata/ibm902.c index 63e101542f..8759b612ae 100644 --- a/iconvdata/ibm902.c +++ b/iconvdata/ibm902.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM902. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm902.h b/iconvdata/ibm902.h index 4af23d3979..549dee7c2e 100644 --- a/iconvdata/ibm902.h +++ b/iconvdata/ibm902.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM902. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm903.c b/iconvdata/ibm903.c index c6586af84c..2079f8d9aa 100644 --- a/iconvdata/ibm903.c +++ b/iconvdata/ibm903.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM903. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm9030.c b/iconvdata/ibm9030.c index 097ac82b4f..f892b70844 100644 --- a/iconvdata/ibm9030.c +++ b/iconvdata/ibm9030.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM9030. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm9030.h b/iconvdata/ibm9030.h index d9dadca150..c0f02c5385 100644 --- a/iconvdata/ibm9030.h +++ b/iconvdata/ibm9030.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM9030. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm904.c b/iconvdata/ibm904.c index f237d5919b..98fc47506a 100644 --- a/iconvdata/ibm904.c +++ b/iconvdata/ibm904.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM904. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm905.c b/iconvdata/ibm905.c index 22516e6af4..0f9fe6067a 100644 --- a/iconvdata/ibm905.c +++ b/iconvdata/ibm905.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM905. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm9066.c b/iconvdata/ibm9066.c index 4fc4533eb2..0fd7b10063 100644 --- a/iconvdata/ibm9066.c +++ b/iconvdata/ibm9066.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM9066. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm9066.h b/iconvdata/ibm9066.h index 0d80c5e6b0..cd253305bc 100644 --- a/iconvdata/ibm9066.h +++ b/iconvdata/ibm9066.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM9066. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm918.c b/iconvdata/ibm918.c index 1b699ee6fd..7ff286f1d4 100644 --- a/iconvdata/ibm918.c +++ b/iconvdata/ibm918.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM918. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm921.c b/iconvdata/ibm921.c index 55e997f617..819497ed82 100644 --- a/iconvdata/ibm921.c +++ b/iconvdata/ibm921.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM921. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm921.h b/iconvdata/ibm921.h index 27fe0b3310..2696faab62 100644 --- a/iconvdata/ibm921.h +++ b/iconvdata/ibm921.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM921. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm922.c b/iconvdata/ibm922.c index 16f3c53548..3f92a271bf 100644 --- a/iconvdata/ibm922.c +++ b/iconvdata/ibm922.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM922. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm922.h b/iconvdata/ibm922.h index f9e148795f..7173ddf982 100644 --- a/iconvdata/ibm922.h +++ b/iconvdata/ibm922.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM922. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm930.c b/iconvdata/ibm930.c index 85753e5f93..18d655c8ab 100644 --- a/iconvdata/ibm930.c +++ b/iconvdata/ibm930.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM930. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* IBM930 is designed for the representation of Japanese Katakana/Kanji using a stateful EBCDIC encoding scheme. It is also known as diff --git a/iconvdata/ibm930.h b/iconvdata/ibm930.h index 6fc3ffb937..7d7632f8e3 100644 --- a/iconvdata/ibm930.h +++ b/iconvdata/ibm930.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM930. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _IBM930_H #define _IBM930_H 1 diff --git a/iconvdata/ibm932.c b/iconvdata/ibm932.c index e7d87b5ddb..525f8018d2 100644 --- a/iconvdata/ibm932.c +++ b/iconvdata/ibm932.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM932. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/ibm932.h b/iconvdata/ibm932.h index f23d4ac5ec..701cd83a5e 100644 --- a/iconvdata/ibm932.h +++ b/iconvdata/ibm932.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM932. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _IBM932_H #define _IBM932_H 1 diff --git a/iconvdata/ibm933.c b/iconvdata/ibm933.c index b62261ffab..839e6b8520 100644 --- a/iconvdata/ibm933.c +++ b/iconvdata/ibm933.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM933. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* IBM933 is designed for the representation of Korean using a stateful EBCDIC encoding scheme. It is also known as CCSID 933 or CP933. See: diff --git a/iconvdata/ibm933.h b/iconvdata/ibm933.h index 0b933f094f..ce60828916 100644 --- a/iconvdata/ibm933.h +++ b/iconvdata/ibm933.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM933. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _IBM933_H #define _IBM933_H 1 diff --git a/iconvdata/ibm935.c b/iconvdata/ibm935.c index 251503275c..2bc95fa4f6 100644 --- a/iconvdata/ibm935.c +++ b/iconvdata/ibm935.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM935 - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* IBM935 is designed for the representation of Simplified Chinese using a stateful EBCDIC encoding scheme. It is also known as diff --git a/iconvdata/ibm935.h b/iconvdata/ibm935.h index a668a83d63..f53bb17c63 100644 --- a/iconvdata/ibm935.h +++ b/iconvdata/ibm935.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM935 - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _IBM935_H #define _IBM935_H 1 diff --git a/iconvdata/ibm937.c b/iconvdata/ibm937.c index f5f7c41230..16470aae34 100644 --- a/iconvdata/ibm937.c +++ b/iconvdata/ibm937.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM937. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* IBM937 is designed for the representation of Traditional Chinese using a stateful EBCDIC encoding scheme. It is also known as diff --git a/iconvdata/ibm937.h b/iconvdata/ibm937.h index 521450380d..93a925582c 100644 --- a/iconvdata/ibm937.h +++ b/iconvdata/ibm937.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM937. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _IBM937_H #define _IBM937_H 1 diff --git a/iconvdata/ibm939.c b/iconvdata/ibm939.c index 4049380804..94c2b0144c 100644 --- a/iconvdata/ibm939.c +++ b/iconvdata/ibm939.c @@ -1,5 +1,5 @@ /* Conversion to and from IBM939. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* IBM939 is designed for the representation of Japanese Latin/Kanji using a stateful EBCDIC encoding scheme. It is also known as diff --git a/iconvdata/ibm939.h b/iconvdata/ibm939.h index 665cd927c4..1304057443 100644 --- a/iconvdata/ibm939.h +++ b/iconvdata/ibm939.h @@ -1,5 +1,5 @@ /* Tables for conversion to and from IBM939. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _IBM939_H #define _IBM939_H 1 diff --git a/iconvdata/ibm943.c b/iconvdata/ibm943.c index f30c39fe80..b6d35f1624 100644 --- a/iconvdata/ibm943.c +++ b/iconvdata/ibm943.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM943. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/ibm943.h b/iconvdata/ibm943.h index ddba42f68d..0393af71bf 100644 --- a/iconvdata/ibm943.h +++ b/iconvdata/ibm943.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM943. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _IBM943_H #define _IBM943_H 1 diff --git a/iconvdata/ibm9448.c b/iconvdata/ibm9448.c index 99c78ae563..761c3192de 100644 --- a/iconvdata/ibm9448.c +++ b/iconvdata/ibm9448.c @@ -1,5 +1,5 @@ /* Conversion from and to IBM9448. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ibm9448.h b/iconvdata/ibm9448.h index b47b004002..95f8f1f654 100644 --- a/iconvdata/ibm9448.h +++ b/iconvdata/ibm9448.h @@ -1,5 +1,5 @@ /* Tables for conversion from and to IBM9448. - Copyright (C) 2005-2019 Free Software Foundation, Inc. + Copyright (C) 2005-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Masahide Washizawa , 2005. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/iec_p27-1.c b/iconvdata/iec_p27-1.c index aba35f541d..12e8b3bf39 100644 --- a/iconvdata/iec_p27-1.c +++ b/iconvdata/iec_p27-1.c @@ -1,5 +1,5 @@ /* Conversion from and to IEC_P27-1. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/inis-8.c b/iconvdata/inis-8.c index ffb67e422c..8f93f97a1b 100644 --- a/iconvdata/inis-8.c +++ b/iconvdata/inis-8.c @@ -1,5 +1,5 @@ /* Conversion from and to INIS-8. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/inis-cyrillic.c b/iconvdata/inis-cyrillic.c index a64bdf9ae3..e99f83bc18 100644 --- a/iconvdata/inis-cyrillic.c +++ b/iconvdata/inis-cyrillic.c @@ -1,5 +1,5 @@ /* Conversion from and to INIS-CYRILLIC. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/inis.c b/iconvdata/inis.c index 8fad8e1e75..81a888f5b2 100644 --- a/iconvdata/inis.c +++ b/iconvdata/inis.c @@ -1,5 +1,5 @@ /* Conversion from and to INIS. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/isiri-3342.c b/iconvdata/isiri-3342.c index 45368d1c3e..79906860e1 100644 --- a/iconvdata/isiri-3342.c +++ b/iconvdata/isiri-3342.c @@ -1,5 +1,5 @@ /* Conversion from and to ISIRI-3342. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1999. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/iso-2022-cn-ext.c b/iconvdata/iso-2022-cn-ext.c index a20c61616f..947b807421 100644 --- a/iconvdata/iso-2022-cn-ext.c +++ b/iconvdata/iso-2022-cn-ext.c @@ -1,5 +1,5 @@ /* Conversion module for ISO-2022-CN-EXT. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/iso-2022-cn.c b/iconvdata/iso-2022-cn.c index 9661e06d75..652b2bf09c 100644 --- a/iconvdata/iso-2022-cn.c +++ b/iconvdata/iso-2022-cn.c @@ -1,5 +1,5 @@ /* Conversion module for ISO-2022-CN. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1999. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/iso-2022-jp-3.c b/iconvdata/iso-2022-jp-3.c index 69499d6bc9..8c3b7e627e 100644 --- a/iconvdata/iso-2022-jp-3.c +++ b/iconvdata/iso-2022-jp-3.c @@ -1,5 +1,5 @@ /* Conversion module for ISO-2022-JP-3. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998, and Bruno Haible , 2002. @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/iso-2022-jp.c b/iconvdata/iso-2022-jp.c index 2bc17061d4..56f1c8e17b 100644 --- a/iconvdata/iso-2022-jp.c +++ b/iconvdata/iso-2022-jp.c @@ -1,5 +1,5 @@ /* Conversion module for ISO-2022-JP and ISO-2022-JP-2. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/iso-2022-kr.c b/iconvdata/iso-2022-kr.c index 8f5d05e2c0..6d8a18ba5f 100644 --- a/iconvdata/iso-2022-kr.c +++ b/iconvdata/iso-2022-kr.c @@ -1,5 +1,5 @@ /* Conversion module for ISO-2022-KR. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/iso-ir-165.c b/iconvdata/iso-ir-165.c index f20decdc37..bc62f214f3 100644 --- a/iconvdata/iso-ir-165.c +++ b/iconvdata/iso-ir-165.c @@ -1,6 +1,6 @@ /* Tables for conversion to and from ISO-IR-165. converting from UCS using gaps. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2000. @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include "iso-ir-165.h" diff --git a/iconvdata/iso-ir-165.h b/iconvdata/iso-ir-165.h index 68162c2e87..66d2bd36e8 100644 --- a/iconvdata/iso-ir-165.h +++ b/iconvdata/iso-ir-165.h @@ -1,6 +1,6 @@ /* Tables for conversion to and from ISO-IR-165. converting from UCS using gaps. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2000. @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _ISO_IR_165_H #define _ISO_IR_165_H 1 diff --git a/iconvdata/iso-ir-197.c b/iconvdata/iso-ir-197.c index 8606058680..a0751f9344 100644 --- a/iconvdata/iso-ir-197.c +++ b/iconvdata/iso-ir-197.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO-IR-197. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1999. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/iso-ir-209.c b/iconvdata/iso-ir-209.c index 7de6eff152..fde2ca398d 100644 --- a/iconvdata/iso-ir-209.c +++ b/iconvdata/iso-ir-209.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO-IR-209. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/iso646.c b/iconvdata/iso646.c index 6bfabcb9b2..56776944d0 100644 --- a/iconvdata/iso646.c +++ b/iconvdata/iso646.c @@ -1,5 +1,5 @@ /* Conversion to and from the various ISO 646 CCS. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* The implementation of the conversion which can be performed by this module are not very sophisticated and not tuned at all. There are diff --git a/iconvdata/iso8859-1.c b/iconvdata/iso8859-1.c index e537539588..bee896d4b3 100644 --- a/iconvdata/iso8859-1.c +++ b/iconvdata/iso8859-1.c @@ -1,5 +1,5 @@ /* Conversion to and from ISO 8859-1. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/iso8859-10.c b/iconvdata/iso8859-10.c index 30e73e7a96..15072503fe 100644 --- a/iconvdata/iso8859-10.c +++ b/iconvdata/iso8859-10.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO 8859-10. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Get the conversion table. */ #include diff --git a/iconvdata/iso8859-11.c b/iconvdata/iso8859-11.c index db7b4c3e7a..fc7cffaf44 100644 --- a/iconvdata/iso8859-11.c +++ b/iconvdata/iso8859-11.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO 8859-11. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Get the conversion table. */ #include diff --git a/iconvdata/iso8859-13.c b/iconvdata/iso8859-13.c index f9ef0f3399..005277103b 100644 --- a/iconvdata/iso8859-13.c +++ b/iconvdata/iso8859-13.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO 8859-13. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Get the conversion table. */ #include diff --git a/iconvdata/iso8859-14.c b/iconvdata/iso8859-14.c index 5b6a1e90e8..ebdf0fa934 100644 --- a/iconvdata/iso8859-14.c +++ b/iconvdata/iso8859-14.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO 8859-14. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Get the conversion table. */ #include diff --git a/iconvdata/iso8859-15.c b/iconvdata/iso8859-15.c index 7dce4eb9c1..11b63e0228 100644 --- a/iconvdata/iso8859-15.c +++ b/iconvdata/iso8859-15.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO 8859-15. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Get the conversion table. */ #include diff --git a/iconvdata/iso8859-16.c b/iconvdata/iso8859-16.c index 9261fbce6a..d086ea4a18 100644 --- a/iconvdata/iso8859-16.c +++ b/iconvdata/iso8859-16.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO 8859-16. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/iso8859-2.c b/iconvdata/iso8859-2.c index 2eea3d5e36..d403eaa9ba 100644 --- a/iconvdata/iso8859-2.c +++ b/iconvdata/iso8859-2.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO 8859-2. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Get the conversion table. */ #include diff --git a/iconvdata/iso8859-3.c b/iconvdata/iso8859-3.c index 61dc0ded92..fad617b365 100644 --- a/iconvdata/iso8859-3.c +++ b/iconvdata/iso8859-3.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO 8859-3. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Get the conversion table. */ #include diff --git a/iconvdata/iso8859-4.c b/iconvdata/iso8859-4.c index 7e096bbad2..d0efe65de5 100644 --- a/iconvdata/iso8859-4.c +++ b/iconvdata/iso8859-4.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO 8859-4. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Get the conversion table. */ #include diff --git a/iconvdata/iso8859-5.c b/iconvdata/iso8859-5.c index e661aa53ae..93251e7ed8 100644 --- a/iconvdata/iso8859-5.c +++ b/iconvdata/iso8859-5.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO 8859-5. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Get the conversion table. */ #include diff --git a/iconvdata/iso8859-6.c b/iconvdata/iso8859-6.c index 329f41191a..cda359dc80 100644 --- a/iconvdata/iso8859-6.c +++ b/iconvdata/iso8859-6.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO 8859-6. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Get the conversion table. */ #include diff --git a/iconvdata/iso8859-7.c b/iconvdata/iso8859-7.c index be876668a1..b489c82fad 100644 --- a/iconvdata/iso8859-7.c +++ b/iconvdata/iso8859-7.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO 8859-7. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Get the conversion table. */ #include diff --git a/iconvdata/iso8859-8.c b/iconvdata/iso8859-8.c index 8351583d3c..7a3653df44 100644 --- a/iconvdata/iso8859-8.c +++ b/iconvdata/iso8859-8.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO 8859-8. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Get the conversion table. */ #include diff --git a/iconvdata/iso8859-9.c b/iconvdata/iso8859-9.c index c76262d787..a16b088d64 100644 --- a/iconvdata/iso8859-9.c +++ b/iconvdata/iso8859-9.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO 8859-9. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Get the conversion table. */ #include diff --git a/iconvdata/iso8859-9e.c b/iconvdata/iso8859-9e.c index 7feaa7bc89..d28c9932db 100644 --- a/iconvdata/iso8859-9e.c +++ b/iconvdata/iso8859-9e.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO 8859-9E. - Copyright (C) 2007-2019 Free Software Foundation, Inc. + Copyright (C) 2007-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2007. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/iso_10367-box.c b/iconvdata/iso_10367-box.c index 0fdaa6eb51..03a7b3671b 100644 --- a/iconvdata/iso_10367-box.c +++ b/iconvdata/iso_10367-box.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO_10367-BOX. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/iso_11548-1.c b/iconvdata/iso_11548-1.c index b5125dfea3..37446bcc54 100644 --- a/iconvdata/iso_11548-1.c +++ b/iconvdata/iso_11548-1.c @@ -1,5 +1,5 @@ /* Conversion to and from ISO 11548-1. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997, Samuel Thibault , 2005. @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/iso_2033.c b/iconvdata/iso_2033.c index 1df45991bc..376a8bb3e5 100644 --- a/iconvdata/iso_2033.c +++ b/iconvdata/iso_2033.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO_2033-1983. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/iso_5427-ext.c b/iconvdata/iso_5427-ext.c index b7b53efed4..4bb04cb08b 100644 --- a/iconvdata/iso_5427-ext.c +++ b/iconvdata/iso_5427-ext.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO_5427-EXT. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/iso_5427.c b/iconvdata/iso_5427.c index 66dab9a7eb..f4dc756ee4 100644 --- a/iconvdata/iso_5427.c +++ b/iconvdata/iso_5427.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO_5427. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/iso_5428.c b/iconvdata/iso_5428.c index 8264996714..5e204a5291 100644 --- a/iconvdata/iso_5428.c +++ b/iconvdata/iso_5428.c @@ -1,5 +1,5 @@ /* Conversion from and to ISO_5428. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/iso_6937-2.c b/iconvdata/iso_6937-2.c index bd580f89ac..db1c595fd8 100644 --- a/iconvdata/iso_6937-2.c +++ b/iconvdata/iso_6937-2.c @@ -1,5 +1,5 @@ /* Generic conversion to and from ISO 6937-2. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/iso_6937.c b/iconvdata/iso_6937.c index 50f350b637..47f2be7d2f 100644 --- a/iconvdata/iso_6937.c +++ b/iconvdata/iso_6937.c @@ -1,5 +1,5 @@ /* Generic conversion to and from ISO 6937. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/jis0201.c b/iconvdata/jis0201.c index e897a1a79b..83c6525412 100644 --- a/iconvdata/jis0201.c +++ b/iconvdata/jis0201.c @@ -1,5 +1,5 @@ /* Mapping tables for JIS0201 handling. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/jis0201.h b/iconvdata/jis0201.h index 3b98b0220c..044a7cc5fb 100644 --- a/iconvdata/jis0201.h +++ b/iconvdata/jis0201.h @@ -1,5 +1,5 @@ /* Access functions for JISX0201 conversion. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _JIS0201_H #define _JIS0201_H 1 diff --git a/iconvdata/jis0208.c b/iconvdata/jis0208.c index c4251493c6..93bafeebb8 100644 --- a/iconvdata/jis0208.c +++ b/iconvdata/jis0208.c @@ -1,5 +1,5 @@ /* Mapping tables for JIS0208 handling. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/jis0208.h b/iconvdata/jis0208.h index 54f0f9ebb8..1de69fc041 100644 --- a/iconvdata/jis0208.h +++ b/iconvdata/jis0208.h @@ -1,5 +1,5 @@ /* Access functions for JISX0208 conversion. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _JIS0208_H #define _JIS0208_H 1 diff --git a/iconvdata/jis0212.c b/iconvdata/jis0212.c index d378c66c16..c9f637cf89 100644 --- a/iconvdata/jis0212.c +++ b/iconvdata/jis0212.c @@ -1,5 +1,5 @@ /* Mapping tables for JIS0212 handling. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/jis0212.h b/iconvdata/jis0212.h index 0dd2a1277c..d4164d8da9 100644 --- a/iconvdata/jis0212.h +++ b/iconvdata/jis0212.h @@ -1,5 +1,5 @@ /* Access functions for JISX0212 conversion. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _JIS0212_H #define _JIS0212_H 1 diff --git a/iconvdata/jisx0213.c b/iconvdata/jisx0213.c index eaec261751..95797128cb 100644 --- a/iconvdata/jisx0213.c +++ b/iconvdata/jisx0213.c @@ -1,5 +1,5 @@ /* Mapping tables for JISX0213 character set. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Bruno Haible , 2002. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/jisx0213.h b/iconvdata/jisx0213.h index 63c669c3dd..da6b6237cf 100644 --- a/iconvdata/jisx0213.h +++ b/iconvdata/jisx0213.h @@ -1,5 +1,5 @@ /* Functions for JISX0213 conversion. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Bruno Haible , 2002. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _JISX0213_H #define _JISX0213_H 1 diff --git a/iconvdata/johab.c b/iconvdata/johab.c index 99ee78f9b2..fb32bb2c71 100644 --- a/iconvdata/johab.c +++ b/iconvdata/johab.c @@ -1,5 +1,5 @@ /* Mapping tables for JOHAB handling. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jungshik Shin and Ulrich Drepper , 1998. @@ -16,7 +16,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/koi-8.c b/iconvdata/koi-8.c index ab19ea37aa..0af1a81366 100644 --- a/iconvdata/koi-8.c +++ b/iconvdata/koi-8.c @@ -1,5 +1,5 @@ /* Conversion from and to KOI-8. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Get the conversion table. */ #include diff --git a/iconvdata/koi8-r.c b/iconvdata/koi8-r.c index b807fb7be4..c3b1ec7736 100644 --- a/iconvdata/koi8-r.c +++ b/iconvdata/koi8-r.c @@ -1,5 +1,5 @@ /* Conversion from and to KOI8-R. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/koi8-ru.c b/iconvdata/koi8-ru.c index 2d064121bf..5aa721dfc0 100644 --- a/iconvdata/koi8-ru.c +++ b/iconvdata/koi8-ru.c @@ -1,5 +1,5 @@ /* Conversion from and to KOI8-RU. - Copyright (C) 2007-2019 Free Software Foundation, Inc. + Copyright (C) 2007-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 20077. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/koi8-t.c b/iconvdata/koi8-t.c index 38e6a6e2b4..5cc83a6446 100644 --- a/iconvdata/koi8-t.c +++ b/iconvdata/koi8-t.c @@ -1,5 +1,5 @@ /* Conversion from and to KOI8-T. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/koi8-u.c b/iconvdata/koi8-u.c index 77a36e4d20..02e583f2d8 100644 --- a/iconvdata/koi8-u.c +++ b/iconvdata/koi8-u.c @@ -1,5 +1,5 @@ /* Conversion from and to KOI8-U. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1999. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/ksc5601.c b/iconvdata/ksc5601.c index 0e263dd743..b184481ed5 100644 --- a/iconvdata/ksc5601.c +++ b/iconvdata/ksc5601.c @@ -1,5 +1,5 @@ /* Conversion tables for KS C 5601-1992 based encoding conversion. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jungshik Shin , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include "ksc5601.h" diff --git a/iconvdata/ksc5601.h b/iconvdata/ksc5601.h index ea93cc9ed9..d3eb3a4ff8 100644 --- a/iconvdata/ksc5601.h +++ b/iconvdata/ksc5601.h @@ -1,5 +1,5 @@ /* Access functions for KS C 5601-1992 based encoding conversion. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _KSC5601_H #define _KSC5601_H 1 diff --git a/iconvdata/latin-greek-1.c b/iconvdata/latin-greek-1.c index 5e683c8c77..e8bf12e9ec 100644 --- a/iconvdata/latin-greek-1.c +++ b/iconvdata/latin-greek-1.c @@ -1,5 +1,5 @@ /* Conversion from and to LATIN-GREEK-1. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Specify the conversion table. */ #define TABLES diff --git a/iconvdata/latin-greek.c b/iconvdata/latin-greek.c index 5005895a7f..c139c4909a 100644 --- a/iconvdata/latin-greek.c +++ b/iconvdata/latin-greek.c @@ -1,5 +1,5 @@ /* Conversion from and to LATIN-GREEK. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Specify the conversion table. */ #define TABLES diff --git a/iconvdata/mac-centraleurope.c b/iconvdata/mac-centraleurope.c index 0639e720c9..548c16f8dc 100644 --- a/iconvdata/mac-centraleurope.c +++ b/iconvdata/mac-centraleurope.c @@ -1,5 +1,5 @@ /* Conversion from and to MAC-CENTRALEUROPE. - Copyright (C) 2007-2019 Free Software Foundation, Inc. + Copyright (C) 2007-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2007. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/mac-is.c b/iconvdata/mac-is.c index 6c075dad1b..6039c86686 100644 --- a/iconvdata/mac-is.c +++ b/iconvdata/mac-is.c @@ -1,5 +1,5 @@ /* Conversion from and to MAC-IS. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/mac-sami.c b/iconvdata/mac-sami.c index f5abc990f7..601810c673 100644 --- a/iconvdata/mac-sami.c +++ b/iconvdata/mac-sami.c @@ -1,5 +1,5 @@ /* Conversion from and to MAC-SAMI. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/mac-uk.c b/iconvdata/mac-uk.c index a45b073517..66a90146e3 100644 --- a/iconvdata/mac-uk.c +++ b/iconvdata/mac-uk.c @@ -1,5 +1,5 @@ /* Conversion from and to MAC-UK. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/macintosh.c b/iconvdata/macintosh.c index 938c6fddf1..bdcd597f4f 100644 --- a/iconvdata/macintosh.c +++ b/iconvdata/macintosh.c @@ -1,5 +1,5 @@ /* Conversion from and to MACINTOSH. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/mik.c b/iconvdata/mik.c index a55bbd745d..c97007ad73 100644 --- a/iconvdata/mik.c +++ b/iconvdata/mik.c @@ -1,5 +1,5 @@ /* Conversion from and to MIK. - Copyright (C) 2006-2019 Free Software Foundation, Inc. + Copyright (C) 2006-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Alexander Shopov , 2006. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/nats-dano.c b/iconvdata/nats-dano.c index a96219bc25..9e16a9ed7d 100644 --- a/iconvdata/nats-dano.c +++ b/iconvdata/nats-dano.c @@ -1,5 +1,5 @@ /* Conversion from and to NATS-DANO. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/nats-sefi.c b/iconvdata/nats-sefi.c index 712b2ea846..be3e3eabb8 100644 --- a/iconvdata/nats-sefi.c +++ b/iconvdata/nats-sefi.c @@ -1,5 +1,5 @@ /* Conversion from and to NATS-SEFI. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/pt154.c b/iconvdata/pt154.c index a3f3de62cd..53f4a62aa0 100644 --- a/iconvdata/pt154.c +++ b/iconvdata/pt154.c @@ -1,5 +1,5 @@ /* Conversion from and to PT154. - Copyright (C) 2004-2019 Free Software Foundation, Inc. + Copyright (C) 2004-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2004. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/rk1048.c b/iconvdata/rk1048.c index 1c8f5a93fd..89b9cd79c9 100644 --- a/iconvdata/rk1048.c +++ b/iconvdata/rk1048.c @@ -1,5 +1,5 @@ /* Conversion from and to RK1048. - Copyright (C) 2004-2019 Free Software Foundation, Inc. + Copyright (C) 2004-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2004. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/run-iconv-test.sh b/iconvdata/run-iconv-test.sh index 396285fa58..56b6630a6d 100755 --- a/iconvdata/run-iconv-test.sh +++ b/iconvdata/run-iconv-test.sh @@ -1,6 +1,6 @@ #!/bin/sh -f # Run available iconv(1) tests. -# Copyright (C) 1998-2019 Free Software Foundation, Inc. +# Copyright (C) 1998-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # Contributed by Ulrich Drepper , 1998. @@ -16,7 +16,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . set -e diff --git a/iconvdata/sami-ws2.c b/iconvdata/sami-ws2.c index e19fed70cc..d59a53e17a 100644 --- a/iconvdata/sami-ws2.c +++ b/iconvdata/sami-ws2.c @@ -1,5 +1,5 @@ /* Conversion from and to SAMI-WS2. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1999. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/shift_jisx0213.c b/iconvdata/shift_jisx0213.c index a81fec37e6..a2126fbd89 100644 --- a/iconvdata/shift_jisx0213.c +++ b/iconvdata/shift_jisx0213.c @@ -1,5 +1,5 @@ /* Conversion from and to Shift_JISX0213. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Bruno Haible , 2002. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/sjis.c b/iconvdata/sjis.c index 91dffa6fda..b4e55f8cb2 100644 --- a/iconvdata/sjis.c +++ b/iconvdata/sjis.c @@ -1,5 +1,5 @@ /* Mapping tables for SJIS handling. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/t.61.c b/iconvdata/t.61.c index d3fe7d820d..3703bd3cb4 100644 --- a/iconvdata/t.61.c +++ b/iconvdata/t.61.c @@ -1,5 +1,5 @@ /* Generic conversion to and from T.61. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1997. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/tcvn5712-1.c b/iconvdata/tcvn5712-1.c index 77abb0a4b3..0a1e0b3121 100644 --- a/iconvdata/tcvn5712-1.c +++ b/iconvdata/tcvn5712-1.c @@ -1,5 +1,5 @@ /* Conversion to and from TCVN5712-1. - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2001. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/tis-620.c b/iconvdata/tis-620.c index 5c053e9ffc..29dd005aed 100644 --- a/iconvdata/tis-620.c +++ b/iconvdata/tis-620.c @@ -1,5 +1,5 @@ /* Conversion from and to TIS-620. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1999. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/iconvdata/tscii.c b/iconvdata/tscii.c index c8f6d72a67..dca9456dd7 100644 --- a/iconvdata/tscii.c +++ b/iconvdata/tscii.c @@ -1,5 +1,5 @@ /* Conversion from and to TSCII. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Bruno Haible , 2002. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/tst-e2big.c b/iconvdata/tst-e2big.c index 1ce68c6a3b..8bb2b2de85 100644 --- a/iconvdata/tst-e2big.c +++ b/iconvdata/tst-e2big.c @@ -1,5 +1,5 @@ /* Test for a tricky E2BIG situation. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Bruno Haible , 2002. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/tst-loading.c b/iconvdata/tst-loading.c index 021ecafac8..5239ee4d58 100644 --- a/iconvdata/tst-loading.c +++ b/iconvdata/tst-loading.c @@ -1,5 +1,5 @@ /* Tests for loading and unloading of iconv modules. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/tst-table-charmap.sh b/iconvdata/tst-table-charmap.sh index 53582ba00f..c4eae134f1 100755 --- a/iconvdata/tst-table-charmap.sh +++ b/iconvdata/tst-table-charmap.sh @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (C) 2000-2019 Free Software Foundation, Inc. +# Copyright (C) 2000-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # Contributed by Bruno Haible , 2000. # @@ -16,7 +16,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # Converts a glibc format charmap to a simple format .table file. diff --git a/iconvdata/tst-table-from.c b/iconvdata/tst-table-from.c index 65eac3b536..aeed8e140c 100644 --- a/iconvdata/tst-table-from.c +++ b/iconvdata/tst-table-from.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2019 Free Software Foundation, Inc. +/* Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Bruno Haible , 2000. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Create a table from CHARSET to Unicode. This is a good test for CHARSET's iconv() module, in particular the diff --git a/iconvdata/tst-table-to.c b/iconvdata/tst-table-to.c index 39889dec77..3d1ee37520 100644 --- a/iconvdata/tst-table-to.c +++ b/iconvdata/tst-table-to.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000-2019 Free Software Foundation, Inc. +/* Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Bruno Haible , 2000. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Create a table from Unicode to CHARSET. This is a good test for CHARSET's iconv() module, in particular the diff --git a/iconvdata/tst-table.sh b/iconvdata/tst-table.sh index c8bfbc5dd3..ffe683dee5 100755 --- a/iconvdata/tst-table.sh +++ b/iconvdata/tst-table.sh @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (C) 2000-2019 Free Software Foundation, Inc. +# Copyright (C) 2000-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # Contributed by Bruno Haible , 2000. # @@ -16,7 +16,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # Checks that the iconv() implementation (in both directions) for a # stateless encoding agrees with the charmap table. diff --git a/iconvdata/tst-tables.sh b/iconvdata/tst-tables.sh index 5fbf19506e..0360274ae1 100755 --- a/iconvdata/tst-tables.sh +++ b/iconvdata/tst-tables.sh @@ -1,5 +1,5 @@ #!/bin/sh -# Copyright (C) 2000-2019 Free Software Foundation, Inc. +# Copyright (C) 2000-2020 Free Software Foundation, Inc. # This file is part of the GNU C Library. # Contributed by Bruno Haible , 2000. # @@ -16,7 +16,7 @@ # You should have received a copy of the GNU Lesser General Public # License along with the GNU C Library; if not, see -# . +# . # Checks that the iconv() implementation (in both directions) for the # stateless encodings agrees with the corresponding charmap table. diff --git a/iconvdata/uhc.c b/iconvdata/uhc.c index f85ac6d7c7..b6a225978d 100644 --- a/iconvdata/uhc.c +++ b/iconvdata/uhc.c @@ -1,5 +1,5 @@ /* Mapping tables for UHC handling. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jungshik Shin , 1998. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/unicode.c b/iconvdata/unicode.c index 78e511ac08..980b8ee590 100644 --- a/iconvdata/unicode.c +++ b/iconvdata/unicode.c @@ -1,5 +1,5 @@ /* Conversion module for Unicode - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1999. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/utf-16.c b/iconvdata/utf-16.c index f64723fdc3..4642816a03 100644 --- a/iconvdata/utf-16.c +++ b/iconvdata/utf-16.c @@ -1,5 +1,5 @@ /* Conversion module for UTF-16. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1999. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/utf-32.c b/iconvdata/utf-32.c index 34e350c914..d21ad5876c 100644 --- a/iconvdata/utf-32.c +++ b/iconvdata/utf-32.c @@ -1,5 +1,5 @@ /* Conversion module for UTF-32. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include #include diff --git a/iconvdata/utf-7.c b/iconvdata/utf-7.c index b429a67d75..e4ffde18d0 100644 --- a/iconvdata/utf-7.c +++ b/iconvdata/utf-7.c @@ -1,5 +1,5 @@ /* Conversion module for UTF-7. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Bruno Haible , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* UTF-7 is a legacy encoding used for transmitting Unicode within the ASCII character set, used primarily by mail agents. New programs diff --git a/iconvdata/viscii.c b/iconvdata/viscii.c index e44347454f..a816be6b35 100644 --- a/iconvdata/viscii.c +++ b/iconvdata/viscii.c @@ -1,5 +1,5 @@ /* Conversion from and to VISCII. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2000. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #include diff --git a/include/alloc_buffer.h b/include/alloc_buffer.h index 9c469b9e8b..4706a1bca4 100644 --- a/include/alloc_buffer.h +++ b/include/alloc_buffer.h @@ -1,5 +1,5 @@ /* Allocation from a fixed-size buffer. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* Allocation buffers are used to carve out sub-allocations from a larger allocation. Their primary application is in writing NSS diff --git a/include/allocate_once.h b/include/allocate_once.h index bb456ce5f5..c0f918417f 100644 --- a/include/allocate_once.h +++ b/include/allocate_once.h @@ -1,5 +1,5 @@ /* Allocate and initialize an object once, in a thread-safe fashion. - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _ALLOCATE_ONCE_H #define _ALLOCATE_ONCE_H diff --git a/include/array_length.h b/include/array_length.h index db98a69899..6d2ebe89cb 100644 --- a/include/array_length.h +++ b/include/array_length.h @@ -1,5 +1,5 @@ /* The array_length and array_end macros. - Copyright (C) 2017-2019 Free Software Foundation, Inc. + Copyright (C) 2017-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _ARRAY_LENGTH_H #define _ARRAY_LENGTH_H diff --git a/include/atomic.h b/include/atomic.h index ee1978eb3b..818b22b117 100644 --- a/include/atomic.h +++ b/include/atomic.h @@ -1,5 +1,5 @@ /* Internal macros for atomic operations for GNU C Library. - Copyright (C) 2002-2019 Free Software Foundation, Inc. + Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2002. @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _ATOMIC_H #define _ATOMIC_H 1 diff --git a/include/bits/endian.h b/include/bits/endian.h new file mode 100644 index 0000000000..ad614f1c1a --- /dev/null +++ b/include/bits/endian.h @@ -0,0 +1 @@ +#include diff --git a/include/bits/xopen_lim.h b/include/bits/xopen_lim.h index b76a94bd14..957010d2c0 100644 --- a/include/bits/xopen_lim.h +++ b/include/bits/xopen_lim.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2019 Free Software Foundation, Inc. +/* Copyright (C) 1996-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* * Never include this file directly; use instead. diff --git a/include/dirent.h b/include/dirent.h index 3736803bce..2b1cdcf8bd 100644 --- a/include/dirent.h +++ b/include/dirent.h @@ -36,8 +36,7 @@ extern __ssize_t __getdirentries (int __fd, char *__restrict __buf, __off_t *__restrict __basep) __THROW __nonnull ((2, 4)); -/* These functions are only implemented on Linux. The public - interface for getdents64 is declared in . */ +/* These functions are only implemented on Linux. */ extern __ssize_t __getdents (int __fd, void *__buf, size_t __nbytes) attribute_hidden; extern __ssize_t __getdents64 (int __fd, void *__buf, size_t __nbytes); diff --git a/include/dlfcn.h b/include/dlfcn.h index 0dc57dbe22..93dd369ab1 100644 --- a/include/dlfcn.h +++ b/include/dlfcn.h @@ -117,7 +117,7 @@ struct dlfcn_hook int (*dladdr) (const void *address, Dl_info *info); int (*dladdr1) (const void *address, Dl_info *info, void **extra_info, int flags); - int (*dlinfo) (void *handle, int request, void *arg, void *dl_caller); + int (*dlinfo) (void *handle, int request, void *arg); void *(*dlmopen) (Lmid_t nsid, const char *file, int mode, void *dl_caller); void *pad[4]; }; @@ -143,8 +143,7 @@ extern int __dladdr (const void *address, Dl_info *info) extern int __dladdr1 (const void *address, Dl_info *info, void **extra_info, int flags) attribute_hidden; -extern int __dlinfo (void *handle, int request, void *arg DL_CALLER_DECL) - attribute_hidden; +extern int __dlinfo (void *handle, int request, void *arg) attribute_hidden; #ifndef SHARED struct link_map; diff --git a/include/features.h b/include/features.h index e016b3e5c7..b6ff1e9b7b 100644 --- a/include/features.h +++ b/include/features.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _FEATURES_H #define _FEATURES_H 1 @@ -24,6 +24,7 @@ __STRICT_ANSI__ ISO Standard C. _ISOC99_SOURCE Extensions to ISO C89 from ISO C99. _ISOC11_SOURCE Extensions to ISO C99 from ISO C11. + _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X. __STDC_WANT_LIB_EXT2__ Extensions to ISO C99 from TR 27431-2:2010. __STDC_WANT_IEC_60559_BFP_EXT__ @@ -139,6 +140,7 @@ #undef __USE_GNU #undef __USE_FORTIFY_LEVEL #undef __KERNEL_STRICT_NAMES +#undef __GLIBC_USE_ISOC2X #undef __GLIBC_USE_DEPRECATED_GETS #undef __GLIBC_USE_DEPRECATED_SCANF @@ -195,6 +197,8 @@ # define _ISOC99_SOURCE 1 # undef _ISOC11_SOURCE # define _ISOC11_SOURCE 1 +# undef _ISOC2X_SOURCE +# define _ISOC2X_SOURCE 1 # undef _POSIX_SOURCE # define _POSIX_SOURCE 1 # undef _POSIX_C_SOURCE @@ -216,26 +220,37 @@ #if (defined _DEFAULT_SOURCE \ || (!defined __STRICT_ANSI__ \ && !defined _ISOC99_SOURCE && !defined _ISOC11_SOURCE \ + && !defined _ISOC2X_SOURCE \ && !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE \ && !defined _XOPEN_SOURCE)) # undef _DEFAULT_SOURCE # define _DEFAULT_SOURCE 1 #endif +/* This is to enable the ISO C2X extension. */ +#if (defined _ISOC2X_SOURCE \ + || (defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L)) +# define __GLIBC_USE_ISOC2X 1 +#else +# define __GLIBC_USE_ISOC2X 0 +#endif + /* This is to enable the ISO C11 extension. */ -#if (defined _ISOC11_SOURCE \ +#if (defined _ISOC11_SOURCE || defined _ISOC2X_SOURCE \ || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L)) # define __USE_ISOC11 1 #endif /* This is to enable the ISO C99 extension. */ -#if (defined _ISOC99_SOURCE || defined _ISOC11_SOURCE \ +#if (defined _ISOC99_SOURCE || defined _ISOC11_SOURCE \ + || defined _ISOC2X_SOURCE \ || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) # define __USE_ISOC99 1 #endif /* This is to enable the ISO C90 Amendment 1:1995 extension. */ -#if (defined _ISOC99_SOURCE || defined _ISOC11_SOURCE \ +#if (defined _ISOC99_SOURCE || defined _ISOC11_SOURCE \ + || defined _ISOC2X_SOURCE \ || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199409L)) # define __USE_ISOC95 1 #endif @@ -439,7 +454,7 @@ /* Major and minor version number of the GNU C library package. Use these macros to test for features in specific releases. */ #define __GLIBC__ 2 -#define __GLIBC_MINOR__ 29 +#define __GLIBC_MINOR__ 31 #define __GLIBC_PREREQ(maj, min) \ ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min)) diff --git a/include/float.h b/include/float.h index 7e65bb83cb..0f79ed695a 100644 --- a/include/float.h +++ b/include/float.h @@ -4,7 +4,9 @@ #define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION #include -#ifndef _ISOMAC +/* Some tests also define this macro, requiring a check here to avoid + errors for duplicate definitions (see GCC bug 91451). */ +#if !defined _ISOMAC && !defined __STDC_WANT_IEC_60559_TYPES_EXT__ # define __STDC_WANT_IEC_60559_TYPES_EXT__ #endif diff --git a/include/gnu-versions.h b/include/gnu-versions.h index 6db552a700..d2f06f648a 100644 --- a/include/gnu-versions.h +++ b/include/gnu-versions.h @@ -1,5 +1,5 @@ /* Header with interface version macros for library pieces copied elsewhere. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _GNU_VERSIONS_H #define _GNU_VERSIONS_H 1 diff --git a/include/gnu/libc-version.h b/include/gnu/libc-version.h index 0e2e91b6e6..37d9e86dc4 100644 --- a/include/gnu/libc-version.h +++ b/include/gnu/libc-version.h @@ -1,5 +1,5 @@ /* Interface to GNU libc specific functions for version information. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _GNU_LIBC_VERSION_H #define _GNU_LIBC_VERSION_H 1 diff --git a/include/ifunc-impl-list.h b/include/ifunc-impl-list.h index cf35f136e2..5b970f0f0e 100644 --- a/include/ifunc-impl-list.h +++ b/include/ifunc-impl-list.h @@ -1,5 +1,5 @@ /* Internal header file for __libc_supported_implementations. - Copyright (C) 2012-2019 Free Software Foundation, Inc. + Copyright (C) 2012-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _IFUNC_IMPL_LIST_H #define _IFUNC_IMPL_LIST_H 1 diff --git a/include/inline-hashtab.h b/include/inline-hashtab.h index c1b66750f9..d25bb95083 100644 --- a/include/inline-hashtab.h +++ b/include/inline-hashtab.h @@ -1,5 +1,5 @@ /* Fully-inline hash table, used mainly for managing TLS descriptors. - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Alexandre Oliva @@ -20,7 +20,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef INLINE_HASHTAB_H # define INLINE_HASHTAB_H 1 diff --git a/include/intprops.h b/include/intprops.h index 140f6d2a4b..0c379a8c5b 100644 --- a/include/intprops.h +++ b/include/intprops.h @@ -1,6 +1,6 @@ /* intprops.h -- properties of integer types - Copyright (C) 2001-2019 Free Software Foundation, Inc. + Copyright (C) 2001-2020 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published @@ -111,8 +111,8 @@ Subtract 1 for the sign bit if T is signed, and then add 1 more for a minus sign if needed. - Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 0 when its argument is - signed, this macro may overestimate the true bound by one byte when + Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 1 when its argument is + unsigned, this macro may overestimate the true bound by one byte when applied to unsigned types of size 2, 4, 16, ... bytes. */ #define INT_STRLEN_BOUND(t) \ (INT_BITS_STRLEN_BOUND (TYPE_WIDTH (t) - _GL_SIGNED_TYPE_OR_EXPR (t)) \ @@ -220,14 +220,26 @@ ? (a) < (min) >> (b) \ : (max) >> (b) < (a)) -/* True if __builtin_add_overflow (A, B, P) works when P is non-null. */ +/* True if __builtin_add_overflow (A, B, P) and __builtin_sub_overflow + (A, B, P) work when P is non-null. */ #if 5 <= __GNUC__ && !defined __ICC -# define _GL_HAS_BUILTIN_OVERFLOW 1 +# define _GL_HAS_BUILTIN_ADD_OVERFLOW 1 +#elif defined __has_builtin +# define _GL_HAS_BUILTIN_ADD_OVERFLOW __has_builtin (__builtin_add_overflow) #else -# define _GL_HAS_BUILTIN_OVERFLOW 0 +# define _GL_HAS_BUILTIN_ADD_OVERFLOW 0 #endif -/* True if __builtin_add_overflow_p (A, B, C) works. */ +/* True if __builtin_mul_overflow (A, B, P) works when P is non-null. */ +#ifdef __clang__ +/* Work around Clang bug . */ +# define _GL_HAS_BUILTIN_MUL_OVERFLOW 0 +#else +# define _GL_HAS_BUILTIN_MUL_OVERFLOW _GL_HAS_BUILTIN_ADD_OVERFLOW +#endif + +/* True if __builtin_add_overflow_p (A, B, C) works, and similarly for + __builtin_mul_overflow_p and __builtin_mul_overflow_p. */ #define _GL_HAS_BUILTIN_OVERFLOW_P (7 <= __GNUC__) /* The _GL*_OVERFLOW macros have the same restrictions as the @@ -281,7 +293,9 @@ The INT__OVERFLOW macros return 1 if the corresponding C operators might not yield numerically correct answers due to arithmetic overflow. - The INT__WRAPV macros also store the low-order bits of the answer. + The INT__WRAPV macros compute the low-order bits of the sum, + difference, and product of two C integers, and return 1 if these + low-order bits are not numerically correct. These macros work correctly on all known practical hosts, and do not rely on undefined behavior due to signed arithmetic overflow. @@ -309,9 +323,11 @@ arguments should not have side effects. The WRAPV macros are not constant expressions. They support only - +, binary -, and *. The result type must be signed. + +, binary -, and *. Because the WRAPV macros convert the result, + they report overflow in different circumstances than the OVERFLOW + macros do. - These macros are tuned for their last argument being a constant. + These macros are tuned for their last input argument being a constant. Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B, A % B, and A << B would overflow, respectively. */ @@ -347,19 +363,33 @@ /* Store the low-order bits of A + B, A - B, A * B, respectively, into *R. Return 1 if the result overflows. See above for restrictions. */ -#define INT_ADD_WRAPV(a, b, r) \ - _GL_INT_OP_WRAPV (a, b, r, +, __builtin_add_overflow, INT_ADD_OVERFLOW) -#define INT_SUBTRACT_WRAPV(a, b, r) \ - _GL_INT_OP_WRAPV (a, b, r, -, __builtin_sub_overflow, INT_SUBTRACT_OVERFLOW) -#define INT_MULTIPLY_WRAPV(a, b, r) \ - _GL_INT_OP_WRAPV (a, b, r, *, __builtin_mul_overflow, INT_MULTIPLY_OVERFLOW) +#if _GL_HAS_BUILTIN_ADD_OVERFLOW +# define INT_ADD_WRAPV(a, b, r) __builtin_add_overflow (a, b, r) +# define INT_SUBTRACT_WRAPV(a, b, r) __builtin_sub_overflow (a, b, r) +#else +# define INT_ADD_WRAPV(a, b, r) \ + _GL_INT_OP_WRAPV (a, b, r, +, _GL_INT_ADD_RANGE_OVERFLOW) +# define INT_SUBTRACT_WRAPV(a, b, r) \ + _GL_INT_OP_WRAPV (a, b, r, -, _GL_INT_SUBTRACT_RANGE_OVERFLOW) +#endif +#if _GL_HAS_BUILTIN_MUL_OVERFLOW +/* Work around GCC bug 91450. */ +# define INT_MULTIPLY_WRAPV(a, b, r) \ + ((!_GL_SIGNED_TYPE_OR_EXPR (*(r)) && EXPR_SIGNED (a) && EXPR_SIGNED (b) \ + && _GL_INT_MULTIPLY_RANGE_OVERFLOW (a, b, 0, (__typeof__ (*(r))) -1)) \ + ? ((void) __builtin_mul_overflow (a, b, r), 1) \ + : __builtin_mul_overflow (a, b, r)) +#else +# define INT_MULTIPLY_WRAPV(a, b, r) \ + _GL_INT_OP_WRAPV (a, b, r, *, _GL_INT_MULTIPLY_RANGE_OVERFLOW) +#endif /* Nonzero if this compiler has GCC bug 68193 or Clang bug 25390. See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68193 https://llvm.org/bugs/show_bug.cgi?id=25390 For now, assume all versions of GCC-like compilers generate bogus - warnings for _Generic. This matters only for older compilers that - lack __builtin_add_overflow. */ + warnings for _Generic. This matters only for compilers that + lack relevant builtins. */ #if __GNUC__ # define _GL__GENERIC_BOGUS 1 #else @@ -367,53 +397,100 @@ #endif /* Store the low-order bits of A B into *R, where OP specifies - the operation. BUILTIN is the builtin operation, and OVERFLOW the - overflow predicate. Return 1 if the result overflows. See above - for restrictions. */ -#if _GL_HAS_BUILTIN_OVERFLOW -# define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) builtin (a, b, r) -#elif 201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS -# define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) \ + the operation and OVERFLOW the overflow predicate. Return 1 if the + result overflows. See above for restrictions. */ +#if 201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS +# define _GL_INT_OP_WRAPV(a, b, r, op, overflow) \ (_Generic \ (*(r), \ signed char: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ signed char, SCHAR_MIN, SCHAR_MAX), \ + unsigned char: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ + unsigned char, 0, UCHAR_MAX), \ short int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ short int, SHRT_MIN, SHRT_MAX), \ + unsigned short int: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ + unsigned short int, 0, USHRT_MAX), \ int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ int, INT_MIN, INT_MAX), \ + unsigned int: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ + unsigned int, 0, UINT_MAX), \ long int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ long int, LONG_MIN, LONG_MAX), \ + unsigned long int: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ + unsigned long int, 0, ULONG_MAX), \ long long int: \ _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ - long long int, LLONG_MIN, LLONG_MAX))) + long long int, LLONG_MIN, LLONG_MAX), \ + unsigned long long int: \ + _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ + unsigned long long int, 0, ULLONG_MAX))) #else -# define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) \ +/* Store the low-order bits of A B into *R, where OP specifies + the operation and OVERFLOW the overflow predicate. If *R is + signed, its type is ST with bounds SMIN..SMAX; otherwise its type + is UT with bounds U..UMAX. ST and UT are narrower than int. + Return 1 if the result overflows. See above for restrictions. */ +# if _GL_HAVE___TYPEOF__ +# define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \ + (TYPE_SIGNED (__typeof__ (*(r))) \ + ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, st, smin, smax) \ + : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, ut, 0, umax)) +# else +# define _GL_INT_OP_WRAPV_SMALLISH(a,b,r,op,overflow,st,smin,smax,ut,umax) \ + (overflow (a, b, smin, smax) \ + ? (overflow (a, b, 0, umax) \ + ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 1) \ + : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) < 0) \ + : (overflow (a, b, 0, umax) \ + ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st)) >= 0 \ + : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a,b,op,unsigned,st), 0))) +# endif + +# define _GL_INT_OP_WRAPV(a, b, r, op, overflow) \ (sizeof *(r) == sizeof (signed char) \ - ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - signed char, SCHAR_MIN, SCHAR_MAX) \ + ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \ + signed char, SCHAR_MIN, SCHAR_MAX, \ + unsigned char, UCHAR_MAX) \ : sizeof *(r) == sizeof (short int) \ - ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - short int, SHRT_MIN, SHRT_MAX) \ + ? _GL_INT_OP_WRAPV_SMALLISH (a, b, r, op, overflow, \ + short int, SHRT_MIN, SHRT_MAX, \ + unsigned short int, USHRT_MAX) \ : sizeof *(r) == sizeof (int) \ - ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ - int, INT_MIN, INT_MAX) \ + ? (EXPR_SIGNED (*(r)) \ + ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ + int, INT_MIN, INT_MAX) \ + : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \ + unsigned int, 0, UINT_MAX)) \ : _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow)) # ifdef LLONG_MAX # define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \ (sizeof *(r) == sizeof (long int) \ - ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ - long int, LONG_MIN, LONG_MAX) \ - : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ - long long int, LLONG_MIN, LLONG_MAX)) + ? (EXPR_SIGNED (*(r)) \ + ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ + long int, LONG_MIN, LONG_MAX) \ + : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ + unsigned long int, 0, ULONG_MAX)) \ + : (EXPR_SIGNED (*(r)) \ + ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ + long long int, LLONG_MIN, LLONG_MAX) \ + : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \ + unsigned long long int, 0, ULLONG_MAX))) # else # define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \ - _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ - long int, LONG_MIN, LONG_MAX) + (EXPR_SIGNED (*(r)) \ + ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ + long int, LONG_MIN, LONG_MAX) \ + : _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \ + unsigned long int, 0, ULONG_MAX)) # endif #endif @@ -422,13 +499,7 @@ overflow problems. *R's type is T, with extrema TMIN and TMAX. T must be a signed integer type. Return 1 if the result overflows. */ #define _GL_INT_OP_CALC(a, b, r, op, overflow, ut, t, tmin, tmax) \ - (sizeof ((a) op (b)) < sizeof (t) \ - ? _GL_INT_OP_CALC1 ((t) (a), (t) (b), r, op, overflow, ut, t, tmin, tmax) \ - : _GL_INT_OP_CALC1 (a, b, r, op, overflow, ut, t, tmin, tmax)) -#define _GL_INT_OP_CALC1(a, b, r, op, overflow, ut, t, tmin, tmax) \ - ((overflow (a, b) \ - || (EXPR_SIGNED ((a) op (b)) && ((a) op (b)) < (tmin)) \ - || (tmax) < ((a) op (b))) \ + (overflow (a, b, tmin, tmax) \ ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 1) \ : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t), 0)) @@ -452,4 +523,57 @@ #define _GL_INT_OP_WRAPV_VIA_UNSIGNED(a, b, op, ut, t) \ ((t) ((ut) (a) op (ut) (b))) +/* Return true if the numeric values A + B, A - B, A * B fall outside + the range TMIN..TMAX. Arguments should be integer expressions + without side effects. TMIN should be signed and nonpositive. + TMAX should be positive, and should be signed unless TMIN is zero. */ +#define _GL_INT_ADD_RANGE_OVERFLOW(a, b, tmin, tmax) \ + ((b) < 0 \ + ? (((tmin) \ + ? ((EXPR_SIGNED (_GL_INT_CONVERT (a, (tmin) - (b))) || (b) < (tmin)) \ + && (a) < (tmin) - (b)) \ + : (a) <= -1 - (b)) \ + || ((EXPR_SIGNED (a) ? 0 <= (a) : (tmax) < (a)) && (tmax) < (a) + (b))) \ + : (a) < 0 \ + ? (((tmin) \ + ? ((EXPR_SIGNED (_GL_INT_CONVERT (b, (tmin) - (a))) || (a) < (tmin)) \ + && (b) < (tmin) - (a)) \ + : (b) <= -1 - (a)) \ + || ((EXPR_SIGNED (_GL_INT_CONVERT (a, b)) || (tmax) < (b)) \ + && (tmax) < (a) + (b))) \ + : (tmax) < (b) || (tmax) - (b) < (a)) +#define _GL_INT_SUBTRACT_RANGE_OVERFLOW(a, b, tmin, tmax) \ + (((a) < 0) == ((b) < 0) \ + ? ((a) < (b) \ + ? !(tmin) || -1 - (tmin) < (b) - (a) - 1 \ + : (tmax) < (a) - (b)) \ + : (a) < 0 \ + ? ((!EXPR_SIGNED (_GL_INT_CONVERT ((a) - (tmin), b)) && (a) - (tmin) < 0) \ + || (a) - (tmin) < (b)) \ + : ((! (EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \ + && EXPR_SIGNED (_GL_INT_CONVERT ((tmax) + (b), a))) \ + && (tmax) <= -1 - (b)) \ + || (tmax) + (b) < (a))) +#define _GL_INT_MULTIPLY_RANGE_OVERFLOW(a, b, tmin, tmax) \ + ((b) < 0 \ + ? ((a) < 0 \ + ? (EXPR_SIGNED (_GL_INT_CONVERT (tmax, b)) \ + ? (a) < (tmax) / (b) \ + : ((INT_NEGATE_OVERFLOW (b) \ + ? _GL_INT_CONVERT (b, tmax) >> (TYPE_WIDTH (b) - 1) \ + : (tmax) / -(b)) \ + <= -1 - (a))) \ + : INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (b, tmin)) && (b) == -1 \ + ? (EXPR_SIGNED (a) \ + ? 0 < (a) + (tmin) \ + : 0 < (a) && -1 - (tmin) < (a) - 1) \ + : (tmin) / (b) < (a)) \ + : (b) == 0 \ + ? 0 \ + : ((a) < 0 \ + ? (INT_NEGATE_OVERFLOW (_GL_INT_CONVERT (a, tmin)) && (a) == -1 \ + ? (EXPR_SIGNED (b) ? 0 < (b) + (tmin) : -1 - (tmin) < (b) - 1) \ + : (tmin) / (a) < (b)) \ + : (tmax) / (b) < (a))) + #endif /* _GL_INTPROPS_H */ diff --git a/include/libc-diag.h b/include/libc-diag.h index 9e1b32e395..7356bdc264 100644 --- a/include/libc-diag.h +++ b/include/libc-diag.h @@ -1,5 +1,5 @@ /* Macros for controlling diagnostic output from the compiler. - Copyright (C) 2014-2019 Free Software Foundation, Inc. + Copyright (C) 2014-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _LIBC_DIAG_H #define _LIBC_DIAG_H 1 diff --git a/include/libc-internal.h b/include/libc-internal.h index db4d12432c..fcd21468c0 100644 --- a/include/libc-internal.h +++ b/include/libc-internal.h @@ -1,5 +1,5 @@ /* Internal prototype declarations that don't fit anywhere else. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _LIBC_INTERNAL # define _LIBC_INTERNAL 1 diff --git a/include/libc-pointer-arith.h b/include/libc-pointer-arith.h index c5390a9be4..b4d716c727 100644 --- a/include/libc-pointer-arith.h +++ b/include/libc-pointer-arith.h @@ -1,5 +1,5 @@ /* Helper macros for pointer arithmetic. - Copyright (C) 2012-2019 Free Software Foundation, Inc. + Copyright (C) 2012-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _LIBC_POINTER_ARITH_H #define _LIBC_POINTER_ARITH_H 1 diff --git a/include/libc-symbols.h b/include/libc-symbols.h index b68ec4b7f5..685e20fdc0 100644 --- a/include/libc-symbols.h +++ b/include/libc-symbols.h @@ -1,6 +1,6 @@ /* Support macros for making weak and strong aliases for symbols, and for using symbol sets and linker warnings with GNU ld. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _LIBC_SYMBOLS_H #define _LIBC_SYMBOLS_H 1 diff --git a/include/limits.h b/include/limits.h index 08bb5248be..8195da78a4 100644 --- a/include/limits.h +++ b/include/limits.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ /* * ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types @@ -142,7 +142,7 @@ /* The integer width macros are not defined by GCC's before GCC 7, or if _GNU_SOURCE rather than __STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature. */ -#if __GLIBC_USE (IEC_60559_BFP_EXT) +#if __GLIBC_USE (IEC_60559_BFP_EXT_C2X) # ifndef CHAR_WIDTH # define CHAR_WIDTH 8 # endif diff --git a/include/link.h b/include/link.h index 736e1d72ae..aea268439c 100644 --- a/include/link.h +++ b/include/link.h @@ -1,6 +1,6 @@ /* Data structure for communication from the run-time dynamic linker for loaded ELF shared objects. - Copyright (C) 1995-2019 Free Software Foundation, Inc. + Copyright (C) 1995-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -15,7 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _PRIVATE_LINK_H #define _PRIVATE_LINK_H 1 @@ -79,7 +79,6 @@ struct r_search_path_struct int malloced; }; - /* Structure describing a loaded shared object. The `l_next' and `l_prev' members form a chain of all the shared objects loaded at startup. @@ -203,6 +202,18 @@ struct link_map freed, ie. not allocated with the dummy malloc in ld.so. */ + /* NODELETE status of the map. Only valid for maps of type + lt_loaded. Lazy binding sets l_nodelete_active directly, + potentially from signal handlers. Initial loading of an + DF_1_NODELETE object set l_nodelete_pending. Relocation may + set l_nodelete_pending as well. l_nodelete_pending maps are + promoted to l_nodelete_active status in the final stages of + dlopen, prior to calling ELF constructors. dlclose only + refuses to unload l_nodelete_active maps, the pending status is + ignored. */ + bool l_nodelete_active; + bool l_nodelete_pending; + #include /* Collected information about own RPATH directories. */ @@ -325,16 +336,18 @@ struct link_map size_t l_relro_size; unsigned long long int l_serial; - - /* Audit information. This array apparent must be the last in the - structure. Never add something after it. */ - struct auditstate - { - uintptr_t cookie; - unsigned int bindflags; - } l_audit[0]; }; +/* Information used by audit modules. For most link maps, this data + immediate follows the link map in memory. For the dynamic linker, + it is allocated separately. See link_map_audit_state in + . */ +struct auditstate +{ + uintptr_t cookie; + unsigned int bindflags; +}; + #if __ELF_NATIVE_CLASS == 32 # define symbind symbind32 diff --git a/include/list.h b/include/list.h index 862fb7edcc..4ea22a2d52 100644 --- a/include/list.h +++ b/include/list.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2019 Free Software Foundation, Inc. +/* Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2002. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _LIST_H #define _LIST_H 1 diff --git a/include/list_t.h b/include/list_t.h index a84bd54964..b6f6e7b986 100644 --- a/include/list_t.h +++ b/include/list_t.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2002-2019 Free Software Foundation, Inc. +/* Copyright (C) 2002-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2002. @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _LIST_T_H #define _LIST_T_H 1 diff --git a/include/loop_unroll.h b/include/loop_unroll.h index d6a84e6c5d..00cf9b9e62 100644 --- a/include/loop_unroll.h +++ b/include/loop_unroll.h @@ -1,5 +1,5 @@ /* Macro for explicit loop unrolling. - Copyright (C) 2019 Free Software Foundation, Inc. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _LOOP_UNROLL_H #define _LOOP_UNROLL_H diff --git a/include/math-narrow-eval.h b/include/math-narrow-eval.h index 37bbd2eecf..137a35d79c 100644 --- a/include/math-narrow-eval.h +++ b/include/math-narrow-eval.h @@ -1,5 +1,5 @@ /* Narrow floating-point values to their semantic type. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _MATH_NARROW_EVAL_H #define _MATH_NARROW_EVAL_H 1 diff --git a/include/math.h b/include/math.h index 79ebbae359..a274f2bdfd 100644 --- a/include/math.h +++ b/include/math.h @@ -54,6 +54,59 @@ libm_hidden_proto (__expf128) libm_hidden_proto (__expm1f128) # endif +#include +#include + +/* A union which permits us to convert between a float and a 32 bit + int. */ + +typedef union +{ + float value; + uint32_t word; +} ieee_float_shape_type; + +/* Get a 32 bit int from a float. */ +#ifndef GET_FLOAT_WORD +# define GET_FLOAT_WORD(i,d) \ +do { \ + ieee_float_shape_type gf_u; \ + gf_u.value = (d); \ + (i) = gf_u.word; \ +} while (0) +#endif + +/* Set a float from a 32 bit int. */ +#ifndef SET_FLOAT_WORD +# define SET_FLOAT_WORD(d,i) \ +do { \ + ieee_float_shape_type sf_u; \ + sf_u.word = (i); \ + (d) = sf_u.value; \ +} while (0) +#endif + +extern inline int +__issignalingf (float x) +{ + uint32_t xi; + GET_FLOAT_WORD (xi, x); +#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN + /* We only have to care about the high-order bit of x's significand, because + having it set (sNaN) already makes the significand different from that + used to designate infinity. */ + return (xi & 0x7fc00000) == 0x7fc00000; +#else + /* To keep the following comparison simple, toggle the quiet/signaling bit, + so that it is set for sNaNs. This is inverse to IEEE 754-2008 (as well as + common practice for IEEE 754-1985). */ + xi ^= 0x00400000; + /* We have to compare for greater (instead of greater or equal), because x's + significand being all-zero designates infinity not NaN. */ + return (xi & 0x7fffffff) > 0x7fc00000; +#endif +} + # if __HAVE_DISTINCT_FLOAT128 /* __builtin_isinf_sign is broken in GCC < 7 for float128. */ diff --git a/include/monetary.h b/include/monetary.h index f59bdf9150..240925e87d 100644 --- a/include/monetary.h +++ b/include/monetary.h @@ -15,5 +15,6 @@ __vstrfmon_l_internal (char *s, size_t maxsize, locale_t loc, same format as double, in which case the flag should be set to one, or as another format, otherwise. */ #define STRFMON_LDBL_IS_DBL 0x0001 +#define STRFMON_LDBL_USES_FLOAT128 0x0002 #endif diff --git a/include/programs/xmalloc.h b/include/programs/xmalloc.h index 5ee37ae696..fd6cf61730 100644 --- a/include/programs/xmalloc.h +++ b/include/programs/xmalloc.h @@ -1,5 +1,5 @@ /* Memory related definitions for program modules. - Copyright (C) 1998-2019 Free Software Foundation, Inc. + Copyright (C) 1998-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. This program is free software; you can redistribute it and/or modify @@ -13,7 +13,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, see . */ + along with this program; if not, see . */ #ifndef _XMALLOC_H #define _XMALLOC_H 1 diff --git a/include/random-bits.h b/include/random-bits.h index a0651a5a34..fd3fa01f9b 100644 --- a/include/random-bits.h +++ b/include/random-bits.h @@ -1,5 +1,5 @@ /* Fast pseudo-random bits based on clock_gettime. - Copyright (C) 2019 Free Software Foundation, Inc. + Copyright (C) 2019-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _RANDOM_BITS_H # define _RANDOM_BITS_H diff --git a/include/rounding-mode.h b/include/rounding-mode.h index 3c0c1bcfc2..24d0b4ad11 100644 --- a/include/rounding-mode.h +++ b/include/rounding-mode.h @@ -1,5 +1,5 @@ /* Handle floating-point rounding mode within libc. - Copyright (C) 2012-2019 Free Software Foundation, Inc. + Copyright (C) 2012-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _ROUNDING_MODE_H #define _ROUNDING_MODE_H 1 diff --git a/include/scratch_buffer.h b/include/scratch_buffer.h index 29af35d457..c39da78629 100644 --- a/include/scratch_buffer.h +++ b/include/scratch_buffer.h @@ -1,5 +1,5 @@ /* Variable-sized buffer with on-stack default allocation. - Copyright (C) 2015-2019 Free Software Foundation, Inc. + Copyright (C) 2015-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _SCRATCH_BUFFER_H #define _SCRATCH_BUFFER_H diff --git a/include/set-hooks.h b/include/set-hooks.h index a0c5101e2d..dba382c3a8 100644 --- a/include/set-hooks.h +++ b/include/set-hooks.h @@ -1,5 +1,5 @@ /* Macros for using symbol sets for running lists of functions. - Copyright (C) 1994-2019 Free Software Foundation, Inc. + Copyright (C) 1994-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _SET_HOOKS_H #define _SET_HOOKS_H 1 diff --git a/include/setjmp.h b/include/setjmp.h index 263bc64b3d..e13017edd2 100644 --- a/include/setjmp.h +++ b/include/setjmp.h @@ -35,21 +35,21 @@ extern __typeof (__sigsetjmp) __sigsetjmp attribute_hidden; # include # include -# define STR_HELPER(x) #x -# define STR(x) STR_HELPER(x) +# define SJSTR_HELPER(x) #x +# define SJSTR(x) SJSTR_HELPER(x) # define TEST_SIZE(type, size) \ _Static_assert (sizeof (type) == size, \ "size of " #type " != " \ - STR (size)) + SJSTR (size)) # define TEST_ALIGN(type, align) \ _Static_assert (__alignof__ (type) == align , \ "align of " #type " != " \ - STR (align)) + SJSTR (align)) # define TEST_OFFSET(type, member, offset) \ _Static_assert (offsetof (type, member) == offset, \ "offset of " #member " field of " #type " != " \ - STR (offset)) + SJSTR (offset)) /* Check if jmp_buf have the expected sizes. */ TEST_SIZE (jmp_buf, JMP_BUF_SIZE); diff --git a/include/shlib-compat.h b/include/shlib-compat.h index 9d29178f67..c8fc6925a0 100644 --- a/include/shlib-compat.h +++ b/include/shlib-compat.h @@ -1,5 +1,5 @@ /* Macros for managing ABI-compatibility definitions using ELF symbol versions. - Copyright (C) 2000-2019 Free Software Foundation, Inc. + Copyright (C) 2000-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _SHLIB_COMPAT_H #define _SHLIB_COMPAT_H 1 @@ -64,6 +64,41 @@ # define compat_symbol(lib, local, symbol, version) \ compat_symbol_reference (lib, local, symbol, version) +/* This is similar to compat_symbol, but allows versioning the same symbol + to multiple version without having multiple symbol definitions. For + instance: + + #if (SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_2)) + compat_symbol_unique (libc, old_foo, GLIBC_2_1_2) + #endif + + #if (SHLIB_COMPAT (libpthread, GLIBC_2_2_6, GLIBC_2_3)) + compat_symbol_unique (libc, old_foo, GLIBC_2_2_6) + #endif + + Internally it creates a unique strong alias to the input symbol and + creates one compat_symbol on the alias. Using the above example, + it is similar to: + + #if (SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_2)) + strong_alias (old_foo, old_foo__COUNTER__) + compat_symbol (libc, old_foo__COUNTER__, foo, GLIBC_2_2) + #endif. + + With __COUNTER__ being a monotonic number generated by the compiler. */ + +# define __compat_symbol_unique_concat(x, y) x ## y +# define _compat_symbol_unique_concat(x, y) \ + __compat_symbol_unique_concat (x, y) +# define _compat_symbol_unique_alias(name) \ + _compat_symbol_unique_concat (name, __COUNTER__) +# define _compat_symbol_unique(lib, orig_name, name, version) \ + strong_alias (orig_name, name) \ + compat_symbol (lib, name, orig_name, version) +# define compat_symbol_unique(lib, name, version) \ + _compat_symbol_unique (lib, name, _compat_symbol_unique_alias (name), \ + version) + #else /* Not compiling ELF shared libraries at all, so never any old versions. */ @@ -75,6 +110,7 @@ /* This should not appear outside `#if SHLIB_COMPAT (...)'. */ # define compat_symbol(lib, local, symbol, version) ... +# define compat_symbol_unique(lib, name, version) ... #endif diff --git a/include/spawn.h b/include/spawn.h index 7fdd965bd7..4a0b1849da 100644 --- a/include/spawn.h +++ b/include/spawn.h @@ -11,6 +11,9 @@ __typeof (posix_spawn_file_actions_addclose) __typeof (posix_spawn_file_actions_adddup2) __posix_spawn_file_actions_adddup2 attribute_hidden; +__typeof (posix_spawn_file_actions_addopen) + __posix_spawn_file_actions_addopen attribute_hidden; + __typeof (posix_spawn_file_actions_destroy) __posix_spawn_file_actions_destroy attribute_hidden; diff --git a/include/stackinfo.h b/include/stackinfo.h index c002cf718b..d0031c14c8 100644 --- a/include/stackinfo.h +++ b/include/stackinfo.h @@ -1,5 +1,5 @@ /* Details about the machine's stack: wrapper header. - Copyright (C) 2014-2019 Free Software Foundation, Inc. + Copyright (C) 2014-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _INCLUDE_STACKINFO_H #define _INCLUDE_STACKINFO_H 1 diff --git a/include/stap-probe.h b/include/stap-probe.h index 85f41c9162..3c24ac640e 100644 --- a/include/stap-probe.h +++ b/include/stap-probe.h @@ -1,5 +1,5 @@ /* Macros for defining Systemtap static probe points. - Copyright (C) 2012-2019 Free Software Foundation, Inc. + Copyright (C) 2012-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _STAP_PROBE_H #define _STAP_PROBE_H 1 diff --git a/include/stdc-predef.h b/include/stdc-predef.h index 5cc5eef22f..eaf0a6aea8 100644 --- a/include/stdc-predef.h +++ b/include/stdc-predef.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2019 Free Software Foundation, Inc. +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -13,7 +13,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _STDC_PREDEF_H #define _STDC_PREDEF_H 1 diff --git a/include/stdio.h b/include/stdio.h index 5302e61024..dffa7765dd 100644 --- a/include/stdio.h +++ b/include/stdio.h @@ -13,7 +13,9 @@ extern int __fcloseall (void) attribute_hidden; extern int __snprintf (char *__restrict __s, size_t __maxlen, const char *__restrict __format, ...) __attribute__ ((__format__ (__printf__, 3, 4))); +# if __LONG_DOUBLE_USES_FLOAT128 == 0 libc_hidden_proto (__snprintf) +# endif extern int __vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) @@ -72,7 +74,8 @@ libc_hidden_proto (__isoc99_vfscanf) Unfortunately, symbol redirection is not transitive, so the __REDIRECT in the public header does not link up with the above libc_hidden_proto. Bridge the gap with a macro. */ -# if !__GLIBC_USE (DEPRECATED_SCANF) +# if !__GLIBC_USE (DEPRECATED_SCANF) \ + && __LONG_DOUBLE_USES_FLOAT128 == 0 # undef sscanf # define sscanf __isoc99_sscanf # endif @@ -102,7 +105,6 @@ enum __libc_message_action { do_message = 0, /* Print message. */ do_abort = 1 << 0, /* Abort. */ - do_backtrace = 1 << 1 /* Backtrace. */ }; /* Print out MESSAGE (which should end with a newline) on the error output @@ -112,10 +114,7 @@ extern void __libc_fatal (const char *__message) extern void __libc_message (enum __libc_message_action action, const char *__fnt, ...) attribute_hidden; extern void __fortify_fail (const char *msg) __attribute__ ((__noreturn__)); -extern void __fortify_fail_abort (_Bool, const char *msg) - __attribute__ ((__noreturn__)) attribute_hidden; libc_hidden_proto (__fortify_fail) -libc_hidden_proto (__fortify_fail_abort) /* Acquire ownership of STREAM. */ extern void __flockfile (FILE *__stream) attribute_hidden; @@ -154,7 +153,9 @@ libc_hidden_proto (__libc_readline_unlocked); extern const char *const _sys_errlist_internal[] attribute_hidden; extern int _sys_nerr_internal attribute_hidden; +#if __LONG_DOUBLE_USES_FLOAT128 == 0 libc_hidden_proto (__asprintf) +#endif # if IS_IN (libc) extern FILE *_IO_new_fopen (const char*, const char*); # define fopen(fname, mode) _IO_new_fopen (fname, mode) @@ -175,13 +176,15 @@ extern int _IO_new_fgetpos (FILE *, __fpos_t *); # define fgetpos(fp, posp) _IO_new_fgetpos (fp, posp) # endif -libc_hidden_proto (dprintf) extern __typeof (dprintf) __dprintf __attribute__ ((__format__ (__printf__, 2, 3))); libc_hidden_proto (__dprintf) +#if __LONG_DOUBLE_USES_FLOAT128 == 0 +libc_hidden_proto (dprintf) libc_hidden_proto (fprintf) libc_hidden_proto (vfprintf) libc_hidden_proto (sprintf) +#endif libc_hidden_proto (fwrite) libc_hidden_proto (perror) libc_hidden_proto (remove) diff --git a/include/stdlib.h b/include/stdlib.h index 114e12d255..1fab78aa16 100644 --- a/include/stdlib.h +++ b/include/stdlib.h @@ -202,9 +202,12 @@ libc_hidden_proto (____strtoll_l_internal) libc_hidden_proto (____strtoul_l_internal) libc_hidden_proto (____strtoull_l_internal) +#include libc_hidden_proto (strtof) libc_hidden_proto (strtod) +#if __LONG_DOUBLE_USES_FLOAT128 == 0 libc_hidden_proto (strtold) +#endif libc_hidden_proto (strtol) libc_hidden_proto (strtoll) libc_hidden_proto (strtoul) diff --git a/include/sys/poll.h b/include/sys/poll.h index a42bc93873..f904e21f89 100644 --- a/include/sys/poll.h +++ b/include/sys/poll.h @@ -6,6 +6,17 @@ extern int __poll (struct pollfd *__fds, unsigned long int __nfds, int __timeout); libc_hidden_proto (__poll) libc_hidden_proto (ppoll) -#endif +# if __TIMESIZE == 64 +# define __ppoll64 __ppoll +# else +# include +# include + +extern int __ppoll64 (struct pollfd *fds, nfds_t nfds, + const struct __timespec64 *timeout, + const sigset_t *sigmask); +libc_hidden_proto (__ppoll64) +# endif +#endif #endif diff --git a/include/sys/random.h b/include/sys/random.h index b33d114b74..6aa313d35d 100644 --- a/include/sys/random.h +++ b/include/sys/random.h @@ -1 +1,11 @@ +#ifndef _SYS_RANDOM_H #include + +# ifndef _ISOMAC + +extern ssize_t __getrandom (void *__buffer, size_t __length, + unsigned int __flags) __wur; +libc_hidden_proto (__getrandom) + +# endif /* !_ISOMAC */ +#endif diff --git a/include/sys/sem.h b/include/sys/sem.h index b0fb201bd0..69fdf1f752 100644 --- a/include/sys/sem.h +++ b/include/sys/sem.h @@ -1 +1,9 @@ -#include +#ifndef _SYS_SEM_H +# include + +# ifndef _ISOMAC + +__typeof__ (semtimedop) __semtimedop attribute_hidden; + +# endif +#endif diff --git a/include/sys/sysmacros.h b/include/sys/sysmacros.h index 5624aa2e72..9844a2b5fc 100644 --- a/include/sys/sysmacros.h +++ b/include/sys/sysmacros.h @@ -1,5 +1,5 @@ /* Definitions of macros to access 'dev_t' values. Internal header. - Copyright (C) 2018-2019 Free Software Foundation, Inc. + Copyright (C) 2018-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _ISOMAC # define __SYSMACROS_NEED_IMPLEMENTATION diff --git a/include/sys/time.h b/include/sys/time.h index 7ba0ca7c2d..8153d75033 100644 --- a/include/sys/time.h +++ b/include/sys/time.h @@ -1,5 +1,5 @@ /* Time function internal interfaces. - Copyright (C) 1997-2019 Free Software Foundation, Inc. + Copyright (C) 1997-2020 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -14,18 +14,15 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see - . */ + . */ #ifndef _SYS_TIME_H # include